核心
經過兩個月的開發, Linus Torvalds宣布了新的Linux內核版本5.10的發布,其版本具有長期支持期限的分支機構狀態,其更新將至少發布兩年。
值得注意的變化包括 此新版本包括與MemTag保護機制的兼容性 對於ARM64系統,“ nosymfollow”安裝選項, 重大的Ext4優化, XFS 2038修復,新的process_madvise系統調用,通過CPU寄存器加密改進了對AMD SEV的支持, 暫停BPF程序的能力。
新版本 從17470個開發人員處收到2062個修復程序, 補丁程序大小:64MB(更改了受影響的15101個文件,添加了891932行代碼,刪除了619716行)。 約佔總數的42% 5.10中引入的更改與設備驅動程序有關,大約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元數據更改以解決數據類型溢出問題 32年的2038位time_t。在計算磁盤配額時間的代碼中添加了類似的更改,將計時器溢出移動到2468年。 不建議使用XFS V4格式,建議用戶將FS更新為V5格式,但是更新時間不多,因為對V4的支持將一直持續到2030年。XFS還更改了inode輸入btree的大小,從而提供了更多的冗餘性檢查和更快的安裝時間。
對於已實現的FUSE子系統,DAX操作支持直接訪問文件系統,而無需使用應用程序級鎖定設備來繞過頁面緩存,該應用程序級鎖定設備用於避免雙重緩存,從而避免了對來賓系統,目錄和文件的聯合訪問。 Virtiofs還增加了對在主機系統上具有不同安裝點的分區的單獨安裝的支持。
文件系統 F2FS添加了新的垃圾收集模式 ATGC(年齡閾值垃圾收集),對分區NVMe設備的改進支持以及對壓縮數據的更快解壓縮。
在F2FS和Ext4中,重新設計了使用文件名的方式,而沒有考慮大寫字母。 已經決定通過將相關代碼移至公共庫來統一不區分大小寫的文件名的實現。
另一個重要的變化是 異步I / O接口io_uring,增加了創建受限環的能力 可以與不受信任的進程安全共享。 此功能允許基本應用程序選擇性地僅限制對其描述符的訪問 通過io_uring在第三方應用程序中使用的單個文件的數量,以及PIDFD_NONBLOCK標誌已添加到pidfd_open()系統調用中,以創建非鎖定文件描述符(類似於pidfd的O_NONBLOCK)。