[libvirt] [PATCH 22/24] conf: numa: Add accessor to NUMA node's memory access mode

Peter Krempa pkrempa at redhat.com
Mon Feb 16 18:52:10 UTC 2015


---
 src/conf/numa_conf.c     | 10 +++++++++-
 src/conf/numa_conf.h     |  2 ++
 src/libvirt_private.syms |  1 +
 src/qemu/qemu_command.c  |  5 +++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c
index acda415..4906687 100644
--- a/src/conf/numa_conf.c
+++ b/src/conf/numa_conf.c
@@ -769,7 +769,7 @@ virDomainNumaDefCPUFormat(virBufferPtr buf,
     virBufferAddLit(buf, "<numa>\n");
     virBufferAdjustIndent(buf, 2);
     for (i = 0; i < ncells; i++) {
-        memAccess = def->cells[i].memAccess;
+        memAccess = virDomainNumaGetNodeMemoryAccessMode(def, i);

         if (!(cpustr = virBitmapFormat(virDomainNumaGetNodeCpumask(def, i))))
             return -1;
@@ -832,3 +832,11 @@ virDomainNumaGetNodeCpumask(virCPUDefPtr numa,
 {
     return numa->cells[node].cpumask;
 }
+
+
+virNumaMemAccess
+virDomainNumaGetNodeMemoryAccessMode(virCPUDefPtr numa,
+                                     size_t node)
+{
+    return numa->cells[node].memAccess;
+}
diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h
index ab88ab7..0ea2c93 100644
--- a/src/conf/numa_conf.h
+++ b/src/conf/numa_conf.h
@@ -89,6 +89,8 @@ int virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune,
 size_t virDomainNumaGetNodeCount(virCPUDefPtr numa);
 virBitmapPtr virDomainNumaGetNodeCpumask(virCPUDefPtr numa,
                                          size_t node);
+virNumaMemAccess virDomainNumaGetNodeMemoryAccessMode(virCPUDefPtr numa,
+                                                      size_t node);

 /*
  * Formatters
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 770803b..1f1ce14 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -631,6 +631,7 @@ virDomainNumaEquals;
 virDomainNumaFree;
 virDomainNumaGetNodeCount;
 virDomainNumaGetNodeCpumask;
+virDomainNumaGetNodeMemoryAccessMode;
 virDomainNumaNew;
 virDomainNumatuneFormatNodeset;
 virDomainNumatuneFormatXML;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d276da3..05545ee 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4558,7 +4558,8 @@ qemuBuildMemoryBackendStr(unsigned long long size,
     virDomainHugePagePtr hugepage = NULL;
     virDomainNumatuneMemMode mode;
     const long system_page_size = virGetSystemPageSizeKB();
-    virNumaMemAccess memAccess = def->cpu->cells[guestNode].memAccess;
+    virNumaMemAccess memAccess = virDomainNumaGetNodeMemoryAccessMode(def->cpu, guestNode);
+
     size_t i;
     char *mem_path = NULL;
     virBitmapPtr nodemask = NULL;
@@ -7185,7 +7186,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
             if (rc == 0)
                 needBackend = true;
         } else {
-            if (def->cpu->cells[i].memAccess) {
+            if (virDomainNumaGetNodeMemoryAccessMode(def->cpu, i)) {
                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                                _("Shared memory mapping is not supported "
                                  "with this QEMU"));
-- 
2.2.2




More information about the libvir-list mailing list