On Thu, 2009-10-22 at 17:55 -0400, Steven Rostedt wrote: > On Thu, 2009-10-22 at 14:29 -0700, Adam Nemet wrote: > > Steven Rostedt writes: > > > On Thu, 2009-10-22 at 13:30 -0700, Adam Nemet wrote: > > > > 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. > > > > Yes, bar will have an _mcount call. The difference is that bar will return to > > foo's caller directly rather than to foo first. > > I guess the best bet is to have CONFIG_FUNCTION_GRAPH enable > -fno-optimize-sibling-calls and be done with it. > Hello, This did for us: Makefile: ifdef CONFIG_FRAME_POINTER KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls else KBUILD_CFLAGS += -fomit-frame-pointer endif So, the only thing we need to do is enabling CONFIG_FRAME_POINTER. Seems it was selected by FTRACE by default. Regards, Wu Zhangjin