Subject: Re: [PATCH 1/4 tip/sched/core] sched: rename preempt_notifier to sched_notifier and always enable it

From: Peter Zijlstra <[email-masked]>
Date: Thu, 26 Nov 2009 12:23:39 +0100

On Thu, 2009-11-26 at 11:32 +0100, Peter Zijlstra wrote:
> On Thu, 2009-11-26 at 11:29 +0100, Ingo Molnar wrote:
> > * Tejun Heo <[email-masked]> wrote:
> > 
> > > Rename preempt_notifier to sched_notifier, move it from preempt.h to 
> > > sched.h, drop sched_ prefixes from ops names and make sched_notifier 
> > > always enabled.
> > > 
> > > This is to prepare for adding more notification hooks.  This patch 
> > > doesn't make any functional changes.
> > 
> > The sched notifiers and the various event notifiers we have in the same 
> > codepaths should really be unified into a single callback framework.
> > 
> > We have these _5_ callbacks:
> > 
> > ....
> >         perf_event_task_sched_out(prev, next, cpu);
> > ....
> >         fire_sched_out_notifiers(prev, next);
> > ....
> >         trace_sched_switch(rq, prev, next);
> > ....
> >         perf_event_task_sched_in(current, cpu_of(rq));
> > 	fire_sched_in_notifiers(current);
> > ....
> > 
> > That could be done with just two callbacks - one for sched-out, one for 
> > sched-in.
> > 
> > The best way to do that would be to use two TRACE_EVENT() callbacks, 
> > make them unconditional and register to them. (with wrappers to make it 
> > all convenient to use)
> > 
> > This requires some work but needs to be done.
> 
> Ugh,.. it also makes TRACE_EVENT unconditional.
> 
> That really wants a separate option.. What we could do is take regular
> notifier lists and extend them to auto-generate a tracepoint when the
> trace stuff is enabled or something.

Also, there is this thing about direct and indirect function calls.