Re: [RFC][PATCH] convert block trace points to TRACE_EVENT()

From: Li Zefan
Date: Wed May 20 2009 - 04:37:58 EST


Christoph Hellwig wrote:
> On Tue, May 19, 2009 at 08:59:29AM -0400, Jeff Moyer wrote:
>> I'm not sure I'm comfortable with this. Having had to diagnose
>> performance problems using blktrace, I find the dev_t information for
>> plugs and unplugs especially interesting. Maybe we can still figure
>> this out given the context in the trace, though. Can you comment on
>> that?
>
> The problem is that right now we still allow request queues shared by
> multiple gendisks, so we can't get at the gendisk. The blktrace ioctl
> interface gets around that by doing the setup with an ioctl on the
> block device node and storing the dev_t at that point.
>
> But I don't think we actually have any drivers left sharing a queue
> that way, and I'd love to get rid of that for various reasons.
>

It will be great if this can be done.

>> from the single letter output to the verbose strings? Am I just being a
>> curmudgeon?
>>
>> I have one further question, which will expose my ignorance on this
>> implementation. Would the proposed patch change the information
>> available to the blktrace utility,
>
> That's the output from /sys/kernel/debug/tracing/trace when the
> block events are enabled. The blktrace utility should continue to
> work without changes, although it could be ported to use the ftrace
> binary ring buffer directly in the future.
>

Yes, this patch doesn't affect ioctl-based blktrace or ftrace-plugin
blktrace at all.

To use blktracer:
# echo 1 > /sys/block/sda/trace/enable
# echo blk > /debug/tracing/current_tracer
# cat /debug/tracing/trace_pipe

To use block trace events:
# echo 'block:*' > /debug/tracing/set_event
# cat /trace_pipe

You can mixed-use blktracer and trace events, to see how they differ
in the output.
--
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/