Many Block Improvements Land In Linux 5.16 - Multi-Actuator Hard Drive Support
Aside from all of the I/O optimizations pursued by Jens Axboe and others in now being able to hit ~10M IOPS per-core on the maintainer's test system, some of the other block work for Linux 5.16 includes:
The central set of block updates include MQ-Deadline accounting improvements, reworking poll support to be bio-based to work toward allowing polling for bio-based drivers, block layer core support for multi-actuator drives, blk-crypto improvements, plugging improvements, concurrent queue quiesce support, and other improvements.
The multi-actuator support was contributed by Western Digital engineer Damien Le Moal. The kernel-side change needed is for independent access ranges support within the blck code.
This patch implements support for exposing a block device independent access ranges to the user through sysfs to allow optimizing device accesses to increase performance.
To describe the set of independent sector ranges of a device (actuators of a multi-actuator HDDs or table entries of a dm-linear device), The type struct blk_independent_access_ranges is introduced. This structure describes the sector ranges using an array of struct blk_independent_access_range structures. This range structure defines the start sector and number of sectors of the access range. The ranges in the array cannot overlap and must contain all sectors within the device capacity.
The ranges are exposed via /sys/block/sd*/queue/independent_access_ranges/. Multi-actuator hard drives are a new and growing trend such as with the Seagate MACH.2 technology for two actuators within a hard drive for greater parallelism. Multi-actuator drives are of growing interest to hyperscalers and other organizations with needs for dense but performant hard drive storage. Western Digital, Seagate, and other vendors are expected to release more multi-actuator drives over the coming year.
Following those block updates, SCSI multi-actuator support was merged as part of a separate pull with this independent access ranges handling.
Learn more about multi-actuator drives via the Seagate blog.
The block driver updates bring NVMe improvements and other driver churn.
IO_uring changes bring a hybrid async mode, support for batched issue on block, IPOLL efficiency improvements, and the other performance-related work making for an exciting past number of weeks.
Even the CDROM code saw some updates this cycle. New to the CD-ROM code in Linux 5.16 is a new "CDROM_TIMED_MESA_CHANGE" interface for improved media change detection. This allows finding out whether the disc has been changed since a user-supplied time and returning the time of the last disc change.