Linux 5.10具有重要的Ext4優化,改進的AMD SEV兼容性等

核心

經過兩個月的開發,Linus Torvalds 宣布發布新的 Linux 核心版本 5.10,該版本屬於長期支援分支,其更新將至少持續兩年。

此新版本的主要變更包括支援ARM64 系統的 MemTag 保護機制、「nosymfollow」掛載選項、顯著的 Ext4 最佳化、 XFS 2038 修復、新的 process_madvise 系統呼叫、透過 CPU 暫存器加密改進的 AMD SEV 支援以及暫停 BPF 程式的功能。

新版本共收到來自 2062 位開發者的 17470 項修復;補丁大小:64 MB(更改影響了 15101 個文件,新增 891932 行程式碼,並刪除了 619716 行程式碼)。 5.10版本中引入的所有變更中,約 42% 與裝置驅動程式相關,約 16% 與更新特定於硬體架構的程式碼相關,13% 與網路協定堆疊相關,3% 與檔案系統相關,3% 與核心內部子系統相關。

Linux 5.10中的主要新聞

主要變化之一是,ext4 檔案系統新增了 fast_commit 模式。此模式顯著降低了許多檔案操作的延遲,因為在執行 fsync() 呼叫時,元資料會更快地刷新到磁碟。通常情況下,執行 fsync() 會同步一組冗餘的元資料。而在 fast_commit 模式下,只有用於在系統崩潰時恢復檔案系統的元資料才會被傳輸到註冊表,這不僅加快了 fsync() 呼叫速度,還提高了主動操作元資料的操作的效能。

當為 Btrfs包括與fsync()操作相關的重要性能優化。 與4個客戶端一起運行dbench基準測試時,日誌互斥鎖爭用的減少導致性能提高14%,延遲減少32%。 消除了對鏈接和名稱更改的其他提交,帶寬增加了6%,延遲減少了30%。 將fsync限制為僅等待重寫可將性能提高10-40%。
另外, Btrfs實現的直接I / O(直接io)已移至iomap框架。 

XFS 新增了 inode 元資料更改,以解決2038 年 32 位元 time_t 資料類型的溢位問題。類似的變更也添加到了磁碟配額時間計算程式碼中,將時間計數器溢位的年份提前到了 2468 年。 XFS V4 格式已被宣布過時;建議用戶升級到 V5 格式,但由於 V4 的支援將持續到 2030 年,因此升級時間非常充裕。 XFS 還調整了 btree inode 條目的大小,從而實現了更多的冗餘檢查並加快了掛載速度。

對於已實現的FUSE子系統,DAX操作支持直接訪問文件系統,而無需使用應用程序級鎖定設備來繞過頁面緩存,該應用程序級鎖定設備用於避免雙重緩存,從而避免了對來賓系統,目錄和文件的聯合訪問。 Virtiofs還增加了對在主機系統上具有不同安裝點的分區的單獨安裝的支持。

F2FS 檔案系統新增了 ATGC(年齡閾值垃圾回收)垃圾回收模式,改善了對分區 NVMe 設備的支持,並加快了壓縮資料的解壓縮速度。

在 F2FS 和 Ext4 中,處理不區分大小寫的檔案名稱的方式已經重新設計;決定透過將相關程式碼移至一個公共庫來統一不區分大小寫的檔案名稱的實作。

另一項重要變更在於非同步 I/O 介面 io_uring,它新增了建立受限環的功能,這些受限環可以安全地與不受信任的進程共用。此功能允許基礎應用程式透過 io_uring 選擇性地限制第三方應用程式對其各個檔案描述符的存取。此外,pidfd_open() 系統呼叫中新增了 PIDFD_NONBLOCK 標誌,用於建立非鎖定檔案描述子(類似於 pidfd 的 O_NONBLOCK)。


在 Google 中將其新增為首選來源