Re: Q: /sys/block and I/O Schedulers

From: Milan Broz
Date: Mon Aug 22 2011 - 07:16:00 EST


On 08/22/2011 12:10 PM, Ulrich Windl wrote:
> I have a question: Reading the docs on I/O Schedulers, I had the
> impression the docs wanted to tell me that only the low-level devices
> (i.e. disks) use I/O Schedulers, while higher-level devices (like
> multipaths, RAIDs, LVs, etc.) don't.

As you already found, low-level device has always real io scheduler.

Device-mapper use stacked device logic - IOW mapped device
is stacked over some real device(s).

Remapping works on bio level, not on IO request level.
Separate bios are simple remapped to low-level devices where
io scheduler does its job.

There is one exception: dm-multipath which uses "request based" mapping,
IOW it means it uses own scheduler on device-mapper level
(But in old kernels it was on bio level as well,
for more info see https://lkml.org/lkml/2008/2/15/411)

> Using the SLES11 SP1 kernel (2.6.32.43-0.4-xen), I found out that LVs
> seem to use the I/O Scheduler

LVs (e.g. linear mappings) do not use own scheduler. But /queue directory
contains more attributes which need to be visible there.

> My test was as simple as this: /sys/block # for d in *
>> do echo $d: $(<$d/queue/scheduler) done

Btw see "lsblk -t" - here you can see stacked devices with scheduler
and topology info parsed from sysfs (in new util-linux).

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