Messages in this thread | | | Date | Tue, 15 Mar 2011 16:22:22 +0100 | From | David Sterba <> | Subject | Re: ext4 deep stack with mark_page_dirty reclaim |
| |
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.
dave
| |