From: Luyao Huang Date: Mon, 12 Oct 2015 09:28:15 +0000 (+0800) Subject: qemu: Use live autoNodeset when numatune placement is auto X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=4eac55238f856d29d07a60448adb2e0b2f8e28b5;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git qemu: Use live autoNodeset when numatune placement is auto https://bugzilla.redhat.com/show_bug.cgi?id=1270715 Commit id '9deb96f' removed the code to fetch the nodeset from the CpusetMems cgroup for a running vm in favor of using the return from virDomainNumatuneFormatNodeset introduced by commit id '43b67f2e7'. However, that API will return the value of the passed 'auto_nodeset' when placement is VIR_DOMAIN_NUMATUNE_PLACEMENT_AUTO, which happens to be NULL. Since commit id 'c74d58ad' started using priv->autoNodeset in order to manage the auto placement value during qemuProcessStart, it should be passed along in order to return the correct value if the domain requests the auto placement. Signed-off-by: Luyao Huang --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a2cc00200..92a996128 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10177,6 +10177,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom, size_t i; virDomainObjPtr vm = NULL; virDomainNumatuneMemMode tmpmode = VIR_DOMAIN_NUMATUNE_MEM_STRICT; + qemuDomainObjPrivatePtr priv; char *nodeset = NULL; int ret = -1; virDomainDefPtr def = NULL; @@ -10187,6 +10188,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom, if (!(vm = qemuDomObjFromDomain(dom))) return -1; + priv = vm->privateData; if (virDomainGetNumaParametersEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -10214,7 +10216,8 @@ qemuDomainGetNumaParameters(virDomainPtr dom, break; case 1: /* fill numa nodeset here */ - nodeset = virDomainNumatuneFormatNodeset(def->numa, NULL, -1); + nodeset = virDomainNumatuneFormatNodeset(def->numa, + priv->autoNodeset, -1); if (!nodeset || virTypedParameterAssign(param, VIR_DOMAIN_NUMA_NODESET, VIR_TYPED_PARAM_STRING, nodeset) < 0)