summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Krempa <pkrempa@redhat.com>2015-02-16 18:38:43 +0100
committerPeter Krempa <pkrempa@redhat.com>2015-02-20 17:50:08 +0100
commitd9a779a36efe7754b65e0f271cb3f388ed5b7d53 (patch)
tree04273143cec6bafd591c23101166205bf9f4fb45
parentbe22d07315bf4ff9d5edc938479b6f344bffec48 (diff)
downloadlibvirt-d9a779a36efe7754b65e0f271cb3f388ed5b7d53.tar.gz
conf: numa: Add accessor for the NUMA node cpu mask
Add virDomainNumaGetNodeCpumask() and refactor a few places that would get the cpu mask without the helper.
-rw-r--r--src/conf/numa_conf.c12
-rw-r--r--src/conf/numa_conf.h3
-rw-r--r--src/libvirt_private.syms1
-rw-r--r--src/qemu/qemu_command.c2
4 files changed, 15 insertions, 3 deletions
diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c
index 8000415b2e..d13d293bce 100644
--- a/src/conf/numa_conf.c
+++ b/src/conf/numa_conf.c
@@ -771,7 +771,7 @@ virDomainNumaDefCPUFormat(virBufferPtr buf,
for (i = 0; i < ncells; i++) {
memAccess = def->cells[i].memAccess;
- if (!(cpustr = virBitmapFormat(def->cells[i].cpumask)))
+ if (!(cpustr = virBitmapFormat(virDomainNumaGetNodeCpumask(def, i))))
return -1;
virBufferAddLit(buf, "<cell");
@@ -799,7 +799,7 @@ virDomainNumaGetCPUCountTotal(virCPUDefPtr numa)
unsigned int ret = 0;
for (i = 0; i < numa->ncells; i++)
- ret += virBitmapCountBits(numa->cells[i].cpumask);
+ ret += virBitmapCountBits(virDomainNumaGetNodeCpumask(numa, i));
return ret;
}
@@ -824,3 +824,11 @@ virDomainNumaGetNodeCount(virCPUDefPtr numa)
return numa->ncells;
}
+
+
+virBitmapPtr
+virDomainNumaGetNodeCpumask(virCPUDefPtr numa,
+ size_t node)
+{
+ return numa->cells[node].cpumask;
+}
diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h
index 07759ed813..ad12c72457 100644
--- a/src/conf/numa_conf.h
+++ b/src/conf/numa_conf.h
@@ -88,6 +88,9 @@ int virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune,
size_t virDomainNumaGetNodeCount(virCPUDefPtr numa)
ATTRIBUTE_NONNULL(1);
+virBitmapPtr virDomainNumaGetNodeCpumask(virCPUDefPtr numa,
+ size_t node)
+ ATTRIBUTE_NONNULL(1);
/*
* Formatters
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 924ad37f6f..d9b0e05e8a 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -630,6 +630,7 @@ virNodeDeviceObjUnlock;
virDomainNumaEquals;
virDomainNumaFree;
virDomainNumaGetNodeCount;
+virDomainNumaGetNodeCpumask;
virDomainNumaNew;
virDomainNumatuneFormatNodeset;
virDomainNumatuneFormatXML;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index befb98279f..8daa2999c2 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7199,7 +7199,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg,
for (i = 0; i < ncells; i++) {
VIR_FREE(cpumask);
- if (!(cpumask = virBitmapFormat(def->cpu->cells[i].cpumask)))
+ if (!(cpumask = virBitmapFormat(virDomainNumaGetNodeCpumask(def->cpu, i))))
goto cleanup;
if (strchr(cpumask, ',') &&