[PATCH 2/2] ftrace - add ftrace function_graph support on ARM

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Oct 11 04:25:35 EDT 2010


On Mon, Oct 11, 2010 at 03:36:03AM +0530, Rabin Vincent wrote:
> On Sat, Oct 09, 2010 at 08:37:57PM +0100, Russell King - ARM Linux wrote:
> > On Sat, Oct 09, 2010 at 11:20:50PM +0530, Rabin Vincent wrote:
> > > It's used just for the C entry functions for interrupts: asm_do_IRQ()
> > > and the IPI and local timer functions.
> > > 
> > > AFAICS __exception seems to be used only for is_exception_text().  If
> > > that's the case, would it be OK to just place those functions in
> > > __irq_entry if ftrace is built and have is_exception_text() check that
> > > section too?
> > 
> > No.  is_exception_text() is used to detect those functions which have
> > a specific stack layout - which is that there's a pt_regs struct on the
> > stack.  Grouping other functions into that violates the expectation.
> 
> I'm not sure I follow.  These functions (asm_do_IRQ(), do_IPI(), and
> do_local_timer()) will be the only ones in __irq_entry. iow, __irq_entry
> will contain nothing else except these functions.  So we woudn't be
> grouping other functions; it's just that some of the __exception
> functions would be moved to the new section so that __exception and
> __irq_entry combined will contain the functions with the specific stack
> layout (and only those functions).

And now to go back to the original question I asked: What is __irq_entry
used for?

If it's to identify those functions which can't be traced through because
of the stack layout, that's true of all __exception marked functions -
so we might as well make the linker symbols for irqentry alias the
exception text symbols.

I see nothing special of just the three functions you mention that warrant
them being handled separately by ftrace.



More information about the linux-arm-kernel mailing list