Linux 5.12 的 I/O 相關改動
正在開發(fā)中的 Linux 5.12 合并了塊子系統和相關存儲更改的代碼,其中值得注意的包括 io_uring 、塊和驅動的改動。
io_uring 改動的重點是請求回收和 task_work 優(yōu)化,這些改動可以在大部分是內聯的工作中提高 10-20% 的速度。 最初完成這項工作是為了將 io_uring 置于 memcg 下,這增加了相當大的開銷,但這是值得的。另一個亮點是 VFS 中的 LOOKUP_CACHED 更改,并為其添加 io_uring 支持,這大大加快了文件打開的快速路徑。
而在塊的改動中,刪除的代碼多于添加的代碼(主要由于 Christoph 堅持不懈地追求技術債務的清理),這些改動包括 BFQ 優(yōu)化、blk-mq 調度器優(yōu)化、分區(qū)寫入粒度支持、將 bdev 指針存儲在 bio 而不是 gendisk 和 partno 中、 bvec 分配優(yōu)化等。
在塊驅動程序的改動中,大部分是 NVMe 驅動程序的改動,包括避免 nvme-hwmon 中的 devm 分配不能很好地交互、修復 no-data 命令的 nvme-tcp 崩潰、 切換 nvmet-fc、assoc_list 以使用 RCU 保護等。此外,還有針對 MD 代碼的 RAID5 修復、BCache 修復,甚至包括久違的軟盤驅動程序更新。
按照計劃,在 Linux Kernel 5.11 正式發(fā)布后,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