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

From: Steven Rostedt
Date: Wed Nov 10 2010 - 16:58:44 EST


On Wed, 2010-11-10 at 22:30 +0100, Frederic Weisbecker wrote:

> > * Trace Format issues with Ftrace:
> >
> > - Ftrace timestamps are saved as delta from previous event
> > - Only works for tracing where preemption can be disabled, unusable for
> > user-space tracing.
>
>
>
> What is this userspace tracing? Is this userspace tracing made in kernel
> space?
>
> (tag me confused)

tag team!

>
>
>
> > - Creates an artificial data dependency between events, leading to odd
> > side-effects when dealing with nesting over tracer
>
>
>
> I wouldn't comment that, I'm not very experienced with the ring buffer

Yeah, I discussed this with Mathieu. There's a pretty trivial fix for
this, but may require ABI breakage.

>
>
>
> > - 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.


>
> 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.


>
>
>
> > - 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.

>
>
>
> > - 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 ;-)


>
>
> Now I'm too tired to sum up all the points that seem not to be
> solved through an ABI extension :)

Me too, lets go shopping!

-- Steve


--
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/