Re: [PATCH v12 3/3] tracing: Centralize preemptirq tracepoints and unify their usage

From: Steven Rostedt
Date: Tue Aug 07 2018 - 10:34:17 EST


On Tue, 07 Aug 2018 10:10:59 -0400
Joel Fernandes <joelaf@xxxxxxxxxx> wrote:

> On August 7, 2018 9:49:54 AM EDT, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> >On Tue, 7 Aug 2018 06:33:35 -0700
> >Joel Fernandes <joelaf@xxxxxxxxxx> wrote:
> >
> >> Thanks, also one more thing I noticed in your patch,
> >> lockdep_hardirqs_off needs to be called before all other probes but
> >> you're calling it after. This is why I registered it with INT_MAX:
> >>
> >> register_trace_prio_irq_disable(lockdep_hardirqs_off, NULL, INT_MAX);
> >>
> >> Without it you may get annotation warnings. Thanks,
> >
> >Interesting. I was following the old way where we called the tracing
> >code before calling the lockdep code (all hard coded and not from
> >trace events). Is this have something to do with calling the code from
> >a tracepoint?
> >
> >Do you have an example that could trigger the warning?
> >
>
> I remember the warnings but can't remember now how I triggered them.
> I think I saw them with the irqsoff tracer or irq trace events
> running, with lockdep turned on.

I'll see if I can trigger it. I'll run this all through my tests.

>
> Also an irq disable probe that does a lockdep assert that irqs are
> disabled could trigger it?
>

You mean if someone add a tracepoint callback to the irq disable
tracepoint, and did a lockdep assert to make sure interrupts are
disabled?

-- Steve