• S
    ftrace: print real return in dumpstack for function graph · 7ee991fb
    Steven Rostedt 提交于
    Impact: better dumpstack output
    
    I noticed in my crash dumps and even in the stack tracer that a
    lot of functions listed in the stack trace are simply
    return_to_handler which is ftrace graphs way to insert its own
    call into the return of a function.
    
    But we lose out where the actually function was called from.
    
    This patch adds in hooks to the dumpstack mechanism that detects
    this and finds the real function to print. Both are printed to
    let the user know that a hook is still in place.
    
    This does give a funny side effect in the stack tracer output:
    
            Depth   Size      Location    (80 entries)
            -----   ----      --------
      0)     4144      48   save_stack_trace+0x2f/0x4d
      1)     4096     128   ftrace_call+0x5/0x2b
      2)     3968      16   mempool_alloc_slab+0x16/0x18
      3)     3952     384   return_to_handler+0x0/0x73
      4)     3568    -240   stack_trace_call+0x11d/0x209
      5)     3808     144   return_to_handler+0x0/0x73
      6)     3664    -128   mempool_alloc+0x4d/0xfe
      7)     3792     128   return_to_handler+0x0/0x73
      8)     3664     -32   scsi_sg_alloc+0x48/0x4a [scsi_mod]
    
    As you can see, the real functions are now negative. This is due
    to them not being found inside the stack.
    Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    7ee991fb
dumpstack.c 7.6 KB