Re: [PATCH v3 09/22] sched,rcu,tracing: Avoid tracing before in_nmi() is correct
From: Steven Rostedt
Date: Wed Feb 19 2020 - 10:50:40 EST
On Wed, 19 Feb 2020 15:47:33 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> If we call into a tracer before in_nmi() becomes true, the tracer can
> no longer detect it is called from NMI context and behave correctly.
>
> Therefore change nmi_{enter,exit}() to use __preempt_count_{add,sub}()
> as the normal preempt_count_{add,sub}() have a (desired) function
> trace entry.
>
> This fixes a potential issue with current code; AFAICT when the
> function-tracer has stack-tracing enabled __trace_stack() will
> malfunction when it hits the preempt_count_add() function entry from
> NMI context.
>
> Suggested-by: Steven Rostedt (VMware) <rosted@xxxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
>
Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
-- Steve