On Fri, 2009-11-20 at 10:57 +0100, Andi Kleen wrote: > Steven Rostedt <rost...@goodmis.org> 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