forked from Minki/linux
tracing/osnoise: Improve comments about barrier need for NMI callbacks
trace_osnoise_callback_enabled is used by ftrace_nmi_enter/exit() to know when to call the NMI callback. The barrier is used to avoid having callbacks enabled before the resetting date during the start or to touch the values after stopping the tracer. Link: https://lkml.kernel.org/r/a413b8f14aa9312fbd1ba99f96225a8aed831053.1635702894.git.bristot@kernel.org Cc: Ingo Molnar <mingo@redhat.com> Cc: Tom Zanussi <zanussi@kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Clark Williams <williams@redhat.com> Cc: John Kacur <jkacur@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Daniel Bristot de Oliveira <bristot@kernel.org> Cc: linux-rt-users@vger.kernel.org Cc: linux-trace-devel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
66df27f19f
commit
c3b6343c0d
@ -1930,8 +1930,10 @@ static int __osnoise_tracer_start(struct trace_array *tr)
|
||||
retval = osnoise_hook_events();
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
/*
|
||||
* Make sure NMIs see reseted values.
|
||||
* Make sure that ftrace_nmi_enter/exit() see reset values
|
||||
* before enabling trace_osnoise_callback_enabled.
|
||||
*/
|
||||
barrier();
|
||||
trace_osnoise_callback_enabled = true;
|
||||
@ -1966,6 +1968,10 @@ static void osnoise_tracer_stop(struct trace_array *tr)
|
||||
return;
|
||||
|
||||
trace_osnoise_callback_enabled = false;
|
||||
/*
|
||||
* Make sure that ftrace_nmi_enter/exit() see
|
||||
* trace_osnoise_callback_enabled as false before continuing.
|
||||
*/
|
||||
barrier();
|
||||
|
||||
stop_per_cpu_kthreads();
|
||||
|
Loading…
Reference in New Issue
Block a user