正在开发中的 Linux 5.12 合并了块子系统和相关存储更改的代码,其中值得注意的包括 io_uring 、块和驱动的改动。
io_uring 改动的重点是请求回收和 task_work 优化,这些改动可以在大部分是内联的工作中提高 10-20% 的速度。 最初完成这项工作是为了将 io_uring 置于 memcg 下,这增加了相当大的开销,但这是值得的。另一个亮点是 VFS 中的 LOOKUP_CACHED 更改,并为其添加 io_uring 支持,这大大加快了文件打开的快速路径。
而在块的改动中,删除的代码多于添加的代码(主要由于 Christoph 坚持不懈地追求技术债务的清理),这些改动包括 BFQ 优化、blk-mq 调度器优化、分区写入粒度支持、将 bdev 指针存储在 bio 而不是 gendisk 和 partno 中、 bvec 分配优化等。
在块驱动程序的改动中,大部分是 NVMe 驱动程序的改动,包括避免 nvme-hwmon 中的 devm 分配不能很好地交互、修复 no-data 命令的 nvme-tcp 崩溃、 切换 nvmet-fc、assoc_list 以使用 RCU 保护等。此外,还有针对 MD 代码的 RAID5 修复、BCache 修复,甚至包括久违的软盘驱动程序更新。
按照计划,在 Linux Kernel 5.11 正式发布后,5.12 便会进入合并窗口阶段。然而由于上周的美国严寒天气,实际上直到昨日才有 Linux 5.12 代码被推送到 Linux Git 仓库中,不过接下来, Linux 5.12 的合并窗口应该会进入正轨。
本文转自OSCHINA
本文标题:Linux 5.12 的 I/O 相关改动
本文地址:https://www.oschina.net/news/130619/linux-5-12-io-changes