[ltt-dev] Linux Trace terminology - feedback requested
Frank Ch. Eigler
fche@redhat.com
Fri May 19 15:12:00 GMT 2006
Hi -
> [...] In source tracepoints could be "statically compiled out"
> (through proper C preprocessor magic) or compiled in as "static
> tracepoints". They may even be statically compiled out but later
> inserted as dynamic tracepoints.
Have you heard of any system that does that effectively? In systemtap
we've found that it is not unusual for the kernel compiler to mangle
code and data flows so much that there is little hope for an
arbitrarily placed *comment* ("compiled out") to be preserved in a
sensible way. There is no PC associated with a piece of code that the
compiler can't see - thus no dynamic breakpoint insertable "there".
> [...] Of course the typical case is "in source tracepoints" used as
> "static tracepoints" and "externally described tracepoints" used as
> "dynamic tracepoints". Nonetheless, it is important to at least
> stress the fact that static tracepoints can be compiled out for zero
> overhead.
This distinction seems to offer little value. A really compiled-out
static probe is just as useful as a dynamic-probe script that is not
running.
If, on the other hand, "compiled-out" means something milder, like
leaving a number of NOPs in the object code, then we should consider a
different term, since even NOPs don't come free.
- FChE
More information about the Systemtap
mailing list