Re: [PATCH 4/8] sched,rcu,tracing: Mark preempt_count_{add,sub}() notrace

From: Steven Rostedt
Date: Wed Feb 12 2020 - 10:14:19 EST


On Wed, 12 Feb 2020 16:02:11 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Wed, Feb 12, 2020 at 09:24:17AM -0500, Steven Rostedt wrote:
> > On Wed, 12 Feb 2020 10:32:14 +0100
> > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> > > Because of the requirement that no tracing happens until after we've
> > > incremented preempt_count, see nmi_enter() / trace_rcu_enter(), mark
> > > these functions as notrace.
> >
> > I actually depend on these function being traced.
>
> Why? They already have a tracepoint inside.

Only when enabled.

>
> > We do have
> > "preempt_enable_notrace()" and "preempt_disable_notrace()" for places
> > that shouldn't be traced. Can't we use those? (or simply
> > __preempt_count_add()) in the nmi_enter() code instead? (perhaps create
> > a preempt_count_add_notrace()).
>
> My initial patch has __preempt_count_add/sub() in, but then I figured
> someone would go complain the tracepoint would go missing.

Fine, but what bug are you trying to fix? I haven't seen one mentioned
yet. Function tracing has recursion protection, and tracing
preempt_count in nmi_enter() causes no problems. What's the problem you
are trying to solve?

-- Steve