Re: [RFC][PATCH] blktrace: fix original blktrace

From: Ingo Molnar
Date: Wed Mar 25 2009 - 08:53:11 EST



* Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:

> On Wed, Mar 25 2009, Li Zefan wrote:
> > Jens Axboe wrote:
> > > On Wed, Mar 25 2009, Li Zefan wrote:
> > >> I'm wondering what we are going to do with the original blktrace which
> > >> is using relay and is used via ioctl.
> > >>
> > >> The problem is currently it's totally broken. You can use ftrace to see
> > >> the output of blktrace, but user-space blktrace is unusable.
> > >>
> > >> With this patch, both ioctl and ftrace can be used, but of course you
> > >> can't use both of them at the same time.
> > >
> > > Even if ftrace was as fast as storing huge amounts of data as blktrace,
> > > it's still of utmost importance that nothing is broken there. There are
> >
> > agreed
> >
> > > people actually USING this tracing to do real work, it's not a
> > > playground.
> > >
> >
> > and we are using blktrace to test the cgroup-based io controller
> >
> > > I appreciate the efforts to unify and improve our tracing, but we must
> > > not be breaking blktrace along the way. Otherwise the whole thing goes
> >
> > this patch fixes it.
> >
> > it's broken by "blktrace: add ftrace plugin"
> > (c71a896154119f4ca9e89d6078f5f63ad60ef199)
> >
> > @@ -131,13 +162,14 @@ static void __blk_add_trace()
> > - if (unlikely(bt->trace_state != Blktrace_running))
> > + if (unlikely(bt->trace_state != Blktrace_running || !blk_tracer_enabled))
> > return;
>
> Good, as long as it still works with blktrace, that's all I care
> about (for now, at least).

Sorry about that. I've applied Li's fixes and double checked
blktrace+blktrace functionality and pushed out a new tracing
tree to linux-next.

Btw., blktrace could be updated in the future to make use the
new per CPU buffering and sys_splice() code available in ftrace
plugin. [ splice is cool! =B-) ]

Plus blktrace could make use of built-in event filtering
capabilities - for example to only trace events in a specific
sector range on the disk. Or to trace all IO of a given PID only.

But that is a different project that needs changes both on the
kernel side and on the user-space side (.31-ish for sure) and the
relayfs+ioctl method must work fine in any case.

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/