conf: Don't mangle vcpu placement randomly

https://bugzilla.redhat.com/show_bug.cgi?id=1170492

In one of our previous commits (dc8b7ce7) we've done a functional
change even though it was intended as pure refactor. The problem is,
that the following XML:

 <vcpu placement='static' current='2'>6</vcpu>
 <cputune>
   <emulatorpin cpuset='1-3'/>
 </cputune>
 <numatune>
   <memory mode='strict' placement='auto'/>
 </numatune>

gets translated into this one:

 <vcpu placement='auto' current='2'>6</vcpu>
 <cputune>
   <emulatorpin cpuset='1-3'/>
 </cputune>
 <numatune>
   <memory mode='strict' placement='auto'/>
 </numatune>

We should not change the vcpu placement mode. Moreover, we're doing
something similar in case of emulatorpin and iothreadpin. If they were
set, but vcpu placement was auto, we've mistakenly removed them from
the domain XML even though we are able to set them independently on
vcpus.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik
2015-01-22 13:57:22 +01:00
parent 79a8769479
commit bbd3eb5098
5 changed files with 113 additions and 57 deletions

View File

@@ -577,14 +577,12 @@
<dt><code>emulatorpin</code></dt>
<dd>
The optional <code>emulatorpin</code> element specifies which of host
physical CPUs the "emulator", a subset of a domain not including vcpu,
will be pinned to. If this is omitted, and attribute
physical CPUs the "emulator", a subset of a domain not including vcpu
or iothreads will be pinned to. If this is omitted, and attribute
<code>cpuset</code> of element <code>vcpu</code> is not specified,
"emulator" is pinned to all the physical CPUs by default. It contains
one required attribute <code>cpuset</code> specifying which physical
CPUs to pin to. NB, <code>emulatorpin</code> is not allowed if
attribute <code>placement</code> of element <code>vcpu</code> is
"auto".
CPUs to pin to.
</dd>
<dt><code>iothreadpin</code></dt>
<dd>
@@ -598,8 +596,6 @@
<code>iothread</code> value begins at "1" through the number of
<a href="#elementsIOThreadsAllocation"><code>iothreads</code></a>
allocated to the domain. A value of "0" is not permitted.
NB, <code>iothreadpin</code> is not allowed if attribute
<code>placement</code> of element <code>vcpu</code> is "auto".
<span class="since">Since 1.2.9</span>
</dd>
<dt><code>shares</code></dt>