BFQ is a proportional share disk scheduling algorithm, based on CFQ, that supports hierarchical scheduling using a cgroups interface.
Paolo is currently maintaining the code, so refer to his page on BFQ for updates.
Here you can find the sources, a brief description of the latest BFQ implementation and of its tunables, and some testing results. Please refer to this page on Paolo's site for a complete and more formal description of the scheduler, the paper introducing it, and a complete performance comparison with other schedulers from the literature, carried out using an older implementation of BFQ.
- 24 September 2008. Address the issues pointed out during
the first review:
- use a bitmap to signal ioprio changes to I/O schedulers.
- Introduce a timeout to limit the huge delays that could happen with seeky traffic.
- Introduce hierarchical scheduling.
- 08 April 2008. Fix a wrong assertion on idle queues (they can become an ->active_queue), and clean up some leftover from CFQ code import. Also use a different ioprio_changed ioc field for bfq and fix the memory barriers used to handle it.
- 07 April 2008. Backport the rcu-safe cic freeing from mainline CFQ.
- 03 April 2008. Initial release.
Last updated November 5th, 2008