Linux 5.12 的 I/O 相關(guān)改動(dòng)
正在開發(fā)中的 Linux 5.12 合并了塊子系統(tǒng)和相關(guān)存儲(chǔ)更改的代碼,其中值得注意的包括 io_uring 、塊和驅(qū)動(dòng)的改動(dòng)。
io_uring 改動(dòng)的重點(diǎn)是請(qǐng)求回收和 task_work 優(yōu)化,這些改動(dòng)可以在大部分是內(nèi)聯(lián)的工作中提高 10-20% 的速度。 最初完成這項(xiàng)工作是為了將 io_uring 置于 memcg 下,這增加了相當(dāng)大的開銷,但這是值得的。另一個(gè)亮點(diǎn)是 VFS 中的 LOOKUP_CACHED 更改,并為其添加 io_uring 支持,這大大加快了文件打開的快速路徑。
而在塊的改動(dòng)中,刪除的代碼多于添加的代碼(主要由于 Christoph 堅(jiān)持不懈地追求技術(shù)債務(wù)的清理),這些改動(dòng)包括 BFQ 優(yōu)化、blk-mq 調(diào)度器優(yōu)化、分區(qū)寫入粒度支持、將 bdev 指針存儲(chǔ)在 bio 而不是 gendisk 和 partno 中、 bvec 分配優(yōu)化等。
在塊驅(qū)動(dòng)程序的改動(dòng)中,大部分是 NVMe 驅(qū)動(dòng)程序的改動(dòng),包括避免 nvme-hwmon 中的 devm 分配不能很好地交互、修復(fù) no-data 命令的 nvme-tcp 崩潰、 切換 nvmet-fc、assoc_list 以使用 RCU 保護(hù)等。此外,還有針對(duì) MD 代碼的 RAID5 修復(fù)、BCache 修復(fù),甚至包括久違的軟盤驅(qū)動(dòng)程序更新。
按照計(jì)劃,在 Linux Kernel 5.11 正式發(fā)布后,5.12 便會(huì)進(jìn)入合并窗口階段。然而由于上周的美國嚴(yán)寒天氣,實(shí)際上直到昨日才有 Linux 5.12 代碼被推送到 Linux Git 倉庫中,不過接下來, Linux 5.12 的合并窗口應(yīng)該會(huì)進(jìn)入正軌。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Linux 5.12 的 I/O 相關(guān)改動(dòng)
本文地址:https://www.oschina.net/news/130619/linux-5-12-io-changes