This patch adds two parameters: strict and exclusive that we can get/set through cpuset. --- src/conf/domain_conf.c | 15 +++++++++++++++ src/conf/domain_conf.h | 2 ++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0cf3bb7..02a144b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6802,6 +6802,10 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, VIR_FREE(nodes); /* Extract numatune if exists. */ + + def->numatune.strict = 0; + def->numatune.exclusive = 0; + if ((n = virXPathNodeSet("./numatune", ctxt, NULL)) < 0) { virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot extract numatune nodes")); @@ -6829,6 +6833,13 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, "%s", _("nodeset for NUMA memory tuning must be set")); goto error; } + + if (virXPathNode("./numatune/strict", ctxt)) { + def->numatune.strict = 1; + } + if (virXPathNode("./numatune/exclusive", ctxt)) { + def->numatune.exclusive = 1; + } } n = virXPathNodeSet("./features/*", ctxt, &nodes); @@ -10876,6 +10887,10 @@ virDomainDefFormatInternal(virDomainDefPtr def, virBufferAsprintf(buf, " <memory nodeset='%s'/>\n", nodemask); VIR_FREE(nodemask); + if (def->numatune.strict) + virBufferAsprintf(buf, " <strict/>\n"); + if (def->numatune.exclusive) + virBufferAsprintf(buf, " <exclusive/>\n"); virBufferAddLit(buf, " </numatune>\n"); } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ca68437..f3dbece 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1355,6 +1355,8 @@ struct _virDomainNumatuneDef { char *nodemask; } memory; + int strict; + int exclusive; /* Future NUMA tuning related stuff should go here. */ }; -- 1.7.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list