On 10/12/2012 04:44 PM, Osier Yang wrote:
When vcpu placement is "auto", the domain process will be
pinned
to advisory nodeset from querying numad, While emulatorpin will
override the pinning. That means both of them are to set the
pinning policy for domain process, but conflicts with each other.
This patch ingore emulatorpin if vcpu placement is "auto", because
s/ingore/ignores/
<vcpu> placement can't be simply ignored for
<numatune> placement
could default to it. See more details in PATCH 1/7.
---
src/conf/domain_conf.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b0b1d08..6668819 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8872,7 +8872,12 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
goto error;
}
- if (n) {
+ /* Ignore emulatorpin if <vcpu> placement is "auto", they
+ * conflicts with each other, and <vcpu> placement can't be
+ * simply ignored, as <numatune>'s placement defaults to it.
+ */
+ if (n &&
+ (def->placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO)) {
if (n > 1) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("only one emulatorpin is supported"));
I neglected to mention I wanted to have VIR_WARN there (as with the
[2/7]), sorry for that. I still think it should be there, though, so
ACK, but with that warn in there.
Martin