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

Jose R. Santos
2006-09-15T17:14:14Z

Mathieu Desnoyers wrote:
> * Ingo Molnar (mingo@elte.hu) wrote:
> >
> > * Roman Zippel <zippel@linux-m68k.org> wrote:
> >
> > the key point is that we want _zero_ "static tracepoints". Firstly,
> > static tracepoints are fundamentally limited:
> >
> > - they can only be added at the source code level
> >
> > - modifying them requires a reboot which is not practical in a
> > production environment
>
> Not for kernel modules : unload/load is enough.
>

This assumes that the module can be unloaded in the first place.
Inserting a new probe on the disk controler for your boot drive or in
the filesystem module would still require a reboot.

> If the trace points are modified with the code by the ones who make the
> original code changes, it lessens the maintainance overhead. Furthermore, if
> there is a major change in a code path that requires rethinking the trace
> points, the person introducing the change has the best knowledge of what to do
> with the trace point. I think that trace point maintainance should be left to
> subsystem maintainers, not a centralised task done by distributions once in a
> while.
>

I agree with you here, I think is silly to claim dynamic instrumentation
as a fix for the "constant maintainace overhead" of static trace point.
Working on LKET, one of the biggest burdens that we've had is mantainig
the probe points when something in the kernel changes enough to cause a
breakage of the dynamic instrumentation. The solution to this is having
the SystemTap tapsets maintained by the subsystems maintainers so that
changes in the code can be applied to the dynamic instrumentation as
well. This of course means that the subsystem maintainer would need to
maintain two pieces of code instead of one. There are a lot of
advantages to dynamic vs static instrumentation, but I don't think
maintainace overhead is one of them.

-JRS