Lines Matching refs:swhash

6325 find_swevent_head_rcu(struct swevent_htable *swhash, u64 type, u32 event_id)  in find_swevent_head_rcu()  argument
6329 hlist = rcu_dereference(swhash->swevent_hlist); in find_swevent_head_rcu()
6338 find_swevent_head(struct swevent_htable *swhash, struct perf_event *event) in find_swevent_head() argument
6349 hlist = rcu_dereference_protected(swhash->swevent_hlist, in find_swevent_head()
6362 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable); in do_perf_sw_event() local
6367 head = find_swevent_head_rcu(swhash, type, event_id); in do_perf_sw_event()
6383 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable); in perf_swevent_get_recursion_context() local
6385 return get_recursion_context(swhash->recursion); in perf_swevent_get_recursion_context()
6391 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable); in perf_swevent_put_recursion_context() local
6393 put_recursion_context(swhash->recursion, rctx); in perf_swevent_put_recursion_context()
6429 struct swevent_htable *swhash = this_cpu_ptr(&swevent_htable); in perf_swevent_add() local
6440 head = find_swevent_head(swhash, event); in perf_swevent_add()
6446 WARN_ON_ONCE(swhash->online); in perf_swevent_add()
6473 swevent_hlist_deref(struct swevent_htable *swhash) in swevent_hlist_deref() argument
6475 return rcu_dereference_protected(swhash->swevent_hlist, in swevent_hlist_deref()
6476 lockdep_is_held(&swhash->hlist_mutex)); in swevent_hlist_deref()
6479 static void swevent_hlist_release(struct swevent_htable *swhash) in swevent_hlist_release() argument
6481 struct swevent_hlist *hlist = swevent_hlist_deref(swhash); in swevent_hlist_release()
6486 RCU_INIT_POINTER(swhash->swevent_hlist, NULL); in swevent_hlist_release()
6492 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); in swevent_hlist_put_cpu() local
6494 mutex_lock(&swhash->hlist_mutex); in swevent_hlist_put_cpu()
6496 if (!--swhash->hlist_refcount) in swevent_hlist_put_cpu()
6497 swevent_hlist_release(swhash); in swevent_hlist_put_cpu()
6499 mutex_unlock(&swhash->hlist_mutex); in swevent_hlist_put_cpu()
6512 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); in swevent_hlist_get_cpu() local
6515 mutex_lock(&swhash->hlist_mutex); in swevent_hlist_get_cpu()
6517 if (!swevent_hlist_deref(swhash) && cpu_online(cpu)) { in swevent_hlist_get_cpu()
6525 rcu_assign_pointer(swhash->swevent_hlist, hlist); in swevent_hlist_get_cpu()
6527 swhash->hlist_refcount++; in swevent_hlist_get_cpu()
6529 mutex_unlock(&swhash->hlist_mutex); in swevent_hlist_get_cpu()
8876 struct swevent_htable *swhash; in perf_event_init_all_cpus() local
8880 swhash = &per_cpu(swevent_htable, cpu); in perf_event_init_all_cpus()
8881 mutex_init(&swhash->hlist_mutex); in perf_event_init_all_cpus()
8888 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); in perf_event_init_cpu() local
8890 mutex_lock(&swhash->hlist_mutex); in perf_event_init_cpu()
8891 swhash->online = true; in perf_event_init_cpu()
8892 if (swhash->hlist_refcount > 0) { in perf_event_init_cpu()
8897 rcu_assign_pointer(swhash->swevent_hlist, hlist); in perf_event_init_cpu()
8899 mutex_unlock(&swhash->hlist_mutex); in perf_event_init_cpu()
8933 struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); in perf_event_exit_cpu() local
8937 mutex_lock(&swhash->hlist_mutex); in perf_event_exit_cpu()
8938 swhash->online = false; in perf_event_exit_cpu()
8939 swevent_hlist_release(swhash); in perf_event_exit_cpu()
8940 mutex_unlock(&swhash->hlist_mutex); in perf_event_exit_cpu()