Let 'virDomainResctrlVcpuMatch' to retrieve a pointer of
virDomainResctrlDefPtr in its third parameter instead
of virResctrlAllocPtr, if @vcpus is matched with the vcpus
of some resctrl allocation in list of @def->resctrls.
Signed-off-by: Wang Huaqiang <huaqiang.wang(a)intel.com>
---
src/conf/domain_conf.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e4a6dfb..ca2dba9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -18992,7 +18992,7 @@ virDomainResctrlParseVcpus(virDomainDefPtr def,
static int
virDomainResctrlVcpuMatch(virDomainDefPtr def,
virBitmapPtr vcpus,
- virResctrlAllocPtr *alloc)
+ virDomainResctrlDefPtr *resctrl)
{
ssize_t i = 0;
@@ -19001,7 +19001,7 @@ virDomainResctrlVcpuMatch(virDomainDefPtr def,
* Just updating memory allocation information of that group
*/
if (virBitmapEqual(def->resctrls[i]->vcpus, vcpus)) {
- *alloc = virObjectRef(def->resctrls[i]->alloc);
+ *resctrl = def->resctrls[i];
break;
}
if (virBitmapOverlaps(def->resctrls[i]->vcpus, vcpus)) {
@@ -19332,18 +19332,18 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
return -1;
}
- if (virDomainResctrlVcpuMatch(def, vcpus, &alloc) < 0)
+ if (virDomainResctrlVcpuMatch(def, vcpus, &resctrl) < 0)
return -1;
- if (!alloc) {
- if (!(alloc = virResctrlAllocNew()))
- return -1;
- } else {
+ if (resctrl) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Identical vcpus in cachetunes found"));
return -1;
}
+ if (!(alloc = virResctrlAllocNew()))
+ return -1;
+
for (i = 0; i < n; i++) {
if (virDomainCachetuneDefParseCache(ctxt, nodes[i], alloc) < 0)
return -1;
@@ -19518,7 +19518,6 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
ssize_t i = 0;
int n;
int ret = -1;
- bool new_alloc = false;
ctxt->node = node;
@@ -19534,13 +19533,14 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
return -1;
}
- if (virDomainResctrlVcpuMatch(def, vcpus, &alloc) < 0)
+ if (virDomainResctrlVcpuMatch(def, vcpus, &resctrl) < 0)
return -1;
- if (!alloc) {
+ if (resctrl) {
+ alloc = virObjectRef(resctrl->alloc);
+ } else {
if (!(alloc = virResctrlAllocNew()))
return -1;
- new_alloc = true;
}
for (i = 0; i < n; i++) {
@@ -19555,7 +19555,7 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
* If this is a new allocation, format ID and append to resctrl, otherwise
* just update the existing alloc information, which is done in above
* virDomainMemorytuneDefParseMemory */
- if (new_alloc) {
+ if (!resctrl) {
if (!(resctrl = virDomainResctrlNew(node, alloc, vcpus, flags)))
return -1;
--
2.7.4