Merge "Add cpuset_reserved helper to instance NUMA topology"

This commit is contained in:
Zuul 2024-03-11 15:53:03 +00:00 committed by Gerrit Code Review
commit 3cb7329ad2
2 changed files with 14 additions and 2 deletions

View File

@ -295,6 +295,12 @@ class InstanceNUMATopology(base.NovaObject,
cell.cpu_pinning.values() for cell in self.cells
if cell.cpu_pinning]))
@property
def cpuset_reserved(self):
return set(itertools.chain.from_iterable([
cell.cpuset_reserved for cell in self.cells
if cell.cpuset_reserved]))
def clear_host_pinning(self):
"""Clear any data related to how instance is pinned to the host.

View File

@ -29,10 +29,12 @@ fake_obj_numa_topology = objects.InstanceNUMATopology(
instance_uuid=fake_instance_uuid,
cells=[
objects.InstanceNUMACell(
id=0, cpuset=set(), pcpuset=set([1, 2]), memory=512,
id=0, cpuset=set(), pcpuset=set([1, 2]),
cpuset_reserved=set([5, 6]), memory=512,
pagesize=2048),
objects.InstanceNUMACell(
id=1, cpuset=set(), pcpuset=set([3, 4]), memory=512,
id=1, cpuset=set(), pcpuset=set([3, 4]),
cpuset_reserved=set([7, 8]), memory=512,
pagesize=2048),
])
@ -155,6 +157,10 @@ class _TestInstanceNUMACell(object):
topo_obj.cells[1].pin_vcpus((3, 0), (4, 1))
self.assertEqual(set([0, 1, 10, 11]), topo_obj.cpu_pinning)
def test_cpuset_reserved(self):
topo_obj = get_fake_obj_numa_topology(self.context)
self.assertEqual(set([5, 6, 7, 8]), topo_obj.cpuset_reserved)
def test_clear_host_pinning(self):
topo_obj = get_fake_obj_numa_topology(self.context)
topo_obj.cells[0].pin_vcpus((1, 10), (2, 11))