Reproducer for not powering on isolated emulator threads cores
Related-bug: 2056612 Change-Id: Icd586cdd015143b2e113fd14904f40410809d247
This commit is contained in:
parent
8dbfecd663
commit
521af26209
@ -61,6 +61,10 @@ class PowerManagementTestsBase(base.ServersTestBase):
|
|||||||
}
|
}
|
||||||
self.pcpu_flavor_id = self._create_flavor(
|
self.pcpu_flavor_id = self._create_flavor(
|
||||||
vcpu=4, extra_spec=self.extra_spec)
|
vcpu=4, extra_spec=self.extra_spec)
|
||||||
|
self.isolate_flavor_id = self._create_flavor(
|
||||||
|
vcpu=4, extra_spec={'hw:cpu_policy': 'dedicated',
|
||||||
|
'hw:cpu_thread_policy': 'prefer',
|
||||||
|
'hw:emulator_threads_policy': 'isolate'})
|
||||||
|
|
||||||
def _assert_server_cpus_state(self, server, expected='online'):
|
def _assert_server_cpus_state(self, server, expected='online'):
|
||||||
inst = objects.Instance.get_by_uuid(self.ctxt, server['id'])
|
inst = objects.Instance.get_by_uuid(self.ctxt, server['id'])
|
||||||
@ -130,6 +134,23 @@ class PowerManagementTests(PowerManagementTestsBase):
|
|||||||
unused_cpus = cpu_dedicated_set - instance_pcpus
|
unused_cpus = cpu_dedicated_set - instance_pcpus
|
||||||
self._assert_cpu_set_state(unused_cpus, expected='offline')
|
self._assert_cpu_set_state(unused_cpus, expected='offline')
|
||||||
|
|
||||||
|
def test_create_server_with_emulator_threads_isolate(self):
|
||||||
|
server = self._create_server(
|
||||||
|
flavor_id=self.isolate_flavor_id,
|
||||||
|
expected_state='ACTIVE')
|
||||||
|
# Let's verify that the pinned CPUs are now online
|
||||||
|
self._assert_server_cpus_state(server, expected='online')
|
||||||
|
instance = objects.Instance.get_by_uuid(self.ctxt, server['id'])
|
||||||
|
numa_topology = instance.numa_topology
|
||||||
|
# Make sure we've pinned the emulator threads to a separate core
|
||||||
|
self.assertTrue(numa_topology.cpuset_reserved)
|
||||||
|
self.assertTrue(
|
||||||
|
numa_topology.cpu_pinning.isdisjoint(
|
||||||
|
numa_topology.cpuset_reserved))
|
||||||
|
# FIXME(artom) We've not actually powered on the emulator threads core
|
||||||
|
self._assert_cpu_set_state(numa_topology.cpuset_reserved,
|
||||||
|
expected='offline')
|
||||||
|
|
||||||
def test_stop_start_server(self):
|
def test_stop_start_server(self):
|
||||||
server = self._create_server(
|
server = self._create_server(
|
||||||
flavor_id=self.pcpu_flavor_id,
|
flavor_id=self.pcpu_flavor_id,
|
||||||
|
Loading…
Reference in New Issue
Block a user