diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 868e024370..c524f7c2d6 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -28051,7 +28051,10 @@ class LibvirtDriverTestCase(test.NoDBTestCase, TraitsComparisonMixin): self.assertTrue(hv.reenlightenment) self.assertTrue(hv.tlbflush) self.assertTrue(hv.ipi) - self.assertTrue(hv.evmcs) + # NOTE(artom) evmcs only works on Intel hosts, so we can't enable it + # unconditionally. Until we become smarter about it, just don't enable + # it at all. See bug 2009280. + self.assertFalse(hv.evmcs) class LibvirtVolumeUsageTestCase(test.NoDBTestCase): diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 7f5f48c047..a7e7a77185 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -6265,7 +6265,6 @@ class LibvirtDriver(driver.ComputeDriver): hv.reenlightenment = True hv.tlbflush = True hv.ipi = True - hv.evmcs = True # NOTE(kosamara): Spoofing the vendor_id aims to allow the nvidia # driver to work on windows VMs. At the moment, the nvidia driver diff --git a/releasenotes/notes/libvirt-enlightenments-stop-unconditionally-enabling-evmcs-993a825641c4b9f3.yaml b/releasenotes/notes/libvirt-enlightenments-stop-unconditionally-enabling-evmcs-993a825641c4b9f3.yaml new file mode 100644 index 0000000000..31609f2a2d --- /dev/null +++ b/releasenotes/notes/libvirt-enlightenments-stop-unconditionally-enabling-evmcs-993a825641c4b9f3.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - | + Bug 2009280 has been fixed by no longer enabling the evmcs enlightenment in + the libvirt driver. evmcs only works on Intel CPUs, and domains with that + enlightenment cannot be started on AMD hosts. There is a possible future + feature to enable support for generating this enlightenment only when + running on Intel hosts.