summaryrefslogtreecommitdiff
path: root/virtinst/domain
diff options
context:
space:
mode:
authorHugues Fafard <fafardh@posteo.de>2021-08-03 19:54:51 +0200
committerCole Robinson <crobinso@redhat.com>2021-10-04 15:08:38 -0400
commitfbcb7539c38205fe1eaa62a2bfbe2ee3bb150183 (patch)
treed5151171b1536c3c7f8512da1a3d426fa700bdba /virtinst/domain
parent42bb522f0d262b63bcfa99011d35e580c78430fc (diff)
downloadvirt-manager-fbcb7539c38205fe1eaa62a2bfbe2ee3bb150183.tar.gz
cli: --cpu: add support for NUMA caches
This includes support for the following options: * numa.cell[0-9]*.cache[0-9]*.level * numa.cell[0-9]*.cache[0-9]*.associativity * numa.cell[0-9]*.cache[0-9]*.policy * numa.cell[0-9]*.cache[0-9]*.size.value * numa.cell[0-9]*.cache[0-9]*.size.unit * numa.cell[0-9]*.cache[0-9]*.line.value * numa.cell[0-9]*.cache[0-9]*.line.unit
Diffstat (limited to 'virtinst/domain')
-rw-r--r--virtinst/domain/cpu.py35
1 files changed, 29 insertions, 6 deletions
diff --git a/virtinst/domain/cpu.py b/virtinst/domain/cpu.py
index a6a3ab3e..08dfcaf9 100644
--- a/virtinst/domain/cpu.py
+++ b/virtinst/domain/cpu.py
@@ -10,9 +10,10 @@ from ..xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
from .. import xmlutil
-class _CPUCellSibling(XMLBuilder):
+class _NUMACellSibling(XMLBuilder):
"""
- Class for generating <distances> <sibling> nodes
+ Class for generating <cpu><numa><cell><distances> child nodes <sibling>,
+ describing the distances to other NUMA cells.
"""
XML_NAME = "sibling"
_XML_PROP_ORDER = ["id", "value"]
@@ -21,9 +22,30 @@ class _CPUCellSibling(XMLBuilder):
value = XMLProperty("./@value", is_int=True)
-class _CPUCell(XMLBuilder):
+class _NUMACellCache(XMLBuilder):
"""
- Class for generating <cpu><numa> child <cell> XML
+ Class for generating <cpu><numa><cell> child nodes <cache>, describing
+ caches for NUMA cells.
+ """
+ XML_NAME = "cache"
+ _XML_PROP_ORDER = ["level", "associativity", "policy",
+ "size_value", "size_unit", "line_value", "line_unit"]
+
+ level = XMLProperty("./@level", is_int=True)
+ associativity = XMLProperty("./@associativity")
+ policy = XMLProperty("./@policy")
+
+ size_value = XMLProperty("./size/@value", is_int=True)
+ size_unit = XMLProperty("./size/@unit")
+
+ line_value = XMLProperty("./line/@value", is_int=True)
+ line_unit = XMLProperty("./line/@unit")
+
+
+class _NUMACell(XMLBuilder):
+ """
+ Class for generating <cpu><numa> child nodes <cell> XML, describing NUMA
+ cells.
"""
XML_NAME = "cell"
_XML_PROP_ORDER = ["id", "cpus", "memory", "memAccess", "discard"]
@@ -34,7 +56,8 @@ class _CPUCell(XMLBuilder):
unit = XMLProperty("./@unit")
memAccess = XMLProperty("./@memAccess")
discard = XMLProperty("./@discard", is_yesno=True)
- siblings = XMLChildProperty(_CPUCellSibling, relative_xpath="./distances")
+ siblings = XMLChildProperty(_NUMACellSibling, relative_xpath="./distances")
+ caches = XMLChildProperty(_NUMACellCache)
class _CPUCache(XMLBuilder):
@@ -204,7 +227,7 @@ class DomainCpu(XMLBuilder):
feature.policy = policy
features = XMLChildProperty(_CPUFeature)
- cells = XMLChildProperty(_CPUCell, relative_xpath="./numa")
+ cells = XMLChildProperty(_NUMACell, relative_xpath="./numa")
cache = XMLChildProperty(_CPUCache, is_single=True)
def copy_host_cpu(self, guest):