RE: ftrace function-graph and interprocessor interrupts

From: Elliott, Robert (Server Storage)
Date: Wed Sep 24 2014 - 18:05:10 EST

> -----Original Message-----
> From: Andi Kleen [mailto:andi@xxxxxxxxxxxxxx]
> Sent: Wednesday, 24 September, 2014 4:50 PM
> To: Elliott, Robert (Server Storage)
> Cc: Steven Rostedt; linux-kernel@xxxxxxxxxxxxxxx; Jens Axboe
> <axboe@xxxxxxxxx> (axboe@xxxxxxxxx); Christoph Hellwig
> Subject: Re: ftrace function-graph and interprocessor interrupts
> "Elliott, Robert (Server Storage)" <Elliott@xxxxxx> writes:
> > The function-graph tracer marks some interrupt handler functions
> > with ==========> and <========== labels.
> I'm not sure the marking is really that useful. Isn't it always obvious
> from the function names where an interrupt starts/end?
> -Andi

Although the do_IRQ name stands out pretty well, some of the
others don't, and blk-mq calling them directly makes it hard
to tell. They show up clearly in the function trace, just
not the function_graph trace.

Also, the IPI function can end up nested inside { } but
without indents, depending on when it occurs.

10) | sd_setup_read_write_cmnd [sd_mod]() {
10) | smp_call_function_single_interrupt() {
10) | irq_enter() {
10) + 36.788 us | } /* smp_call_function_single_interrupt */
10) | scsi_init_io() {

The ==> labels also add an indent level.

I'd like to add an option to exclude the time taken by interrupts
in the cumulative times, but that first requires that function_graph
understand what times to exclude.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at