On 11/19/09 13:06, Linus Torvalds wrote:
On Thu, 19 Nov 2009, H. Peter Anvin wrote:
Calling the profiler immediately at the entry point is clearly the more
sane option. It means the ABI is well-defined, stable, and independent
of what the actual function contents are. It means that ABI isn't the
normal C ABI (the __fentry__ function would have to preserve all
registers), but that's fine...
As far as I know, that's true of _mcount already: it's not a normal ABI
and is rather a highly architecture-specific special case to begin with.
At least ARM has some (several?) special mcount calling conventions,
afaik.
Correct. _mcount's ABI typically has been defined by the implementation
of the vendor's C library mcount.
GCC has options to emit the profiling code prior to or after the
prologue controllable through the usual variety of target macros &
hooks. I can't imagine anyone would object to a clean, tested patch to
change how x86-linux's profiling code was implemented.
jeff