Budget Fair Queueing (BFQ) Storage-I/O Scheduler

BFQ can be found in Linux from 4.12.0, as one of the I/O schedulers in the new blk-mq framework. BFQ for the legacy blk framewok is available here as a patchset for Linux kernel sources from 2.6.32 (plus some old patches for the zen kernel). These are new versions of BFQ with respect to the ones you can find on Fabio's site. Latest stable kernels with latest BFQ versions can also be found as .deb packages on NickTh's Launchpad PPA. The latest BFQ version you can find here is 4.11.0-v8r11.

Finally you can find BFQ's v8 development branch here. Development branches for specific kernel versions are named after the target kernel version (e.g., bfq-v8-v4.10).

In the following archive, incremental patches to move from a version of BFQ to the following one, or from a version for a given kernel release to the same version for the following kernel release, can be found in previous_versions_revisions/incremental_patches. In addition, every directory named only with a kernel release number contains the latest version of BFQ for that release. Existing older versions of BFQ for these kernels can be found in previous_versions_revisions.

The archive is also mirrored here, as a courtesy of Oleksandr Natalenko, the author of the pf-kernel. Other pages about BFQ and mirrors: http://bfq.teambelgium.net/, http://ponce.cc/mirror/bfq_disk_sched/patches/ (also available via rsync: rsync://ponce.cc/mirror/bfq_disk_sched/patches/), https://bfq.io/.

For each full patchset see README.BFQ for a diffstat and for a brief changelog. Moreover, a list of known bugs and untested functionalities is here.

If useful, here is an example of how to add a BFQ version to a git Linux tree, starting from scratch and using git am.

Last updated: May 5 2017.
Paolo Valente (paolo DOT valente AT unimore DOT it)