Which I/O controller is the fairest of them all?

<img src="http://lwn.net/images/ns/kernel/io-controller-sm.png" width=127 height=127
alt="[Block layer structure]" align="right" hspace=3>

An I/O controller is a system component intended to arbitrate access to
block storage devices; it should ensure that different groups of processes
get specific levels of access according to a policy defined by the system
administrator. In other words, it prevents I/O-intensive processes from
hogging the disk.
This feature can be useful on just about any kind of system
which experiences disk contention; it becomes a necessity on systems
running a number of virtualized (or containerized) guests. At the moment,
Linux lacks an I/O controller in the mainline kernel. There is, however,
no shortage of options out there. This article (subscribers only) will
look at some of the I/O controller projects currently pushing for inclusion
into the mainline.
<br clear="all">