LWN.net Logo

Variations on fair I/O schedulers

Variations on fair I/O schedulers

Posted Dec 5, 2008 1:16 UTC (Fri) by alankila (subscriber, #47141)
In reply to: Variations on fair I/O schedulers by ras
Parent article: Variations on fair I/O schedulers

There is a good reason to make IO schedulers pluggable: different media may need different scheduling. The canonical example is the flash vs. disk. It makes no sense to calculate optimal write order, or delay IO for flash.

In principle, I personally prefer one relatively well working piece of code over plenty of choice. There is also the argument that code can be written against a particular scheduling model. In a way, the situation is the opposite of what you said: the current unchangeable scheduler creates a stable API for *userland*, which is where the clients of scheduler are.

An example: When the 2.6 kernel arrived, it changed the way yield() operations on threads work, causing some applications to slow down drastically. Imagine if you had had choice of 3 different schedulers, and need to run app A which wants yield() behavior of one scheduler, and app B that wants the yield() of another. It could mean that you might not be able to use these two apps at the same time.


(Log in to post comments)

Variations on fair I/O schedulers

Posted Dec 6, 2008 20:42 UTC (Sat) by giraffedata (subscriber, #1954) [Link]

In principle, I personally prefer one relatively well working piece of code over plenty of choice.

If those were the candidates, I would agree. But in reality, there's a perfectly viable third candidate: plenty of choice, in which one option is something that works relatively well for everyone.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds