Hi, I have been working for a few years (with Fabio Checconi) on a disk scheduler providing definitely lower latencies than cfq, as well as a higher throughput with most of the test workloads we used (or the same throughput as cfq with the other workloads). We named this scheduler bfq (budget fair queueing). I hope this is the right list for announcing this work.
One of the things we measured in our tests is the cold-cache execution time of a command as, e.g., "bash -c exit", "xterm /bin/true" or "konsole -e /bin/true", while the disk was also accessed by different combinations of sequential, or random, readers and/or writers. Depending on which of these background workloads was used, these execution times were five to nine times lower with bfq under 2.6.32. Under 2.6.35 they were instead from six to fourteen times lower. The highest price paid for these lower latencies was a 20% loss of aggregated disk throughput for konsole in case of background workloads made only of sequential requests (due to the fact that bfq of course privileges, more than cfq, the seeky IO needed to load konsole and its dependencies). In contrast, with shorter commands, as bash or xterm, bfq also provided up to 30% higher aggregated throughput.
We saw from 15% to 30% higher aggregated throughput also in our only-aggregated-throughput tests. You can find in [1] all the details on our tests and on other nice features of bfq, such as the fact that it perfectly distributes the disk throughput as desired, independently of disk physical parameters like, e.g., ZBR. in [1] you can also find a detailed description of bfq and a short report on the maturity level of the code (TODO list), plus all the scripts used for the tests.
The results I mentioned so far have been achieved with the last version of bfq, released about two months ago as patchsets for 2.6.33 or 2.6.34. From a few days a patchset for 2.6.35 is available too, as well as a backport to 2.6.32. The latter has been prepared by Mauro Andreolini, who also helped me a lot with debugging. All these patches can be found here [2]. Mauro also built a binary kernel package for current lucid, and hosted it into a PPA, which can be found here [3].
A few days after being released, this version of bfq has been introduced as the default disk scheduler in the Zen Kernel. It has been adopted as the default disk scheduler in Gentoo Linux too. I also recorded downloads from users with other distributions, as, e.g., Ubuntu and ArchLinux. As of now we received only positive feedbacks from the users.
Paolo
[1] http://algo.ing.unimo.it/people/paolo/disk_sched/ [2] http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php [3] Ubuntu PPA: ppa:mauro-andreolini/ubuntu-kernel-bfq