Re: [RFC PATCH] dynamic debug - adding ring buffer storage support

From: Ingo Molnar
Date: Mon Dec 28 2009 - 04:24:24 EST



* Jiri Olsa <jolsa@xxxxxxxxxx> wrote:

> On Tue, Dec 22, 2009 at 10:39:56AM -0500, Jason Baron wrote:
> > On Tue, Dec 22, 2009 at 12:32:06PM +0100, Jiri Olsa wrote:
> > > Hi,
> > >
> > > as I use dynamic debug sometimes, I thought it could be useful having
> > > the possibility to store the output somewhere else than dmesg.
> > >
> > > The attached patch implements support for storing dynamic debug
> > > messages to the ring buffer.
> > >
> > > The dynamic debug allows simple addition of new flags,
> > > so I added 'r' flag for ring buffer storage.
> > >
> > > I used the ring buffer implementation from trace framework.
> > >
> > > hopefuly this could be any use for others as well...
> > > plz let me know what you think,
> > >
> > > jirka
> > >
> >
> > hi,
> >
> > I like the idea of using the ring buffer for output. However, I'm not
> > sure why we need a separate one for this. I like adding the 'r' for ring
> > buffer storage, by why not just make this path call 'trace_printk()', and
> > store the string in the existing kernel tracing ring buffer? That way it
> > can interleave with other trace data as well.
>
> that way you need to enable tracing as well... but thats ok I guess :)
>
> I was investigating trace events for this, but did not find a way
> to put variable length argument inside... and I overlooked the
> trace_printk, I'll look on it and see how it fits, thanks
>
> also having separate ring buffer makes the 'trace'/'trace_pipe' code
> really simple (suprissingly) compared to ftrace, and I thought
> on this place it could last for some time.. ;)

I think what we want is a unified channel of events, of which printk (and
dynamic-printk) is one form. I.e. we should add printk events and
dynamic-printk events as well, which would show up in /debug/tracing/events/
in a standard ftrace event form and would be accessible to tooling that way.

For printk a single event would be enough i suspect (we dont want a separate
event for every printk), and for dynamic-printk we want to map the existing
dyn-printk topologies into /debug/tracing/events, to preserve the distinctions
and controls available there.

This way in the long run we'd have one unified facility.

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