Messages in this thread | | | Date | Thu, 14 Sep 2006 11:02:25 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108 |
| |
* Ingo Molnar (mingo@elte.hu) wrote: > > * Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > Following an advice Christoph gave me this summer, submitting a > > smaller, easier to review patch should make everybody happier. Here is > > a stripped down version of LTTng : I removed everything that would > > make the code review reluctant (especially kernel instrumentation and > > kernel state dump module). I plan to release this "core" version every > > few LTTng releases and post it to LKML. > > > > Comments and reviews are very welcome. > > i have one very fundamental question: why should we do this > source-intrusive method of adding tracepoints instead of the dynamic, > unintrusive (and thus zero-overhead) KProbes+SystemTap method? >
Hi Ingo,
First, I never said that this tracing infrastructure was tied to static trace points in any way. My goal is to provide a robust data serialisation mechanism that could be used both from static and dynamic trace points.
Zero-overhead for static tracepoints can be achieved by compiling them out.
One problem with the KProbes approach is that is limits what can be instrumented because of its performance impact when active : traps are very costly and can limit instrumentation of often triggered code paths : scheduler change, traps, interrupts...
Also, a major issue with dynamic instrumentation is that it will never be useful to kernel developers who keep current with the git HEAD. Dynamic instrumentation has to be defined outside of the kernel tree and cannot follow the code changes quickly enough to be useful for a developer without himself maintaining his own dynamic instrumentation.
I do not advocate for a particular approach : I think that dynamic instrumentation is very well suited for distributions which stick to a particular kernel version for a long time. However, static probes can be very useful for kernel developers as they can follow the kernel HEAD because they are part of the code.
Mathieu
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |