Comment 4 for bug 1868692

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I wanted another round of tests and it seems that was good.
With the subset of VMX features it fails to start the nested guest.

KVM: entry failed, hardware error 0x80000021

That is a known issue on older HW due to a lack of VMX features and bugs in the kernel around it.
It came back and was fixed multiple times over the generations of VMX support.

Since I aligned my changes to those in kvm64 I tried that type if - on the HW/kernel I have - this crashes as well.

As expected it does - by default - only have the VMX subfeatures, but not the feature itself enabled. That is the same as I have seen on qmeu64 before I added back the main flag.
Enabling vmx via the XML like:
  <feature policy='require' name='vmx'/>
Gives a qmeu commandline like:
  -cpu kvm64,vmx=on

With that the kvm module can be loaded in the guest and it works.
So it seem I can only make qemu64 as-default-vmx as the kvm64 type - otherwise things break (by mismatching sub/main features).

Old upgraders will have qemu64 + vmx=on in the XML.
We can save those with the qemu fix.

After this fix we will be less broken than we are right now (vmx can be enabled on qemu64 and upgraders mostly work), but are not 100% the same (you need to enable VMX on cmdline or XML.

To further smooth this we might add vmx to /usr/share/libvirt/cpu_map/x86_qemu64.xml.
Giving that a try after a bunch of rebuilds.