Re: [RFC PATCHSET] sched,perf: unify tracers in sched and move perf on top of TP

Ingo Molnar
2010-05-06T07:12:32Z

* Peter Zijlstra <peterz@infradead.org> wrote:

> On Thu, 2010-05-06 at 08:31 +0200, Ingo Molnar wrote:
> > * Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > > Well, I'd much rather just see a direct call in the code than having to
> > > reverse engineer wth hangs onto that _EVENT() junk.
> >
> > Direct calls into code were fine 10 years ago, but since then we got:
> >
> > - preempt notifiers
>
> Are per task an no good for driving perf.

No, but they could be expressed via tracepoints.

> > - sw events
> > - tracepoints
>
> Are unrelated to the core perf scheduler calls.

Still they pose 3 different types of callback regimes, all for a slightly
different purpose.

> > Which add up to a lot more than just a plain call into code.
> >
> > Also, with the jump-optimizations we will have tracepoints that are
> > _cheaper_ than a plain function call.
>
> Which can just as easily be used on the core perf hooks.
>
> > > Also, we don't need ABI muck for this.
> >
> > we already have an ABIs in place here - this would just properly unify and
> > enumerate it.
>
> I'm not getting it, this is about in-kernel stuff, there are _NO_ in kernel
> ABIs.

Yes - but the callbacks i mentioned do include ABIs, such as the sw event
callbacks.

So my point is to have one coherent callback mechanism for it.

That said, i agree with you that turning the basic perf scheduling calls into
events goes one step too far. But all the _other_ 3 types of callbacks (and we
might as well add a fourth type as well: the butt-ugly hotplug event notifier
chains) should be consolidated really.

Ingo