系统极客一直在努力
专注操作系统及软件使用技能

QEMU 11.1 发布:补齐 UFS 仿真,扩大 ARM 与 RISC-V 支持

QEMU

QEMU 11.1 稳定版正式发布,新版本主要扩展了 ARM 和 RISC-V 平台的硬件支持,并在底层补齐了通用闪存存储(UFS)仿真。

QEMU 11.1 主要更新

底层存储与虚拟化

  • 存储层方面:QEMU 11.1 按照 UFS 4.1 规范新增了通用闪存存储(UFS)仿真,现已支持 Write Booster 设备级缓存、主机发起的碎片整理(HID)两项特性。
  • 底层虚拟化机制:virtio-rtc 现在支持通过 vhost-user,把实时时钟处理从 hypervisor 卸载;PowerNV 架构新增了 MPIPL 支持,意外重置时,可以保留内存状态;新增嵌套 MMU 直接仿真支持,s390x 架构的 KVM 侧也接入了 ASTFLE facility 2。

架构扩容:ARM 与 RISC-V

ARM 与 RISC-V 架构的支持范围继续扩大:

  • ARM 方面:在 Apple HVF 框架下运行时,现已支持嵌套虚拟化与 vGIC;主板支持范围同步扩展,新增了基于 i.MX 8MM 评估板的 imx8mp-evk 机器类型,virt 板也开放了缓存拓扑设置,允许手动调配;此外,还新增了一批 CPU 架构特性。
  • RISC-V 架构:正式支持大端(big-endian)目标。指令集扩展新增了 Zbr/xbr0p93 和 Zvfbfa,向量 SHA 指令也支持了分数 LMUL;KVM 侧接入 Zicbop 与 BFloat16 支持,硬件模型新增了 K230 开发板,同时可以识别 Tenstorrent 的 mvendorid。

用户态仿真与外围更新

  • 用户态仿真层更新了一批系统调用:新增了preadv2()pwritev2()madvise()的控制粒度更细,同时为适配 systemd 加入了 fsmount 系列调用。PPC、LoongArch 和 m68k 架构现已支持正确读取/proc/cpuinfo,sh4 与 sh4eb 架构也补上了 VDSO 支持。
  • 固件与外围界面调整:HPPA 架构更新至 SeaBIOS-hppa v25 固件,修复了 HP-UX 下的 TLB 插入问题;GUI 侧改进了 GTK 与 VNC 支持,虚拟控制台现已允许手动指定不同字符编码。

QEMU 11.0 主要更新

核心架构演进

x86 与 KVM 虚拟化增强

在 x86 阵营方面,引入了全新的 Intel Diamond Rapids CPU 模型。现在原生支持 Nitro Enclaves,只需配置专用加速器,搭配-M nitro机器类型即可调用。

对 KVM 虚拟化层级,落地了多项安全与控制特性:

  • 内核支持「控制流强制技术」(Control-flow Enforcement Technology)的虚拟化透传。
  • SEV-SNP 与 TDX 安全虚拟机新增重置能力。系统会直接接管 SEV-ES 终止请求,并将其汇报为客户机内核崩溃(Guest Panic)事件。

ARM 架构深度拓展

ARM 平台的模拟能力,有了实质性扩充:

  • 加入了对FEAT_ASID2FEAT_E2H0硬件特性的模拟。
  • WHPX 加速器现已适配virt核心板,同时为该板型开放了virtio-mmio-transports属性。
  • KVM CPU 也新增了kvm-psci-version属性支持。

此外,开发者可以直接通过以下指令参数,激活 SMMUv3 硬件加速:

-device arm-smmuv3,accel=on

存储、图形与迁移机制

块存储与显示输出

存储层与图形栈的 I/O 性能得到了系统性强化,核心模块升级明细见下表:

核心模块更新明细
virtio-gpu支持原生上下文驱动,允许为每个输出显示器单独设置分辨率。
NFS 驱动升级适配libnfs v6核心库。
curl 驱动针对 HTTP (S) 远程镜像挂载,新增force-range强制范围请求选项。
FUSE 导出重写架构处理异步请求,现已支持多 I/O 线程(iothreads)并发。

虚拟机热迁移优化

  • QEMU 11.0 彻底修复了开启x-ignore-shared参数时,引发的映射内存(Mapped RAM)迁移故障,并基于 KVM 优化了非对齐内存块的脏页同步效率。虚拟机热迁移稳定性有了巨大提升。
  • 迁移状态机新增「失败」标识位,可精准捕捉迁移中断异常。
  • COLO 架构的传输能力也进行了拓展。现在 COLO 正式支持多通道(multifd)并行传输,能大幅缓解高并发场景下的数据同步瓶颈。

COLO:粗粒度锁步,一种通过实时同步双机状态来实现虚拟机高可用的双机容错技术。

老旧代码清理与多架构适配

精简代码库是 QEMU 11.0 的主要基调。除了废除 32 位宿主机支持,多款过时的机器类型和接口,也被清理出了主干分支:

  • ARM 架构:使用全新的ast2700a1-evb替代了初代ast2700a0-evb模型,同时彻底删除了 highbankmidway两款机器类型。
  • x86 架构:清理了pc-i440fx-2.6pc-q35-2.6及对应的 2.7 版本老旧机器模型。
  • RISC-V:新增多项底层指令扩展支持,修复了大量边界 Bug。
  • LoongArch(龙芯):为 KVM 引入性能监控计数器(PMU)热迁移能力,扩充了 TCG 动态翻译指令集。
  • PowerPC:多款虚拟设备新增了快照功能,修复了pseries架构的底层迁移缺陷。
  • s390x:新增原生支持,可以直接从virtio-blk-pci块设备引导系统启动。

除了核心硬件模拟外,Windows 客户机代理(Guest Agent)、9pfs 协议及底层 I/O 子系统,都推送了修复补丁。内置的 TCG 动态翻译插件系统,开放了全新 API,允许开发者在源码树中直接集成 C++ 插件。

赞(1)
分享到

评论 抢沙发