On Thu, 2009-10-22 at 13:30 -0700, Adam Nemet wrote:
> Maybe scanning the instructions should stop at the beginning of the function
> based on the kernel's symbol table. I am not sure if we can establish any
> other stopping condition without affecting performance too much.
How would we check the kernel symbol table? Remember, this happens at
_every_ function call.
>
> Speaking of performance, -pg also affects the instruction scheduling freedom
> of the compiler in the prologue. With profiling, we limit optimizations not
> to move instructions in and out of the prologue.
>
> Also note that for functions invoked via tail call you won't get an exit
> event. E.g. if bar is tail-called from foo:
>
> foo entered
> bar entered
> foo/bar exited
>
> However, this is not MIPS-specific and you can always disable tail calls
> with -fno-optimize-sibling-calls.
The question is, would bar have a _mcount call? So far, we have not had
any issues with this on either x86 nor PPC.
/me knocks on wood.
-- Steve
|