How to get the detailed kernel stack trace if specified fuction takes too long to finish?
liang xie
xieliang007@gmail.com
Fri Mar 28 04:22:00 GMT 2014
Hi all,
Probably it's a newbie question, to be honest, i am new to SystemTap,
currently i want to capture the kernel stack trace if "sys_write" runs
too long, if that i could know where it sucks.
My OS:2.6.32-220.el6.x86_64
# stap -V
Systemtap translator/driver (version 1.6/0.152 non-git sources)
My tried script:
global i=0
global tb=0
global te=0
probe kernel.function("sys_write") {
tb=gettimeofday_us();
}
probe kernel.function("sys_write").return {
te=gettimeofday_us();
if(te-tb > 100000) {
i++;
printf("time_us: %d\n", te-tb);
print_backtrace();
if(i > 15) {
exit();
}
}
}
# stap -x <pid> xxx.stp
time_us: 226795
Returning from: 0xffffffff81176f90 : sys_write+0x0/0x90 [kernel]
Returning to : 0xffffffff8100b0f2 : system_call_fastpath+0x16/0x1b [kernel]
time_us: 101400
Returning from: 0xffffffff81176f90 : sys_write+0x0/0x90 [kernel]
Returning to : 0xffffffff8100b0f2 : system_call_fastpath+0x16/0x1b [kernel]
time_us: 527853
Returning from: 0xffffffff81176f90 : sys_write+0x0/0x90 [kernel]
Returning to : 0xffffffff8100b0f2 : system_call_fastpath+0x16/0x1b [kernel]
time_us: 133948
Returning from: 0xffffffff81176f90 : sys_write+0x0/0x90 [kernel]
Returning to : 0xffffffff8100b0f2 : system_call_fastpath+0x16/0x1b [kernel]
It doesn't show my "expected" kernel stack trace,e.g. file system or
block layer related stack trace. How to archive that? Any pointers
will be highly appreciated!
Best,
Liang
More information about the Systemtap
mailing list