Re: [PATCH] tracing/markers: make markers select tracepoints

Peter Zijlstra
2009-02-23T22:17:34Z

On Mon, 2009-02-23 at 13:32 -0500, Theodore Tso wrote:
> On Mon, Feb 23, 2009 at 12:31:31PM -0500, Steven Rostedt wrote:
> > > The impression that this is somehow different with tracepoints is
> > > mistaken. Tracepoints are *exactly* as "ABI-like" as markers.
> >
> > I disagree with this point. markers are text strings that will eventually
> > appear to userspace. trace points need translation. A trace point can be
> > modified at any time and should never mess up user apps.
> >
> > You may have a hook to a trace point that provides user apps a text based
> > output. If the trace point changes, this hook may break. But the tracer
> > maintainer of that hook will be responsible for that change, not the
> > maintainer of the code the tracepoint existed in.
>
> So stupid question time --- exactly who is supposed to write and
> maintain trnaslation code; the "hook"? What trace points have done is
> added an extra layer of indirection, but in order for someone to
> actually make *use* of the have the trace point, someone has to
> maintain the "hook".

That just means we have to make it easier to write/generate this glue,
no? If we had function argument debug data (see below) we could generate
a generic tracepoint hook.

> I'm sorry I've offended Peter with the ext4 trace_mark() hooks, but
> it's what I could forsee needing if someone wants reports a wierd sh*t
> bug in ext4 and I wanted to be able to be able to extract debugging
> information without forcing them to patch and recompile the kernel,
> and in the ideal world, without even needing to reboot the kernel.
> (If we had usable and reliable debuginfo information, in most cases
> I'd be able simply use access to function parameters as replacements
> for trace_mark().)

We're working on adding arguments to the function/graph tracer, it would
fit all your above requirements and doesn't need any source modification
to boot.

Furthermore, most of it is upstream.

> I've had to debug problems in the field on customer machines where
> installing a new kernel was a big deal (as in, you get a window to
> reboot the machine every 24 hours, and the problem is so complex you
> can't replicate it anywhere *but* the production environment). It's
> also been the case that more than once I've seen wierd behaviour on my
> laptop, and being able to peer inside it to see what is going on
> easily and conveniently is a major win.

Yeah, I know, the function graph tracer is brilliant that way. It even
provides information on the rest of the system and requires no
additional patches or big lumps of userspace.

> Finally, whether or not the text string is an ABI really depends on
> the tools. Given that the string is self describing, it's only an ABI
> if the tools are stupid.

> This really isn't rocket science....

It isn't, yet how many scripts/programs have you seen that failed at the
above?