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

Ingo Molnar
2006-09-14T20:42:37Z

* Martin Bligh <mbligh@mbligh.org> wrote:

> >if there are lots of tracepoints (and the union of _all_ useful
> >tracepoints that i ever encountered in my life goes into the thousands)
> >then the overhead is not zero at all.
> >
> >also, the other disadvantages i listed very much count too. Static
> >tracepoints are fundamentally limited because:
> >
> > - they can only be added at the source code level
> >
> > - modifying them requires a reboot which is not practical in a
> > production environment
> >
> > - there can only be a limited set of them, while many problems need
> > finegrained tracepoints tailored to the problem at hand
> >
> > - conditional tracepoints are typically either nonexistent or very
> > limited.
> >
> >for me these are all _independent_ grounds for rejection, as a generic
> >kernel infrastructure.
>
> I don't think anyone is saying that static tracepoints do not have
> their limitations, or that dynamic tracepointing is useless. But
> that's not the point ... why can't we have one infrastructure that
> supports both? Preferably in a fairly simple, consistent way.

primarily because i fail to see any property of static tracers that are
not met by dynamic tracers. So to me dynamic tracers like SystemTap are
a superset of static tracers.

So my position is that what we should concentrate on is to make the life
of dynamic tracers easier (be that a handful of generic, parametric
hooks that gather debuginfo information and add NOPs for easy patching),
while realizing that static tracers have no advantage over dynamic
tracers.

i.e. why add infrastructure for the sake of something that is clearly
inferior? I have no problem with adding infrastructure for SystemTap,
but i am asking the question: is it worth adding a static tracer?

I would of course accept static tracers too if someone proved it that
they offer something that dynamic tracers cannot do.

(Just like i would accept the reintroduction of the Big Kernel Lock too,
if someone proved it that it's the right thing to do.)

Ingo