Re: Block I/O Schedulers: Can they be made selectable/device? @runtime?

From: Tejun Heo
Date: Tue Mar 28 2006 - 23:09:26 EST


Linda Walsh wrote:
Is it still the case that block I/O schedulers (AS, CFQ, etc.)
are only selectable at boot time?

How difficult would it be to allow multiple, concurrent I/O
schedulers running on different block devices?

How close is the kernel to "being there"? I.e. if someone has a
"regular" hard disk and a high-end solid state disk, can
Linux allow whichever algorithm is best for the hardware?
(or applications if they are run on separate block devices)?


Hello, Linda, Jens.

Actually, I've been thinking about related stuff for sometime. e.g. It doesn't make much sense to use any scheduler other than noop for SSDs and it also doesn't make much sense to plug requests for milliseconds to such devices. So, what I'm currently thinking is...

* Give LLDD a chance to say that it doesn't need fancy scheduling.

* Automagically tune plugging time. We can maintain running average of request turn-around time and use fraction of it to plug the device. This should be give good enough merging behavior while not adding excessive delay to seek time.

* Don't leave device devices with queue depth > 1 idle. For queued devices, we can push the first request fast such that the head moves to proximity of what would probably follow. So, don't plug the first request, plug from the second.

Any gotchas I've missed?

Thanks.

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