qemuDomainGetNumaParameters would return the automatic nodeset even for
the persistent config if the domain was running. This is incorrect since
the automatic nodeset will be re-queried upon starting the vm.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1445325
---
src/qemu/qemu_driver.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e39de625d..1ba3e0943 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9461,6 +9461,8 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
char *nodeset = NULL;
int ret = -1;
virDomainDefPtr def = NULL;
+ bool live = false;
+ virBitmapPtr autoNodeset = NULL;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
VIR_DOMAIN_AFFECT_CONFIG |
@@ -9473,9 +9475,12 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
if (virDomainGetNumaParametersEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- if (!(def = virDomainObjGetOneDef(vm, flags)))
+ if (!(def = virDomainObjGetOneDefState(vm, flags, &live)))
goto cleanup;
+ if (live)
+ autoNodeset = priv->autoNodeset;
+
if ((*nparams) == 0) {
*nparams = QEMU_NB_NUMA_PARAM;
ret = 0;
@@ -9496,8 +9501,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
break;
case 1: /* fill numa nodeset here */
- nodeset = virDomainNumatuneFormatNodeset(def->numa,
- priv->autoNodeset, -1);
+ nodeset = virDomainNumatuneFormatNodeset(def->numa, autoNodeset, -1);
if (!nodeset ||
virTypedParameterAssign(param, VIR_DOMAIN_NUMA_NODESET,
VIR_TYPED_PARAM_STRING, nodeset) < 0)
--
2.12.2
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Wed, Apr 26, 2017 at 03:05:00PM +0200, Peter Krempa wrote: > qemuDomainGetNumaParameters would return the automatic nodeset even for > the persistent config if the domain was running. This is incorrect since > the automatic nodeset will be re-queried upon starting the vm. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1445325 > --- > src/qemu/qemu_driver.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index e39de625d..1ba3e0943 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -9461,6 +9461,8 @@ qemuDomainGetNumaParameters(virDomainPtr dom, > char *nodeset = NULL; > int ret = -1; > virDomainDefPtr def = NULL; > + bool live = false; > + virBitmapPtr autoNodeset = NULL; > > virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | > VIR_DOMAIN_AFFECT_CONFIG | > @@ -9473,9 +9475,12 @@ qemuDomainGetNumaParameters(virDomainPtr dom, > if (virDomainGetNumaParametersEnsureACL(dom->conn, vm->def) < 0) > goto cleanup; > > - if (!(def = virDomainObjGetOneDef(vm, flags))) > + if (!(def = virDomainObjGetOneDefState(vm, flags, &live))) > goto cleanup; > > + if (live) > + autoNodeset = priv->autoNodeset; > + > if ((*nparams) == 0) { > *nparams = QEMU_NB_NUMA_PARAM; > ret = 0; > @@ -9496,8 +9501,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom, > break; > > case 1: /* fill numa nodeset here */ > - nodeset = virDomainNumatuneFormatNodeset(def->numa, > - priv->autoNodeset, -1); > + nodeset = virDomainNumatuneFormatNodeset(def->numa, autoNodeset, -1); > if (!nodeset || > virTypedParameterAssign(param, VIR_DOMAIN_NUMA_NODESET, > VIR_TYPED_PARAM_STRING, nodeset) < 0) ACK Erik -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2024 Red Hat, Inc.