This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
too many transport failure
- From: Zhiwei Ying <zhiwei dot ying at gmail dot com>
- To: systemtap <systemtap at sources dot redhat dot com>
- Date: Fri, 1 Apr 2011 08:40:45 +0800
- Subject: too many transport failure
Hi,
I am tracing a driver module to understand the call flow. In general I
will trace every function in the module.
probe module("xxx").function("*@*.c").call
{
printf("D %s %s\n", thread_indent(1), pp())
}
probe module("xxx").function("*@*.c").return
{
printf("D %s %s\n", thread_indent(-1), probefunc())
}
The log looks like
D 0 Audio_Timing(1245):
module("xxx").function("video_pvt_atc_check_render_health@/home/zhiwei/zhiwei-work/working_copy/otm/trunk/sshg/video/core/i686-linux-kernel/videedio_timing_control.c:1968").call
I run the code on a develop board, it reports many many "transport
failure", something like 500000+. I tried to increase the buf size for
staprun, but since there is not too much memory, only ~50M memory
could be used as the buffer for staprun, I can reduce some "transport
failure" to 200000+, the result is still not satisfied.
In this situation how can I reduce the "transport failure" to near
zero? I can tolerate some performance penalty.
pp() will print a long string, thought that consumes a lot of buffer.
Does systemtap has a ppid(), only print the function address? And
provide a map between ppid() and pp() offline, so I can restore the
pp() information offline.
Any help is appreciated.
Thanks,
Zhiwei