Re: [RFC] tracing: Add support for critical section event tracing

From: Steven Rostedt
Date: Fri Jun 30 2017 - 17:07:57 EST


On Fri, 30 Jun 2017 14:03:14 -0700
Joel Fernandes <joelaf@xxxxxxxxxx> wrote:

> Hi Steven,
>
> Thanks a lot for the comments, I agree with all of them and had a
> comment about one of them:
>
> On Fri, Jun 30, 2017 at 5:51 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> [..]
> > Are you not worried about recursion here? There's no protection.
> > Wouldn't it be better to have:
> >
> > if (!this_cpu_read(tracing_events_cpu))
> > return;
> >
> > trace_critical_end(ip, parent_ip);
> >
> > this_cpu_write(tracing_events_cpu, 0);
> >
> > ?
> >
>
> I tried to go over some scenarios and I think it shouldn't be a
> problem because we start the critical event only when either
> interrupts are turned off while preemption is turned on, or preempt is
> turned off while interrupts are turned on, and the fact that we call
> the tracer while still in the critical section. Let me know if you had
> a scenario in mind that can cause problems with this.

Then may I ask what is tracing_events_cpu actually protecting?

-- Steve