Re: [PATCH v2 3/6] trace: Add tracepoints to IRQ work run handler

From: Peter Zijlstra
Date: Thu Jul 28 2011 - 09:44:51 EST


On Thu, 2011-07-28 at 15:29 +0200, Frederic Weisbecker wrote:
> On Thu, Jul 28, 2011 at 02:12:51PM +0200, Peter Zijlstra wrote:
> > On Wed, 2011-07-27 at 11:57 -0700, Vaibhav Nagarnaik wrote:
> > > @@ -122,6 +123,7 @@ void irq_work_run(void)
> > > {
> > > struct irq_work *list;
> > >
> > > trace_irq_work_run_entry(0);
> > > if (this_cpu_read(irq_work_list) == NULL)
> > > return;
> > >
> > > @@ -149,6 +151,7 @@ void irq_work_run(void)
> > > next_flags(NULL, IRQ_WORK_BUSY),
> > > NULL);
> > > }
> > > + trace_irq_work_run_exit(0);
> > > }
> > > EXPORT_SYMBOL_GPL(irq_work_run);
> >
> > So what happens when we call irq_work_run() from the timer interrupt?
> >
>
> We probably need something like:
>
> void irq_work_run_interrupt(void)
> {
> trace_irq_work_run_entry(0);
> irq_work_run();
> trace_irq_work_run_exit(0);
> }

No we don't. That lives in arch code and its up to the arch to decide
where, when and how to call that.

On PPC for example that's hooked of the timer interrupt.

See here again your 'generalization' crap breaks down.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/