Skip to content

Commit 2bffc53

Browse files
notartommnaser
authored andcommitted
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 (cherry picked from commit 86a35e9) (cherry picked from commit 0b7a59a)
1 parent 4b4fc27 commit 2bffc53

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
@@ -27882,7 +27882,10 @@ def test_set_features_windows(self):
2788227882
self.assertTrue(hv.reenlightenment)
2788327883
self.assertTrue(hv.tlbflush)
2788427884
self.assertTrue(hv.ipi)
27885-
self.assertTrue(hv.evmcs)
27885+
# NOTE(artom) evmcs only works on Intel hosts, so we can't enable it
27886+
# unconditionally. Until we become smarter about it, just don't enable
27887+
# it at all. See bug 2009280.
27888+
self.assertFalse(hv.evmcs)
2788627889

2788727890

2788827891
class LibvirtVolumeUsageTestCase(test.NoDBTestCase):

nova/virt/libvirt/driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6194,7 +6194,6 @@ def _set_features(self, guest, os_type, image_meta, flavor):
61946194
hv.reenlightenment = True
61956195
hv.tlbflush = True
61966196
hv.ipi = True
6197-
hv.evmcs = True
61986197

61996198
# NOTE(kosamara): Spoofing the vendor_id aims to allow the nvidia
62006199
# 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)