Messages in this thread | | | Date | Mon, 22 Aug 2011 13:15:47 +0200 | From | Milan Broz <> | Subject | Re: Q: /sys/block and I/O Schedulers |
| |
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
| |