KVM が動作している場合、VMX が無効として表示されるのはなぜですか?

KVM が動作している場合、VMX が無効として表示されるのはなぜですか?

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 の無効化が報告されていることについて心配する必要はありません。

関連情報