QEMU 7.1 改進了 Linux 中的內存傳輸
QEMU 7.1 版本正式發布,該版本針對多種模擬器進行了一系列改進,其中最顯著的是針對 ARM 和 RISC-V 架構的最佳化,以及對 Linux 系統記憶體傳輸的改進。為了開發 7.1版本,238 位開發者進行了超過 2800 項修改。
對於那些不熟悉 QEMU 的人來說,您應該知道它允許您在具有完全不同架構的系統上運行為一個硬件平台構建的程序,例如在 x86 兼容的 PC 上運行 ARM 應用程序。
在 QEMU 的虛擬化模式下,由於指令直接在 CPU 上執行,並且使用了 Xen 管理程序或 KVM 模塊,因此在隔離環境中代碼執行的性能與硬件系統相似。
QEMU 7.1的主要新功能
在這個為 Linux 推出的新版本中,實作了零拷貝發送選項,該選項允許在即時遷移期間組織記憶體頁傳輸,而無需中間緩衝。
此外,QMP(QEMU 機器協定)新增了使用 `block-export-add` 指令匯出具有「髒」狀態頁面資料的 NBD 映像的功能。同時,也新增了 `query-stats` 和 `query-stats-schema` 命令,用於查詢來自各個 QEMU 子系統的統計資料。
QEMU 新版本另一個顯著變化是,客戶端代理程式提高了與 Solaris 平台的兼容性,並新增了「guest-get-diskstats」和「guest-get-cpustats」命令,用於顯示磁碟和 CPU 狀態。 「guest-get-disks」指令新增了 NVMe SMART 訊息,而「guest-get-fsinfo」指令新增了 NVMe 總線類型資訊。
此外,新增了一個 LoongArch 模擬器,以支援 64 位元版本的 LoongArch 指令集架構 (LA64)。此模擬器支援 Loongson 3 5000 處理器和 Loongson 7A1000 北橋晶片。
此外,值得一提的是,ARM 模擬器實現了新型模擬機器:Aspeed AST1030 SoC、Qualcomm 和 AST2600/AST1030 (fby35),此外還增加了對 Cortex-A76 和 Neoverse-N1 CPU 的模擬支持,以及對 SME(可擴展矩陣擴展)、RAS(可靠性、可用性、可維護性)處理器擴展的支持,以及用於阻止 CPU中推測性指令執行期間內部快取洩漏的命令。
雖然RISC-V 架構模擬器增加了對規範 1.12.0 中定義的新指令集擴展 (ISA) 的支持,以及對 Sdtrig 擴展的額外支持和對向量指令的改進支持。
新版本的其他顯著變化包括:
- 改進的調試選項。
- 為“virt”模擬機器添加了可信平台模塊(TPM)支持,並為“OpenTitan”機器添加了 Ibex SPI 支持。
- KVM 的 x86 模擬器增加了對 LBR(最後一個分支記錄)跟踪機制虛擬化的支持。
- 為“virt”機器實現了 GICv4 中斷處理程序仿真。
- HPPA 架構仿真器提供基於 SeaBIOS v6 的新固件,支持在啟動菜單中使用 PS/2 鍵盤。
- 改進的串行端口仿真。
- 添加了額外的 STI 控制台字體。
- Nios2 板(-machine 10m50-ghrd)的 MIPS 架構仿真器實現了向量中斷控制器仿真和影子寄存器集。
- 改進的異常處理。
- 增加了在“or4k-sim”機器的 OpenRISC 架構仿真器中使用多達 16550 個 1A UART 設備的能力。
- 390x 架構仿真器支持 Vector-Enhancements Facility 2 (VEF 2) 擴展。 s390-ccw BIOS 能夠從扇區大小不是 512 字節的磁盤引導。
- 向 Xtensa 架構仿真器添加了對 lx106 內核和緩存測試目標代碼的支持。
最後,如果您有興趣了解更多關於QEMU 7.1 新版本中的變更和新功能,您可以在以下連結中找到詳細資訊。