Messages in this thread | | | Subject | Re: [PATCH RFC] sched: add notifier for process migration | From | Peter Zijlstra <> | Date | Wed, 14 Oct 2009 11:26:10 +0200 |
| |
On Wed, 2009-10-14 at 09:05 +0200, Ingo Molnar wrote: > * Jeremy Fitzhardinge <jeremy@goop.org> wrote: > > > @@ -1981,6 +1989,12 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu) > > #endif > > perf_swcounter_event(PERF_COUNT_SW_CPU_MIGRATIONS, > > 1, 1, NULL, 0); > > + > > + tmn.task = p; > > + tmn.from_cpu = old_cpu; > > + tmn.to_cpu = new_cpu; > > + > > + atomic_notifier_call_chain(&task_migration_notifier, 0, &tmn); > > We already have one event notifier there - look at the > perf_swcounter_event() callback. Why add a second one for essentially > the same thing? > > We should only put a single callback there - a tracepoint defined via > TRACE_EVENT() - and any secondary users can register a callback to the > tracepoint itself. > > There's many similar places in the kernel - with notifier chains and > also with a need to get tracepoints there. The fastest (and most > consistent) solution is to add just a single event callback facility.
But that would basically mandate tracepoints to be always enabled, do we want to go there?
I don't think the overhead of tracepoints is understood well enough, Jason you poked at that, do you have anything solid on that?
Also, I can imagine the embedded people to not want that.
I really like perf and tracepoints to not become co-dependent until tracepoint become mandatory for all configurations.
| |