Skip to content

Commit 273ecae

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Reproducer for not powering on isolated emulator threads cores" into stable/2023.1
2 parents 01107e9 + 6ea5c69 commit 273ecae

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

nova/tests/functional/libvirt/test_power_manage.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ def setUp(self):
6161
}
6262
self.pcpu_flavor_id = self._create_flavor(
6363
vcpu=4, extra_spec=self.extra_spec)
64+
self.isolate_flavor_id = self._create_flavor(
65+
vcpu=4, extra_spec={'hw:cpu_policy': 'dedicated',
66+
'hw:cpu_thread_policy': 'prefer',
67+
'hw:emulator_threads_policy': 'isolate'})
6468

6569
def _assert_server_cpus_state(self, server, expected='online'):
6670
inst = objects.Instance.get_by_uuid(self.ctxt, server['id'])
@@ -130,6 +134,23 @@ def test_create_server(self):
130134
unused_cpus = cpu_dedicated_set - instance_pcpus
131135
self._assert_cpu_set_state(unused_cpus, expected='offline')
132136

137+
def test_create_server_with_emulator_threads_isolate(self):
138+
server = self._create_server(
139+
flavor_id=self.isolate_flavor_id,
140+
expected_state='ACTIVE')
141+
# Let's verify that the pinned CPUs are now online
142+
self._assert_server_cpus_state(server, expected='online')
143+
instance = objects.Instance.get_by_uuid(self.ctxt, server['id'])
144+
numa_topology = instance.numa_topology
145+
# Make sure we've pinned the emulator threads to a separate core
146+
self.assertTrue(numa_topology.cpuset_reserved)
147+
self.assertTrue(
148+
numa_topology.cpu_pinning.isdisjoint(
149+
numa_topology.cpuset_reserved))
150+
# FIXME(artom) We've not actually powered on the emulator threads core
151+
self._assert_cpu_set_state(numa_topology.cpuset_reserved,
152+
expected='offline')
153+
133154
def test_stop_start_server(self):
134155
server = self._create_server(
135156
flavor_id=self.pcpu_flavor_id,

0 commit comments

Comments
 (0)