lkml.org 
[lkml]   [2008]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/5] ftrace: print real return in dumpstack for function graph

On Wed, 3 Dec 2008, Ingo Molnar wrote:

>
> * Steven Rostedt <rostedt@goodmis.org> wrote:
>
> > 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.
>
> Can we do something to output something less funny?

Yeah, I can fix that up. This is a side effect of the change, the funny
output is a stack trace fix. It did not handle not finding the function in
the stack very well. It's not a dangling pointer or anything. It is just
a hickup in the calculation:

> > 4) 3568 -240 stack_trace_call+0x11d/0x209
> > 5) 3808 144 return_to_handler+0x0/0x73

Notice that 3568 + 240 = 3808

But how about I make it this:

> > 4) 3808 -1 stack_trace_call+0x11d/0x209
> > 5) 3808 144 return_to_handler+0x0/0x73

The -1 will be a way to flag that it was not found in the stack.

-- Steve



\
 
 \ /
  Last update: 2008-12-03 12:47    [W:0.046 / U:1.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site