Skip to content

Commit

Permalink
perf: Use tracepoint_synchronize_unregister() to flush any pending tr…
Browse files Browse the repository at this point in the history
…acepoint call

We use synchronize_sched() to ensure a tracepoint won't be called
while/after we release the perf buffers it references.

But the tracepoint API has its own API for that:
tracepoint_synchronize_unregister(). Use it instead as it's
self-explanatory and eases maintainance.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>
  • Loading branch information
Frederic Weisbecker committed Aug 1, 2010
1 parent 3a01736 commit 669336e
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions kernel/trace/trace_event_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,10 @@ void perf_trace_destroy(struct perf_event *p_event)
tp_event->class->reg(tp_event, TRACE_REG_PERF_UNREGISTER);

/*
* Ensure our callback won't be called anymore. See
* tracepoint_probe_unregister() and __DO_TRACE().
* Ensure our callback won't be called anymore. The buffers
* will be freed after that.
*/
synchronize_sched();
tracepoint_synchronize_unregister();

free_percpu(tp_event->perf_events);
tp_event->perf_events = NULL;
Expand Down

0 comments on commit 669336e

Please sign in to comment.