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

From: Jens Axboe
Date: Wed Mar 25 2009 - 09:01:50 EST


On Wed, Mar 25 2009, Ingo Molnar wrote:
>
> * 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.

Don't get me wrong, I completely agree with the unification idea, it'll
be awesome to have a single stream of info for several event types. My
worry was just if it was going too fast, I just don't want a broken
blktrace before the dust has even settled. And moving blktrace from
relay to per-cpu buffering and splice definitely sounds like a good
longer term direction.

--
Jens Axboe

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