文章摘要
QEMU 10.1版本更新中,Arm架构新增了多个CPU特性模拟,如FEATSME2、FEATSME2p1等,并弃用了'highbank'和'midway'板模型,新增了'max78000fthr'板模型。此外,Arm 'virt'板现在支持CXL、KVM嵌套虚拟化、ACPI PCI热插拔等功能,并增加了对AST2700 EVB机器的固件支持。
文章总结
QEMU 10.1 版本更新日志
发布日期:2025年8月21日
系统模拟
移除的功能和不兼容的变更
详细内容请参考“移除的功能”页面,了解建议的替代功能。
新弃用的选项和功能
更多关于弃用功能及其替代方案的详细信息,请参阅QEMU系统模拟用户指南中的“弃用功能”章节。
Arm架构更新
* 新增CPU架构特性模拟:FEATSME2、FEATSME2p1、FEATSMEB16B16、FEATSMEF16F16、FEATSVEB16B16、FEAT_SVE2p1。
* 弃用'highbank'和'midway'板模型。
* 新增板模型'max78000fthr'(Analog Devices max78000 Cortex-M4板)。
* Arm 'virt'板现在支持CXL。
* 'virt'板现在支持通过KVM嵌套虚拟化,需使用较新的主机内核。
* 'virt'板现在支持ACPI PCI热插拔和PCI设备的acpi-index,可通过'-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'启用。
* 新增对AST2700 EVB机器的固件支持。
* 引入新的多SoC 'ast2700fc'机器。
* 引入新的Meta 'catalina-bmc'机器。
* 引入新的NVIDIA 'gb200-bmc'机器。
* 弃用'ast2700a0-evb'机器。
LoongArch架构更新
* 新增内核irqchip支持。
* 修复大端支持与MCFG表的问题。
* 修复KVM上smp cpu < smp maxcpus时启动失败的问题。
* 通知guest关于kvm的信息。
* 新增fcond检查。
* 修复[X]VLDI错误引发异常的问题。
RISC-V架构更新
* 新增对RIMT的支持。
* 改进Microchip Polarfire SoC的定制化。
* 新增昆明湖CPU和平台支持。
* 更新ACPI表中的FADT和MADT版本。
* 修复PMP RLB绕过规则权限的问题。
* 修复Smepmp MML模式下对pmpcfg写入的检查。
* 修复大端系统上的无限翻译循环。
* 修复writemisa与对齐的nextpc问题。
* KVM CSR修复。
* sstc扩展修复。
* 修复zama16b在isaedataarr中的顺序。
* 配置文件处理修复。
* 扩展PMP区域至64个。
* 添加缺失的命名特性。
* 修复Translation-response寄存器的PPN字段。
* 修复fcvt.s.bf16的NaN检查。
* 避免异步xmit函数的无限延迟。
* 修复ldfftrans的缺失退出TB流程。
* 修复aia配置为aplic-imsic时的迁移失败。
* 修复MEPC/SEPC的IALIGN位掩码。
* 修复PMP范围在零时的回绕问题。
* 修复源寄存器不活跃时的目标寄存器读取。
* 添加riscvhwprobe到linux-user strace列表。
* 修复VU访问supervisor CSR时的异常类型。
* 限制mideleg/medeleg/medelegh对S-mode harts的访问。
* 限制midelegh对S-mode harts的访问。
x86架构更新
* 当guest CPU的厂商未定义时,忽略厂商特定的CPUID位。
* KVM支持TDX(需Linux 6.16或更新版本)。
* 支持从IGVM文件启动TDX或SEV-SNP虚拟机。
* TCG支持TSS陷阱位。
设备模拟与分配
* ARM 'virt'机器现在支持ACPI PCI热插拔和PCI设备的acpi-index,可通过'-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'启用。
* 初始支持CoCo guest-memfd内存后端。
* 更新IGD直通文档。
* 修复pseries机器上的L2崩溃。
* 自动启用IGD直通的OpRegion。
* 修复IGD直通中的OpRegion检测。
* 支持报告vfio-ap配置变更。
* 支持vfio-user客户端设备。
* 新增实时更新(CPR)支持。
* 支持aarch64上的VFIO迁移与multifd。
* 引入属性以覆盖设备PCI类代码。
* 支持TDX和SNP虚拟机上的VFIO。
网络设备
* passt网络后端。
音频
* alsa:默认将"try-poll"设置为false。
* 新增浮点样本字节序转换器。
GUI
* spice/dbus:支持多平面dmabuf。
* spice:为非本地或远程客户端启用gl=on选项。
* vdagent:添加迁移支持。
* gtk:改进缩放处理。
* gtk:添加保持宽高比和缩放选项。
* vnc:修复客户端和服务器字节序不同时的更新编码问题。
* vnc:修复8/16-bpp时的更新编码问题。
* vnc:修复迁移后显示暂停问题。
迁移
* RDMA实时迁移开始支持IPv6。
* 在顺序内存访问(如视频流)上优化postcopy preempt模式。
* 初始支持同时启用multifd和postcopy功能(目前multifd仅在precopy期间启用)。
* 修复启用tcp zerocopy send时的VFIO multifd实时迁移。
* 通过避免不必要的LOG_CLEAR操作优化precopy停机时间。
QMP
* blockdev-mirror新增target-is-zero标志,用于优化稀疏文件镜像到已读取为零的目标。
* blockdev-backup新增on-cbw-error选项,允许用户指定在copy-before-write操作期间发生IO错误时的行为。
网络
* QEMU现在尝试在使用Unix套接字的NBD时安排更大的缓冲区,显著提高吞吐量。在MacOS上,此功能开箱即用;在Linux上,系统管理员需进行以下更改:
$ cat /etc/sysctl.d/net-mem-max.conf net.core.wmem_max = 2097152 $ sudo sysctl -p /etc/sysctl.d/net-mem-max.conf
块设备
* 优化非活动的block-commit以保持稀疏性。
* 优化blockdev-mirror以减少对零块的处理。
Rust支持
* 最低支持的Rust版本为1.77。
* 在Debian bookworm上,除mips64el架构外,rustc-web包中提供Rust 1.77;mips64el的Rust支持需Debian trixie或更新版本。
* 在Ubuntu 22.04和24.04上,rust-1.77包中提供Rust 1.77;RUSTC和RUSTDOC环境变量需指向/usr/bin/rustc-1.77和/usr/bin/rustdoc-1.77。
* QEMU现在需要Meson 1.8.1。
* 提供脚本scripts/get-wraps-from-cargo-registry.py,用于从本地crate注册表填充subprojects/目录。
已知问题
* 参见https://gitlab.com/qemu-project/qemu/-/milestones/16。
* ./configure --without-default-devices --target-list=ppc64-softmmu时遇到链接错误,需在Kconfig中启用POWERNV以解决。
评论总结
评论内容总结:
技术问题
- 评论1指出网站存在问题,无法访问数据库。
- 引用:"Their website appears to be broken? (Cannot access the database)"
- 中文:"他们的网站似乎坏了?(无法访问数据库)"
- 评论1指出网站存在问题,无法访问数据库。
QEMU的正面评价
- 评论2和评论3对QEMU表示高度赞赏,认为其功能强大且易于使用,尤其是在虚拟化和跨架构模拟方面。
- 引用:"QEMU is truly excellent software... it 'just works' and has wonderful integrations with basically everything I could want."
- 中文:"QEMU确实是一款优秀的软件……它‘开箱即用’,并且与我需要的几乎所有东西都有很好的集成。"
- 引用:"A great piece of software that makes my and my dev team's life infinitely better and easier."
- 中文:"这是一款让我的开发团队生活变得无限美好和轻松的软件。"
- 评论2和评论3对QEMU表示高度赞赏,认为其功能强大且易于使用,尤其是在虚拟化和跨架构模拟方面。
新功能与支持
- 评论4提到QEMU新增了对WASM的实验性支持,认为这将为在线“沙盒”环境提供更多可能性。
- 引用:"Experimental support for compiling to WASM using Emscripten... Likely this was possible beforehand, but it's nice to see it added as a feature to the project directly."
- 中文:"实验性支持使用Emscripten编译到WASM……虽然之前可能已经可以实现,但很高兴看到它被直接添加到项目中。"
- 评论5推荐了macOS和iOS上的QEMU前端UTM。
- 引用:"If you’re on macOS or iOS, UTM is an excellent Qemu front end."
- 中文:"如果你使用macOS或iOS,UTM是一个优秀的QEMU前端。"
- 评论4提到QEMU新增了对WASM的实验性支持,认为这将为在线“沙盒”环境提供更多可能性。
疑问与探索
- 评论6询问是否可以在QEMU上运行Android虚拟机,并提到Waydroid。
- 引用:"It's not possible to run an android VM on QEMU right? As in, is it officially supported? (I know about Waydroid)"
- 中文:"在QEMU上运行Android虚拟机是不可能的吗?也就是说,它是否得到官方支持?(我知道Waydroid)"
- 评论7提到对MIPS架构的Windows NT感到惊讶,并引发了对其他架构支持的探索。
- 引用:"Didn't realize there was a MIPS build of Windows NT. Which led me to wikipedia to find there were a lot of other architectures supported in the past."
- 中文:"没想到还有MIPS架构的Windows NT。这让我去维基百科上查找,发现过去还支持许多其他架构。"
- 评论6询问是否可以在QEMU上运行Android虚拟机,并提到Waydroid。