Messages in this thread | | | Date | Fri, 27 Nov 2009 05:52:09 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/4 tip/sched/core] sched: rename preempt_notifier to sched_notifier and always enable it |
| |
* Tejun Heo <tj@kernel.org> wrote:
> Hello, Peter, Ingo. > > 11/26/2009 09:40 PM, Peter Zijlstra wrote: > > CALLBACK_EVENT() would be my preferred name, and shouldn't live anywhere > > near the regular tracing bits, the tracing bits could simply add another > > callback in it when enabled. > > I haven't looked at the mm code but if the scheduler callback > requirement isn't gonna explode big time soon and we know which > functions are the candidate callbacks at build time, I think this can > be done pretty efficiently with an ulong enable mask per task and > fixed function dispatch such that no callback case just goes through > one likely() conditional test at the tracing point and callback cases > are dispatched using conditional direct jump.
Yes - and that's what the tracepoints infrastructure is about.
Btw., longer term it will be faster than a mask check and a default-untaken conditional: there's ongoign work to offer runtime instruction patching features for tracing callbacks. There's the jump patching optimization and also the immediate values patching optimization.
We've got old-style notifiers for regular callbacks, we've got new-style tracepoints which are callbacks and event source descriptors - and what i'm asking for is to have _one_ callback mechanism, and to use that in the scheduler. 5 callbacks using 3 different facilities is excessive - i'd like to see just two callbacks using one facility.
Ingo
| |