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