Re: [RFC PATCH dm-ioband] Added in blktrace msgs for dm-ioband

From: Li Zefan
Date: Tue May 12 2009 - 20:56:14 EST


>>>>>> Thanks for your suggestion. I'll use TRACE_EVENT instead.
>>>>> blk_add_trace_msg() supports both blktrace and tracepoints. I can
>>>>> get messages from dm-ioband through debugfs. Could you expain why
>>>>> should we use TRACE_EVENT instead?
>>>>>
>>>> Actually blk_add_trace_msg() has nothing to do with tracepoints..
>>>>
>>>> If we use blk_add_trace_msg() is dm, we can use it in md, various block
>>>> drivers and even ext4. So the right thing is, if a subsystem wants to add
>>>> trace facility, it should use tracepoints/TRACE_EVENT.
>>>>
>>>> With TRACE_EVENT, you can get output through debugfs too, and it can be used
>>>> together with blktrace:
>>>>
>>>> # echo 1 > /sys/block/dm/trace/enable
>>>> # echo blk > /debugfs/tracing/current_tracer
>>>> # echo dm-ioband-foo > /debugfs/tracing/tracing/set_event
>>>> # cat /deubgfs/tracing/trace_pipe
>>>>
>>>> And you can enable dm-ioband-foo while disabling dm-ioband-bar, and you can
>>>> use filter feature too.
>>> Thanks for explaining.
>>> The base kernel of current dm tree (2.6.30-rc4) has not supported
>>> dm-device tracing yet. I'll consider using TRACE_EVENT when the base
>>> kernel supports dm-device tracing.
>>>
>> I think we don't have any plan on dm-device tracing support, do we? And you
>> don't need that.
>>
>> I downloaded dm-ioband 1.10.4, and applied it to latest tip-tree, and made
>> a patch to convert those blktrace msgs to trace events.
>>
>> # ls /debug/tracing/events/dm-ioband
>> enable ioband_endio ioband_issue_list ioband_urgent_bio
>> filter ioband_hold_bio ioband_make_request
>> # echo 1 /debug/tracing/events/dm-ioband/enable
>> # echo blk /debug/tracing/current_tracer
>> ...
>
> Is the following line unnecessary in the latest tip-tree?
>
> # echo 1 > /sys/block/dm/trace/enable
>

Yes, still needed. I was not giving a complete demonstration. ;)

> How to enable/disable tracing on each device?

echo 1 > /sys/block/dm-0/trace/enable
echo 1 > /sys/block/dm-1/trace/enable

Or use filter facility:

echo "dev == $(( (ma0 << 20) | mi0 ))" > /debug/tracing/events/dm-ioband/filter

This will filter out all events generated from dm-1, leaving those from dm-0.

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