Linux 6.3 BFQ Gets Tuned For Multi-Actuator Drives

Written by Michael Larabel in Linux Storage on 26 February 2023 at 07:30 PM EST. 19 Comments
While two years ago in Linux 5.16 multi-actuator hard drive support was merged, with the in-development Linux 6.3 kernel the BFQ I/O scheduler is now seeing some tuning for multi-actuator drives.

Multi-actuator drives have begun surfacing for enterprise hard drives where multiple actuators are split between the platters of a disk drive and can move independently of each other, in order to provide increased performance over a single actuator disk drive. Beyond the earlier multi-actuator support in the block subsystem, with Linux 6.3 comes tuning for the BFQ I/O scheduler to better handle this newer hard drive tech.

Paolo Valente of Linaro who has been working on the patches that went through more than a dozen rounds of review is certainly glad to see this work finally merged. Paolo explained of this BFQ multi-actuator support in the patch series:
"This extension addresses the following issue. Single-LUN multi-actuator SCSI drives, as well as all multi-actuator SATA drives appear as a single device to the I/O subsystem. Yet they address commands to different actuators internally, as a function of Logical Block Addressing (LBAs). A given sector is reachable by only one of the actuators. For example, Seagate’s Serial Advanced Technology Attachment (SATA) version contains two actuators and maps the lower half of the SATA LBA space to the lower actuator and the upper half to the upper actuator.

Evidently, to fully utilize actuators, no actuator must be left idle or underutilized while there is pending I/O for it. To reach this goal, the block layer must somehow control the load of each actuator individually. This series enriches BFQ with such a per-actuator control, as a first step. Then it also adds a simple mechanism for guaranteeing that actuators with pending I/O are never left idle."

There is also this Linaro blog post that covers the BFQ work on multi-actuator drives.

Linaro graph
The data is showing some nice gains with the BFQ patches that are now mainlined.

This support was merged as part of the block changes for Linux 6.3. Also included with that code is various NVMe updates, continued work towards unifying the DRBD out-of-tree and mainline drives, and a variety of fixes.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week