Re: [RFC v4 3/4] irqflags: Avoid unnecessary calls to trace_ if you can

From: Paul E. McKenney
Date: Tue Apr 24 2018 - 11:56:00 EST


On Mon, Apr 23, 2018 at 05:22:44PM -0400, Steven Rostedt wrote:
> On Mon, 23 Apr 2018 13:12:21 -0400 (EDT)
> Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
>
> > I'm inclined to explicitly declare the tracepoints with their given
> > synchronization method. Tracepoint probe callback functions for currently
> > existing tracepoints expect to have preemption disabled when invoked.
> > This assumption will not be true anymore for srcu-tracepoints.
>
> Actually, why not have a flag attached to the tracepoint_func that
> states if it expects preemption to be enabled or not? If a
> trace_##event##_srcu() is called, then simply disable preemption before
> calling the callbacks for it. That way if a callback is fine for use
> with srcu, then it would require calling
>
> register_trace_##event##_may_sleep();
>
> Then if someone uses this on a tracepoint where preemption is disabled,
> we simply do not call it.

One more stupid question... If we are having to trace so much stuff
in the idle loop, are we perhaps grossly overstating the extent of that
"idle" loop? For being called "idle", this code seems quite busy!

Thanx, Paul