Re: backtrace using LTTng in Kernel
Mathieu Desnoyers <[email protected]>
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20070618130021.GA3063@Krystal> |
* Sagar Borikar ([email protected]) wrote: > > Hello, > > I am consistently using LTTng for tracing the MIPS system. While adding the events, I was bit stuck in finding out which of the kernel memcpy function is consuming lot of CPU. I need to search a kernel call which is having highest probability of stalling the cpu. So in short, I would like to see backtrace in LTTng. Can anyone point me out about using backtracking feature in LTTng if at all it is present? > > Thanks in advance, > Hi Sagar, You would have to port part of ltt/probes/ltt-probe-stack_arch_i386.c (there is also a x86_64 implementation) to MIPS. You take the standard kernel stack trace (see arch/mips/kernel/stacktrace.c) and, instead of sending the output well formatted to printk, you follow what is done in LTTng to 1 - calculate the size of the sequence in the first pass and 2 - copy the data into the sequence in the 2nd pass. Note that the way function calls are put is very important: I use an address that is on the current thread's stack as a start value; it must not change between the 1st and the 2nd pass. If you can do that on recent kernels (2.6.22-rc4-mm2), I could integrate that to LTTng, that would be great :) Mathieu > Sagar > > _______________________________________________ > Ltt-dev mailing list > [email protected] > http://listserv.shafik.org/mailman/listinfo/ltt-dev -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68