Messages in this thread | | | Date | Wed, 25 Feb 2009 11:57:47 -0500 | From | Jason Baron <> | Subject | Re: [PATCH] new irq tracer |
| |
On Wed, Feb 25, 2009 at 11:48:28AM -0500, Masami Hiramatsu wrote: > KOSAKI Motohiro wrote: > >> /** > >> * handle_IRQ_event - irq action chain handler > >> * @irq: the interrupt number > >> @@ -354,7 +358,9 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action) > >> local_irq_enable_in_hardirq(); > >> > >> do { > >> + trace_irq_entry(irq); > >> ret = action->handler(irq, action->dev_id); > >> + trace_irq_exit(irq, ret); > >> if (ret == IRQ_HANDLED) > >> status |= action->flags; > >> retval |= ret; > > > > Nobdy want unnecessary redundant tracepoint. > > Please discuss with mathieu, and merge his tracepoint. > > Hmm, from the viewpoint of trouble shooting, the place of LTTng's tracepoint > is enough. However, from the same viewpoint, it should pass irq-number > to irq-exit event too, because we may lost some previous events by buffer-overflow > etc. > > trace_irq_entry(irq, NULL); > ret = _handle_IRQ_event(irq, action); > trace_irq_exit(irq, ret); > ^^^^ >
the lttng tracepoints wrap the calls to _handle_IRQ_event in 3 different places. So the above suggested irq tracepoint provides the same information with 4 less tracepoints in the code. So I believe its simpler - plus we can understand which action handlers are handling the interrupt.
thanks,
-Jason
| |