KVM: entry failed, hardware error 0x80000021

较旧的硬件和新 5.15 内核

KVM: entry failed, hardware error 0x80000021

出现背景

在 5.15 内核中,二维分页 (TDP) 内存管理单元 (MMU) 实现默认处于激活状态。新实现降低了将来宾操作系统虚拟内存地址映射到主机的物理内存地址的复杂性,并提高了性能,尤其是在具有大量内存和许多 CPU 内核的 VM 的实时迁移期间。但是,新的 TDP MMU 功能已被证明会导致某些(大多数)旧硬件上的回归,这可能是由于假设该硬件何时需要回退。

问题表现为带有内核 () 或日志条目的计算机崩溃,其中包括如下行:dmesgjournalctl

KVM: entry failed, hardware error 0x80000021

通常,QEMU 进程大约同时会记录错误消息。用户反映,该问题在Windows 虚拟机上出现概率很大。Windows机器会自动关机,在OS内的log未找到相应的error

受影响的CPU模型无法准确定位,但似乎8年前推出的CPU最有可能引发此问题。请注意,在已知情况下,更新到最新的可用固件 (BIOS/EFI) 和 CPU 微码修复了回归。因此,在尝试以下解决方法之前,我们建议您确保安装了最新的固件和 CPU 微码

也有用户反应,从PVE6升级到PVE7可能会出现这种问题,全新安装并未出现问题。

解决办法:禁用tdp_mmu

kvm 模块选项可用于强制禁用二维分页 (TDP) MMU 的使用。tdp_mmu

  • 您可以将该参数作为 添加到 PVE 主机的内核命令行,请参阅此参考文档部分kvm.tdp_mmu=N
  • 或者,使用 modprobe 配置设置模块选项,例如:
  echo "options kvm tdp_mmu=N" >/etc/modprobe.d/kvm-disable-tdp-mmu.conf
  update-initramfs -k all -u
随后重启Proxmox VE

您可以通过下面命令输出确认是否被禁用。

cat /sys/module/kvm/parameters/tdp_mmu

输出应该为N

 

参考Upgrade from 6.x to 7.0 - Proxmox VE

 

版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/1909.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录