Re: [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108

Michel Dagenais
2006-09-14T15:27:23Z

On Thu, 2006-14-09 at 16:33 +0200, Roman Zippel wrote:
> On Thu, 14 Sep 2006, Ingo Molnar wrote:
> > > On Thu, 14 Sep 2006, Ingo Molnar wrote:

> > > > 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?

> Using alternatives this could be near zero as well and it will likely
> have less overhead when it's actually used.

This is the crucial point. Using an INT3 at each dynamic tracepoint is
both costly and is a larger perturbation on the system under study.
Static tracepoints can be achieved by various means, including a few
NOPs to reserve space which get patched dynamically for activation. They
may also be compiled out completely. By the way, there are quite a few
tracers already in device drivers in the kernel.

> BTW I don't mind KProbes as an option, but I have huge problem with making
> it the only option.

Indeed, KProbes SystemTAP and LTTng are complementary and people
involved in the three projects are cooperating.

> > But besides the usability problems, the most important problem is that
> > static tracepoints add a _constant maintainance overhead_ to the kernel.
> > I'm talking from first hand experience: i wrote 'iotrace' (a static
> > tracer) in 1996 and have maintained it for many years, and even today
> > i'm maintaining a handful of tracepoints in the -rt kernel. I _dont_
> > want static tracepoints in the mainline kernel.
>
> Even dynamic tracepoints have a maintainance overhead and I doubt there is
> much difference. The big problem is having to maintain them outside the
> mainline kernel, that's why it's so important to get them into the
> mainline kernel.

Indeed, dynamic tracepoints are like code patches, when the kernel
source changes they may or not apply to newer versions. Mainline kernel
"static" tracepoints are more like the existing 70000+ printk
statements!