我在 BIOS 中启用了 VT-x。我正在运行 qemu/kvm/Manjaro。lscpu
说
$ lscpu
Architecture: x86_64
Model name: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Flags: ... vmx ...
Virtualization features:
Virtualization: VT-x
Vulnerabilities:
Itlb multihit: KVM: Mitigation: VMX disabled
此外,
$ sudo rdmsr -f 2:0 0x3A
5
意思就是
- VMX 配置已锁定
- VMX 在 SMX(“安全模式扩展”)状态下被禁用
- VMX 在 SMX 状态之外启用
这个答案给了我希望:如果kvm
加载,则 VMX 正在运行。事实上,qemu
它kvm
的加速器运行良好(或至少看起来如此)。那么为什么它会显示 VMX 因多重攻击漏洞而被禁用?
运行示例qemu
:
$ qemu-system-x86_64 -nographic -vga none -net none -nodefaults -machine q35 -accel kvm -cpu host -smp sockets=1,dies=1,cores=2,threads=2 -m 512M ...
QEMU 6.0.0 monitor - type 'help' for more information
(qemu) info kvm
info kvm
kvm support: enabled
到目前为止,客户机(在本例中为 pfSense)运行良好。
答案1
谢谢你的提问...这对我来说也很有趣...所以,读完这篇文章后,https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/multihit.html 情况变得清晰:vmx 看起来存在并且未被 bios 禁用。存在漏洞,但现在 vmx 未被使用,因此只是被禁用。当运行某些 kvm 并使用 vmx 时,情况发生了变化:
$ cat /sys/devices/system/cpu/vulnerabilities/itlb_multihit
KVM: Mitigation: Split huge pages
意思是,该漏洞是存在的,但是可以通过 kvm 拆分页面来缓解。
答案2
简而言之,即使多重攻击漏洞缓解措施可能会暂时禁用 VMX,但系统的 VT-x 仍处于启用状态并正常工作。KVM 和虚拟机的成功运行表明 VT-x 正在按预期用于硬件加速。因此,无需担心报告的多重攻击漏洞导致的 VMX 禁用。