QEMU 10.0 于 2025 年 4 月 23 日发布。此版本包含 2800 多个提交,来自 211 位作者。以下是一些主要的更新内容:
- CPU 和主板支持增强
- x86 架构:优化了字符串操作指令,显著缩短启动时间。新增了 Intel Clearwater Forest 和 Sierra Forest - v2 模型,与 Xeon 路线图保持同步。
- ARM 架构:添加了对 feat_afp、feat_rpres 和 feat_xs 等 CPU 架构特性的支持,支持安全的 el2 物理和虚拟定时器,支持 stellaris 开发板模拟两个 i2c 控制器,支持 npcm845 评估板和 i.mx 8m plus evk 开发板,为 “virt” 开发板添加了 “high mem - mmio - size” 属性,用于配置更大的 pcie mmio 区域。默认指针认证模拟器采用 QEMU 专有算法,速度比标准 QARMA5 快数个数量级,用户可通过设置切换回标准模式。
- RISC - V 架构:支持 Svukte、ssstateen 等多种新的 ISA / 扩展,添加了 Tenstorrent Ascalon CPU、Xiangshan Nanhu RV64 CPU 以及 Microblaze - V 通用主板。
- s390x 架构:添加了第 17 代大型机 CPU 的特性定义和 CPU 模型,支持 s390x 上的 virtio - mem,支持绕过 PCI 设备的 IOMMU 以提高性能,改进了 ppno 和 mcv 指令的 CPU 仿真。
- LoongArch 架构:基于 LoongArch 的 KVM QEMU 现在支持 CPU 热插拔、半虚拟化 IPI、steal time 等功能。引入了新的 “cpr - transfer” 迁移模式以支持实时更新。
- I/O 和存储改进:VirtIO SCSI 设备获得了 “真正的” 多队列支持,可增强 I/O 可扩展性。qemu - nbd 新增握手超时选项,避免集成测试长时间挂起,并修复了守护进程退出卡顿问题。Linux AIO 和 IO_uring 后端现在可以使用 “RWF_DSYNC” 标志进行 FUA 写入请求,提高已禁用写入缓存的客户磁盘性能。
- 图形和显示优化:图形代码添加了新的 “apple - gfx - pci” 和 “apple - gfx - mmio” 设备,使用 macOS 主机的半虚拟化图形框架为 macOS 客户机提供加速图形,前者适用于 x86_64 客户机,后者适用于 AArch64 macOS。VFIO 代码改进了所有 Gen11 和 Gen12 硬件的 Intel IGD 图形设备直通功能,还增加了对旧版 ATI X550 GPU 的支持。
- 其他方面:显著改进和全面检查了 QEMU 机器协议的文档,使其更清晰、更有条理,所有命令、事件和类型在生成的文档中都可以通过可点击的链接进行交叉引用。继续致力于在 QEMU 中更多地使用 Rust 编程语言
QEMU 10.0 在模拟性能方面有多方面的提升:
CPU 相关性能提升
- x86 架构优化
- 字符串操作指令优化:QEMU 10.0 对 x86 架构的字符串操作指令进行了优化,这一优化显著缩短了系统的启动时间。字符串操作指令在系统启动过程中使用频繁,优化后指令执行效率提高,使得整个启动流程更加顺畅,减少了不必要的等待时间。
- 新 CPU 模型支持:新增了 Intel Clearwater Forest 和 Sierra Forest - v2 模型,并且与 Xeon 路线图保持同步。新的 CPU 模型能够更准确地模拟这些先进处理器的特性和性能,在模拟基于这些处理器的系统时,可以提供更接近真实硬件的性能表现,为开发者和测试人员提供更准确的模拟环境。
- ARM 架构优化
- 指针认证模拟器优化:默认指针认证模拟器采用了 QEMU 专有算法,速度比标准 QARMA5 快数个数量级。指针认证是 ARM 架构中保障系统安全的重要机制,在模拟过程中,快速的指针认证模拟算法可以减少认证过程所消耗的时间,提高整体模拟性能。同时,用户还可以通过设置切换回标准模式,以满足不同的模拟需求。
- RISC - V 架构及其他架构新特性支持
- 对 RISC - V 架构支持了 Svukte、ssstateen 等多种新的 ISA / 扩展,添加了新的 CPU 和主板模型。这些新特性和模型的支持使得 QEMU 10.0 能够更准确地模拟 RISC - V 架构的系统,对于基于 RISC - V 架构的开发和测试工作,能够提供更高效、更准确的模拟环境,从而提升整体性能。
- s390x 架构改进了 ppno 和 mcv 指令的 CPU 仿真,支持绕过 PCI 设备的 IOMMU 以提高性能;LoongArch 架构基于 LoongArch 的 KVM QEMU 支持 CPU 热插拔、半虚拟化 IPI、steal time 等功能,引入新的 “cpr - transfer” 迁移模式以支持实时更新,这些都有助于提升对应架构系统的模拟性能。
I/O 和存储性能提升
- VirtIO SCSI 设备多队列支持:VirtIO SCSI 设备获得了 “真正的” 多队列支持,这一改进增强了 I/O 可扩展性。在现代系统中,大量的 I/O 请求需要高效处理,多队列支持可以让多个 I/O 请求并行处理,减少 I/O 操作的等待时间,提高存储设备的读写性能,从而提升整个模拟系统的性能。
- qemu - nbd 改进:qemu - nbd 新增握手超时选项,避免集成测试长时间挂起,并修复了守护进程退出卡顿问题。在存储设备的网络块设备(NBD)模拟中,这些改进可以提高设备的响应速度和稳定性,减少因握手超时或守护进程问题导致的性能下降。
- Linux AIO 和 IO_uring 后端优化:Linux AIO 和 IO_uring 后端现在可以使用 “RWF_DSYNC” 标志进行 FUA 写入请求,提高了已禁用写入缓存的客户磁盘性能。对于需要进行大量磁盘写入操作的模拟场景,这一优化可以减少磁盘写入的延迟,提高数据写入的效率。
图形和显示性能提升
- 苹果图形设备支持:图形代码添加了新的 “apple - gfx - pci” 和 “apple - gfx - mmio” 设备,使用 macOS 主机的半虚拟化图形框架为 macOS 客户机提供加速图形。在模拟 macOS 系统时,这种半虚拟化的图形加速方式可以显著提高图形处理性能,使得图形界面的渲染更加流畅,减少图形显示的延迟,提升用户体验。
- Intel IGD 图形设备直通改进:VFIO 代码改进了所有 Gen11 和 Gen12 硬件的 Intel IGD 图形设备直通功能,还增加了对旧版 ATI X550 GPU 的支持。图形设备直通功能允许虚拟机直接访问物理显卡,提高图形处理性能。QEMU 10.0 对 Intel IGD 图形设备直通功能的改进以及对旧版 GPU 的支持,扩大了图形设备的兼容性,为不同用户提供了更高效的图形模拟解决方案。