正在開發中的Linux 5.10,看看有哪些大幅改進
01. 化XFS系統系統 修復“Year 2038”問題
在對 Btrfs 進行顯著優化外,正在開發中的 Linux Kernel 5.10 還對 XFS 文件系統進行了大幅的改進。在 Linux 5.10 中,XFS 文件系統支持了兩項新的 on-disk meta-data 功能,其中包括
1.分配組中現在會記錄 inode btrees 的大小。
這樣做是為了增加冗余檢查,并允許更快的安裝時間。
2.現在最長支持至 2486 的時間戳。
這個“大時間戳”功能是對其時間戳和 inode 編碼功能進行重構,以將時間戳作為 64 位納秒計數器進行處理,并通過移位來增加有效大小。
現在,這使XFS可以很好地克服2038年的問題(在那里,以秒為單位存儲自1970年以來的時間將不再適合有符號的32位整數,因此無法環繞)到現在的2486年。
使用以下命令創建新的XFS文件系統:啟用bigtime允許的時間戳范圍是1901年12月至2486年7月,而不是1901年12月至2038年1月。為了保持向后兼容,默認情況下當前未啟用big timestamps功能。
除了磁盤上的元數據更改外,Linux 5.10的XFS還解決了在某些情況下,同步寫入實際上不會刷新到磁盤和其他修復程序的問題。可通過此拉取請求找到Linux 5.10的初始XFS更改。預計在Linux 5.10合并窗口的未來幾天中,將具有XFS可伸縮性改進和其他更改的輔助請求。
02. 將繼續完善對英特爾Rocket Lake平臺的支持
在 Linux Kernel 5.9 中已經初步支持明年 Rocket Lake 桌面平臺的第 12 代圖形處理器,并對像 RAPL 支持和其他 PCI ID 擴展提供早期的實驗支持。而后續的支持工作會在 Linux Kernel 5.10 中陸續推進和完善。
libata 驅動庫已經著手添加 Rocket Lake PCH-H RAID PCI IDs。此外 Linux Kernel 5.10 的 platform-drivers-x86 開發工作中,已經將 Rocket Lake 的支持添加到 intel_pmc_core 驅動中。
Linux Kernel 5.9 中的 DRM 代碼為現有的 Gen12 代碼構建了對 Rocket Lake 的初步支持,而在 Linux 5.10 中進行了必要的代碼改進,從而能夠正確地顯示硬件。此外其他一些 Rocket Lake PCI ID 正在添加中。
由于在CPU方面的Rocket Lake主要是被Willow Cove移植到14納米制程,并具有Gen12 Xe圖形,因此在大多數情況下,Rocket Lake Linux的實現是相當簡單的,在大多數領域中,它們只是在構建新的PCI ID脫離了現有的Tiger Lake代碼路徑和圖形方面的Gen12 / Xe,并進行了一些其他驅動程序級更改。
英特爾已經表示,他們將在2021年第一季度末宣布 Rocket Lake。雖然完善的支持可能需要等到 5.11,但是在 5.10 中提供部分支持依然是個好消息。
03. 新的NTFS Linux內核驅動修訂了九次 仍在審核中
在8月份的時候,Paragon軟件公司高調宣布,他們的NTFS讀寫驅動在作為商業驅動提供給那些需要在Linux上對微軟文件系統進行可靠支持的用戶多年后,將在Linux內核中進行主線開發。兩個月后,他們已經對這個驅動進行了第九次修訂,以爭取將其納入內核主線。
在上游開發者提出一些最初的意見之后,Paragon很快就更新了他們的 "NTFS3"驅動補丁。他們繼續完善代碼,增加了額外的功能,修復了各種代碼問題,改進了代碼格式,處理了重新掛載文件系統等行為,并修復了壓縮文件操作中的問題。
周五,他們發出了第九個版本的驅動,增加了額外的代碼改進,最新的變化可以在內核郵件列表中找到。
由于目前的內核NTFS驅動主要集中在只支持讀的狀態,根據進度預估,這個新驅動不會登陸Linux 5.10,但合并操作大概會在明年出現。
這是因Linux 5.10合并窗口已經過了一半了,而這個NTFS3驅動的目標是取代現有的驅動,這使得最初的主線變得更加復雜,因為需要允許兩個驅動都進入內核樹一段時間,并且只允許一次編譯一個,并且上游維護者更愿意在合并這個新驅動時選擇多等等,直到它可以立即取代現有的NTFS支持代碼。
不管怎么說,至少這個Paragon的貢獻看起來已經很成熟了,為的是在2021年有更好的Linux NTFS支持。
04. Linux 5.10帶來USB4支持
今年早些時候,Linux 5.6通過利用英特爾現有的Thunderbolt內核支持帶來了最初形態的USB4支持,而更新的USB規范正是基于此。隨后的內核繼續成熟USB4的實現,這一點在Linux 5.10中得到了延續。
作為Linux 5.10的USB/PHY/Thunderbolt變化的一部分,包括更多的USB 4更新,主要是這個周期修復代碼中的一些低級問題,這項工作繼續由英特爾開源工程師主導。
內核圍繞Tiger Lake也繼續進行了很多優化Thunderbolt的工作,包括CM模式下的運行時電源管理、優化強電邏輯、用于Thunderbolt調試的DebugFS接口等修復和改進。
早在Linux 5.9開發期間,最初的Tiger Lake Thunderbolt / USB4代碼就已經落地,并在后續的內核中進行了完善。
其它部分還包括對USB Type-C更新和PHY驅動程序的小工作,另一個值得注意的補充是對英特爾Lightning Mountain SoC的USB 3 PHY支持。
05. 眾多網絡通信方面的改進正來到Linux 5.10
與大多數內核周期一樣,Linux 5.10 有大量的網絡改進,從擴大的設備驅動覆蓋范圍到新的核心網絡特性,以及繼續推進 (e)BPF 等,這段時間的工作尤其繁忙。在Linux 5.10中,這些工作包括:
- 支持BPF程序與內核一起運送,并在啟動時通過用戶模式驅動機制提前加載它們。現在還支持可睡眠的 BPF 程序和其他 BPF 增強功能。
- 內核現在允許超過 255 個 IPv4 多播接口。
- 繼續改進多路徑 TCP (MPTCP) 代碼。
- 對Intel IGB驅動程序的XDP支持。
- Ath11k WiFi驅動現在支持QCA6390和IPQ6018芯片組。
- Mellanox網卡對于不需要太多卸載的數據包可以看到高達20%的性能提升。THis優化可允許多個數據包共享一個描述符條目。
- 一個新的BPF助手可以幫助改善TCP背壓,并幫助限制堆棧遍歷。在一個開發者的測試中,在他的配置中,容器和主機之間的虛擬以太網驅動程序的TCP流速從10 Gbps左右提高到15 Gbps。
- 支持Mediatek MT76芯片的Wi-Fi改進。
- 迎來對Broadcom 200G芯片的以太網支持。
需要了解更多關于Linux 5.10網絡變化的細節,您可以關注這個Git合并(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9ff9b0d392ea08090cd1780fb196f36dbb586529)。