Linux 內核 6.14 rc3 發布:新特性與改進一覽!
Linus Torvalds 近日發布了 Linux 內核 6.14-rc3 版本,這是即將發布的 Linux 6.14 穩定版的最新候選版本。KVM(基于內核的虛擬機)維護者 Paolo Bonzini 也提交了一系列針對該版本的修復補丁,并已被 Linus Torvalds 合并。這些更新不僅修復了包括 ARM 和 x86 在內的多個架構的關鍵問題,還提升了 KVM 的功能和穩定性。
此外,本次發布還引入了一項重要新特性——Faux Bus,旨在簡化設備驅動的開發,并包含了一系列關鍵修復。
Faux Bus:簡化設備驅動開發的新框架
Faux Bus 是一個輕量級框架,專為不需要完整平臺設備驅動復雜性的簡單設備和驅動設計。它提供了一個極簡的 API,僅包含兩個函數:一個用于創建設備,另一個用于移除設備。
該框架特別適用于小型或“虛擬”設備,能夠簡化其生命周期管理,同時保持代碼的簡潔性。Faux Bus 還支持 C 和 Rust 語言綁定,進一步提高了開發者的采用率。
KVM 更新亮點解讀
(1) ARM 架構更新
- 向量寄存器處理優化:對浮點運算(FP)、單指令多數據流(SIMD)和可擴展向量擴展(SVE)管理進行了全面改進,修復了多個影響實際部署的 Bug。
- 初始化競爭條件修復:解決了虛擬 CPU(vCPU)與虛擬通用中斷控制器(vGIC)初始化之間的競爭條件問題。
- 非 VHE 模式下計時器仿真改進:調整了非 VHE(虛擬化主機擴展)模式下計時器仿真時內核虛擬地址(VA)的使用。
- Protected KVM(pKVM)增強:包括更好的錯誤處理和內存對齊修復。
(2) x86 架構更新
- AMD 安全嵌套分頁(SNP)支持修復:確保在 KVM 模塊內置時正確初始化平臺安全處理器(PSP)模塊。
- Hyper-V 相關改進:當本地高級可編程中斷控制器(APIC)未被 KVM 仿真時,拒絕不受支持的 SEND_IPI 超調用。
- Bug 修復:解決了 Guest 轉換期間 DR6 寄存器值為 stale 的問題,并確保對二級 Guest 的嵌套頁表進行正確標記。
(3) 通用改進
- 代碼優化:進行了多項架構清理,包括更好的錯誤處理和代碼路徑簡化。
- 自測試擴展:KVM 自測試覆蓋了更多場景,如 Hyper-V CPUID 功能和嵌套虛擬化邊緣情況。
本次補丁系列涉及 30 個文件的更改,新增 420 行代碼,刪除了 427 行代碼。這些更新在 Bug 修復、性能優化和代碼簡化之間取得了平衡。
開發者視角
Bonzini 指出,由于包含大量 ARM 更新,本次提交相對較大,但刪除的代碼比新增的更多,這體現了對 KVM 代碼庫持續進行的精簡工作。Mark Rutland 在 ARM 向量處理方面的貢獻尤為突出,其復雜性和對穩定性的影響得到了特別認可。
隨著 Linux 內核 6.14 進入候選發布階段,進一步的測試將有助于優化這些更新,直至最終版本發布。開發者被鼓勵在多樣化環境中測試這些更改,并報告任何問題。
此次 KVM 更新再次凸顯了 Linux 社區在維護跨架構穩健虛擬化支持方面的協作重要性。