Re: Tracing Requirements (was: [RFC/Requirements/Design] h/w errorreporting)

From: Frederic Weisbecker
Date: Wed Nov 10 2010 - 17:49:52 EST


On Wed, Nov 10, 2010 at 04:54:19PM -0500, Steven Rostedt wrote:
> On Wed, 2010-11-10 at 22:30 +0100, Frederic Weisbecker wrote:
> > > - 0 ns IRQ/SOFTIRQ handler duration side-effect
> >
> >
> >
> > ditto.
>
> If an interrupt (or softirq) preempts the recorded trace, then events
> that are recorded in that interrupt all get the same time as the event
> it preempted. Giving us the assumption that all events happened at once.
>
> Again, this is just a side effect and the fix is trivial. But may
> require ABI breakage to do so.



Right, now I recall I discussed that with Mathieu lately.



>
> >
> > If we need/want to cure that, then we need an:
> >
> > => ABI breakage
> >
> >
> >
> > > - Event size limited to one page
> >
> >
> >
> > Perf too needs more (userspace stack dumps).
>
> That was actually a decision made by Linus. But is trivial to change. As
> there's nothing hard coded about the design that forces us to have page
> size sub buffers. I don't even think that it would require an ABI
> breakage, except I think my tools I wrote (incorrectly) assumed it.


Ok.



>
> >
> >
> >
> > > - Ftrace event headers are still too large
> >
> >
> > (described in the beginning)
>
> Yep, they are large, but can be trimmed. This would require no abi
> breakage since the these headers are also described in the event
> formats. Thus changing the current tools should cope with the headers
> changing. In fact they were designed too since the lock-depth was known
> to be deprecated soon.


Hmm, in practice this is an ABI breakage as we have scripts that rely on
the common_pid field for example. We can fix this, but older tools won't
work with new kernels.



> > > - Handling of dynamically added instrumentation while trace is recorded is
> > > inexistent.
> >
> >
> >
> >
> > I still don't understand this point
>
> He's talking about tracing the tracepoints in a loaded module. We
> currently have no way to add them while a trace is happening. The trace
> formats do not exist and may not exist (if module is unloaded) when the
> trace ends.
>
> But who really loads and then unloads a module during tracing. As pretty
> much all kernel developers cringe at the fact that modules get
> unloaded ;-)



Hehe :)

Anyway this can be expressed through an ABI extension,
using a kind of lazy tracepoint registration or so.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/