[PATCH 2/2] ftrace: support for PowerPC

Steven Rostedt rostedt at goodmis.org
Thu May 15 23:38:07 EST 2008


On Wed, 14 May 2008, David Miller wrote:

> From: Steven Rostedt <rostedt at goodmis.org>
> Date: Wed, 14 May 2008 23:49:44 -0400
>
> > +#ifdef CONFIG_FTRACE
> > +#ifdef CONFIG_DYNAMIC_FTRACE
> > +_GLOBAL(mcount)
> > +_GLOBAL(_mcount)
> > +	stwu	r1,-48(r1)
> > +	stw	r3, 12(r1)
> > +	stw	r4, 16(r1)
> > +	stw	r5, 20(r1)
> > +	stw	r6, 24(r1)
> > +	mflr	r3
> > +	stw	r7, 28(r1)
> > +	mfcr	r5
> > +	stw	r8, 32(r1)
> > +	stw	r9, 36(r1)
> > +	stw	r10,40(r1)
> > +	stw	r3, 44(r1)
> > +	stw	r5, 8(r1)
>
> Yikes, that's really expensive.

Well, at least with dynamic ftrace, it's only expensive when tracing is
enabled.

>
> Can't you do a tail call and let the function you end
> up calling do all the callee-saved register pops onto
> the stack?

Not sure PPC has such a thing. I'm only a hobby PPC hacker (did it full
time in another life). If there is such a way, I'll be happy to Ack any
patches.

>
> That's what I did on sparc.
>

So that was your secret! ;-)

-- Steve




More information about the Linuxppc-dev mailing list