[ltt-dev] [LTTng][RFC][Patch 2/2] add irq-id parameter to irq_exit tracepoint and marker

Masami Hiramatsu mhiramat at redhat.com
Tue Aug 26 14:39:39 EDT 2008

Pierre-Marc Fournier wrote:
> Masami Hiramatsu wrote:
>> Index: linux-2.6-lttng/kernel/kernel-trace.c
>> ===================================================================
>> --- linux-2.6-lttng.orig/kernel/kernel-trace.c	2008-08-19 21:45:16.000000000 -0400
>> +++ linux-2.6-lttng/kernel/kernel-trace.c	2008-08-21 15:58:39.000000000 -0400
>> @@ -18,9 +18,10 @@
>>  		(regs)?instruction_pointer(regs):0UL);
>>  }
>> -static void probe_irq_exit(irqreturn_t retval)
>> +static void probe_irq_exit(unsigned int id, irqreturn_t retval)
>>  {
>> -	trace_mark(kernel_irq_exit, "handled #1u%u", IRQ_RETVAL(retval));
>> +	trace_mark(kernel_irq_exit, "irq_id %u handled #1u%u",
>> +		id, IRQ_RETVAL(retval));
> This is redundant information. The IRQ id is already specified in
> kernel_irq_entry events. The IRQ id of a kernel_irq_exit event can be
> known by keeping a stack of nested IRQs, as is done in LTTV in the file
> state.c.

I think it helps some corner case when we dropped irq entry event
from memory(or pushed away from log). I know it is just a rare case,
but it will happen.

And when we use these markers not from LTTng (ex. systemtap),
it could be handled as isolated events. For example, I can check which
irq handler returns error by tracing ONLY irq_exit events, with this patch.

> Here we need to compromise between the trace size and the amount of work
> needed to analyze the trace. kernel_irq_exit is a very high rate event
> and the work needed to keep track of the state is small. Therefore I
> doubt including the redundant information is the best choice.

Indeed, could LTTng ignores(or filters) the parameter?

Thank you,

> pmf

Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division

e-mail: mhiramat at redhat.com

More information about the lttng-dev mailing list