Re: ext4 deep stack with mark_page_dirty reclaim

From: Chris Mason
Date: Tue Mar 15 2011 - 12:27:36 EST


Excerpts from David Sterba's message of 2011-03-15 11:22:22 -0400:
> On Mon, Mar 14, 2011 at 07:25:10PM -0700, Andreas Dilger wrote:
> > Is there a script which you used to generate this stack trace to
> > function size mapping, or did you do it by hand? I've always wanted
> > such a script, but the tricky part is that there is so much garbage on
> > the stack that any automated stack parsing is almost useless.
> > Alternately, it would seem trivial to have the stack dumper print the
> > relative address of each symbol, and the delta from the previous
> > symbol...
>
> > > 240 schedule+0x25a
> > > 368 io_schedule+0x35
> > > 32 get_request_wait+0xc6
>
> from the callstack:
>
> ffff88007a704338 schedule+0x25a
> ffff88007a7044a8 io_schedule+0x35
> ffff88007a7044c8 get_request_wait+0xc6
>
> subtract the values and you get the ones Ted posted,
>
> eg. for get_request_wait:
>
> 0xffff88007a7044c8 - 0xffff88007a7044a8 = 32
>
> There'se a script scripts/checkstack.pl which tries to determine stack
> usage from 'objdump -d' looking for the 'sub 0x123,%rsp' instruction and
> reporting the 0x123 as stack consumption. It does not give same results,
> for the get_request_wait:
>
> ffffffff81216205: 48 83 ec 68 sub $0x68,%rsp
>
> reported as 104.

Also, the ftrace stack usage tracer gives more verbose output that
includes the size of each function.

-chris
--
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/