提交 8fb2164c 编写于 作者: O Osier Yang

numad: Ignore cpuset if placement is auto

As explained in previous patch, numad will balance the affinity
dynamically, so reflecting the cpuset from numad at the first
time doesn't make much case, and may just could cause confusion.
上级 ccf80e36
......@@ -365,11 +365,11 @@
"auto", defaults to "static" if <code>cpuset</code> is specified,
"auto" indicates the domain process will be pinned to the advisory
nodeset from querying numad, and the value of attribute
<code>cpuset</code> will be overridden by the advisory nodeset
from numad if it's specified. If both <code>cpuset</code> and
<code>placement</code> are not specified, or if <code>placement</code>
is "static", but no <code>cpuset</code> is specified, the domain
process will be pinned to all the available physical CPUs.
<code>cpuset</code> will be ignored if it's specified. If both
<code>cpuset</code> and <code>placement</code> are not specified,
or if <code>placement</code> is "static", but no <code>cpuset</code>
is specified, the domain process will be pinned to all the
available physical CPUs.
</dd>
</dl>
......
......@@ -7884,19 +7884,6 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
}
}
tmp = virXPathString("string(./vcpu[1]/@cpuset)", ctxt);
if (tmp) {
char *set = tmp;
def->cpumasklen = VIR_DOMAIN_CPUMASK_LEN;
if (VIR_ALLOC_N(def->cpumask, def->cpumasklen) < 0) {
goto no_memory;
}
if (virDomainCpuSetParse(set, 0, def->cpumask,
def->cpumasklen) < 0)
goto error;
VIR_FREE(tmp);
}
tmp = virXPathString("string(./vcpu[1]/@placement)", ctxt);
if (tmp) {
if ((def->placement_mode =
......@@ -7913,6 +7900,21 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC;
}
if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC) {
tmp = virXPathString("string(./vcpu[1]/@cpuset)", ctxt);
if (tmp) {
char *set = tmp;
def->cpumasklen = VIR_DOMAIN_CPUMASK_LEN;
if (VIR_ALLOC_N(def->cpumask, def->cpumasklen) < 0) {
goto no_memory;
}
if (virDomainCpuSetParse(set, 0, def->cpumask,
def->cpumasklen) < 0)
goto error;
VIR_FREE(tmp);
}
}
/* Extract cpu tunables. */
if (virXPathULong("string(./cputune/shares[1])", ctxt,
&def->cputune.shares) < 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册