This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]