X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-context-perf-counters.c;h=58fbbe6159a7e77be2d45d9ba8ed4173c2ff8543;hb=4a6ea683a440dc224dc4a9628ff4f713c42f5922;hp=e12c73bbdc678c9e049ff4a989a56c5275b224c4;hpb=69a619a93c6a8082ac198debaf5ea44621290211;p=lttng-modules.git diff --git a/lttng-context-perf-counters.c b/lttng-context-perf-counters.c index e12c73bb..58fbbe61 100644 --- a/lttng-context-perf-counters.c +++ b/lttng-context-perf-counters.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -95,10 +96,10 @@ void lttng_destroy_perf_counter_field(struct lttng_ctx_field *field) { int cpu; - get_online_cpus(); + lttng_cpus_read_lock(); for_each_online_cpu(cpu) perf_event_release_kernel(events[cpu]); - put_online_cpus(); + lttng_cpus_read_unlock(); #ifdef CONFIG_HOTPLUG_CPU unregister_cpu_notifier(&field->u.perf_counter->nb); #endif @@ -288,7 +289,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type, perf_field->nb.priority = 0; register_cpu_notifier(&perf_field->nb); #endif - get_online_cpus(); + lttng_cpus_read_lock(); for_each_online_cpu(cpu) { events[cpu] = wrapper_perf_event_create_kernel_counter(attr, cpu, NULL, overflow_callback); @@ -301,7 +302,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type, goto counter_busy; } } - put_online_cpus(); + lttng_cpus_read_unlock(); perf_field->hp_enable = 1; } #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */ @@ -344,7 +345,7 @@ counter_error: if (events[cpu] && !IS_ERR(events[cpu])) perf_event_release_kernel(events[cpu]); } - put_online_cpus(); + lttng_cpus_read_unlock(); #ifdef CONFIG_HOTPLUG_CPU unregister_cpu_notifier(&perf_field->nb); #endif