Re: [PATCH 0/3] A kernel tracing interface

From: David Wilder
Date: Thu Feb 28 2008 - 14:41:17 EST


Andrew Morton wrote:
On Tue, 26 Feb 2008 14:38:37 -0800 "David J. Wilder" <dwilder@xxxxxxxxxx> wrote:

These patches provide a kernel tracing interface called "trace".

ChangeLog:
-Updated to 2.6.25-rc2-mm1
-Removed sem_watch example, to hard to maintain.
-Added a new example that demonstrates per-cpu continuous tracing
of data generated using marker probes.
-Removed inline from relay patch.
-Moved examples into /sample directory.

The motivation for "trace" is to:
- Provide a simple set of tracing primitives that will utilize the high-
performance and low-overhead of relayfs for passing traces data from
kernel to user space.
- Provide a common user interface for managing kernel traces.
- Allow for binary as well as ascii trace data.
- Incorporate features from the systemtap runtime that are
useful to others.

So... what's the story on this versus lttng?

Trace is simpler to use and a smaller bit of code than lttng.
It may not have all the features of lttng but it is good starting point that can be expanded upon. I have several users of trace that just wanted a simple way to get data out of the kernel without the overhead of lttng trace is working well for them. Trace also works well with markers and kprobes. For example systemtap is is using the basic trace code to gather data from kprobes and markers.

Is there some userspace code available for people to test this? Maybe it's
mentioned and I missed it.

I purposely designed trace so no special user code is required to gather trace data. Standard user utilities like cat, grep, sort and more is all that is needed. I show an example in /samples/trace/fork_trace.c.

However since trace uses relay as its transport any user interfaces provided by relay can be used to read trace data. (documented in /Documentation/relay.txt)


It'd be interesting to see a writeup of the proposed kernel<->userspace
interfaces. I see a description of kernel-internal interfaces, but how do
users use it?

I will add some text in the documentation.

I see it uses things from blktrace. Can blktrace be switched over to being
a client of this code?

yep.


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


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