Skip to content

Commit 86a35e9

Browse files
committed
libvirt: Stop unconditionally enabling evmcs
In I008841988547573878c4e06e82f0fa55084e51b5 we started enabling a bunch of libvirt enlightenments for Windows unconditionally. Turns out, the `evmcs` enlightenment only works on Intel hosts, and we broke the ability to run Windows guests on AMD machines. Until we become smarter about conditionally enabling evmcs (with something like traits for host CPU features), just stop enabling it at all. Change-Id: I2ff4fdecd9dc69de283f0e52e07df1aeaf0a9048 Closes-bug: 2009280
1 parent da1c40d commit 86a35e9

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

nova/tests/unit/virt/libvirt/test_driver.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27972,7 +27972,10 @@ def test_set_features_windows(self):
2797227972
self.assertTrue(hv.reenlightenment)
2797327973
self.assertTrue(hv.tlbflush)
2797427974
self.assertTrue(hv.ipi)
27975-
self.assertTrue(hv.evmcs)
27975+
# NOTE(artom) evmcs only works on Intel hosts, so we can't enable it
27976+
# unconditionally. Until we become smarter about it, just don't enable
27977+
# it at all. See bug 2009280.
27978+
self.assertFalse(hv.evmcs)
2797627979

2797727980

2797827981
class LibvirtVolumeUsageTestCase(test.NoDBTestCase):

nova/virt/libvirt/driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6234,7 +6234,6 @@ def _set_features(self, guest, os_type, image_meta, flavor):
62346234
hv.reenlightenment = True
62356235
hv.tlbflush = True
62366236
hv.ipi = True
6237-
hv.evmcs = True
62386237

62396238
# NOTE(kosamara): Spoofing the vendor_id aims to allow the nvidia
62406239
# driver to work on windows VMs. At the moment, the nvidia driver
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
fixes:
3+
- |
4+
Bug 2009280 has been fixed by no longer enabling the evmcs enlightenment in
5+
the libvirt driver. evmcs only works on Intel CPUs, and domains with that
6+
enlightenment cannot be started on AMD hosts. There is a possible future
7+
feature to enable support for generating this enlightenment only when
8+
running on Intel hosts.

0 commit comments

Comments
 (0)