Re: [PATCH] gcc mcount-nofp was Re: BUG: GCC-4.4.x changes thefunction frame on some functions

From: Steven Rostedt
Date: Fri Nov 20 2009 - 07:34:34 EST


On Fri, 2009-11-20 at 10:57 +0100, Andi Kleen wrote:
> Steven Rostedt <rostedt@xxxxxxxxxxx> writes:
> >
> > And frame pointers do add a little overhead as well. Too bad the mcount
> > ABI wasn't something like this:
> >
> >
> > <function>:
> > call mcount
> > [...]
> >
> > This way, the function address for mcount would have been (%esp) and the
> > parent address would be 4(%esp). Mcount would work without frame
> > pointers and this whole mess would also become moot.
>
> I did a patch to do this in x86 gcc some time ago. The motivation
> was indeed the frame pointer overhead on Atom with tracing.
>

Yes, I remember you talking about this but I don't remember how far it
went.



> Unfortunately it also requires glibc changes (I did those too). For
> compatibility and catching mistakes the new function was called
> __mcount_nofp.

Actually, could you change the name? I really hate the "mcount" name, it
is legacy and with a new feature, it should be abandoned. Something like
"__fentry__" would be nicer.

>
> I haven't tried it with current gcc and last time I missed the
> gcc feature merge window with this.
>
> But perhaps you find it useful. Of course it would need more
> kernel changes to probe for the new option and handle it.
>
> Here's the old patch. I haven't retested it with a current
> gcc version, but I think it still applies at least.
>
> If there's interest I can polish it up and submit formally.

I would definitely be interested, and I would also be willing to test
it.

Thanks!

-- Steve



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/