diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index b28ae5cae2c5eb55b37a0a692edcf3ae751eb198..65a35c3eff11fbaf595ea6ab9ce0516f7a2ea6ed 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7896,11 +7896,10 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, } VIR_FREE(tmp); } else { - if (def->cpumasklen) - def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC; + def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_DEFAULT; } - if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC) { + if (def->placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) { tmp = virXPathString("string(./vcpu[1]/@cpuset)", ctxt); if (tmp) { char *set = tmp; @@ -7912,6 +7911,8 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, def->cpumasklen) < 0) goto error; VIR_FREE(tmp); + if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_DEFAULT) + def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC; } }