Re: [PATCH 3/5] ftrace: print real return in dumpstack for functiongraph

From: Steven Rostedt
Date: Wed Dec 03 2008 - 06:45:25 EST



On Wed, 3 Dec 2008, Ingo Molnar wrote:

>
> * Steven Rostedt <rostedt@xxxxxxxxxxx> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/