Re: PATCH 1/3] blktrace: support per-partition tracing

Li Zefan
2009-04-14T08:53:10Z

>>> Lets note that this approach still has the (long existing)
>>> limitation that only one device can be block-traced at a time.
>>>
>> No, both userspace blktrace and ftrace-plugin trace can trace
>> more than one device at a time.
>>
>> # btrace /dev/sda /dev/dm-0
>>
>> or
>>
>> # echo 1 > /sys/block/sda/trace/enable
>> # echo 1 > /sys/block/dm-0/trace/enable
>
> When they are independent - but not multiple partitions at a time:
>

The only way to trace multipl partitions is to trace the whole
sda, or set trace/start_lsa and trace/end_lsa properly.

> [root@aldebaran ~]# echo 1 > /sys/block/sda/sda1/trace/enable
> [root@aldebaran ~]# echo 1 > /sys/block/sda/sda2/trace/enable
> -bash: echo: write error: Device or resource busy

That's because struct blk_trace is attached to struct request_queue,
sda1 and sda2 share the same rq:

# echo 1 > /sys/block/sda/sda1/trace/enable
# cat /sys/block/sda/sda1/trace/enable
1
# cat /sys/block/sda/sda2/trace/enable
1

> [root@aldebaran ~]#
>
> Nor did i see any "trace all block IO in the system" kind of
> functionality in blktrace. (or maybe there's one that i missed?)
>

Right, and the only way to do this is 'blktrace sda sdb sdc ...'