[libvirt] [PATCH v3] conf: Don't mangle vcpu placement randomly

Martin Kletzander mkletzan at redhat.com
Fri Jan 30 11:45:43 UTC 2015


On Thu, Jan 29, 2015 at 03:12:51PM +0100, Michal Privoznik wrote:
>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>
>

And on the subsequent edit, the emulatorpin was removed, yes.  We
could say that <vcpu placement='auto'/> is used only for vCPUs, but
that would change the current behaviour.

>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 at redhat.com>
>---
>
>diff to v2:
>-Martin's review worked in
>
> src/conf/domain_conf.c                             | 84 +++++++++-------------
> .../qemuxml2argv-cputune-numatune.xml              | 35 +++++++++
> tests/qemuxml2xmltest.c                            |  1 +
> 3 files changed, 70 insertions(+), 50 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cputune-numatune.xml
>
[...]
>diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cputune-numatune.xml b/tests/qemuxml2argvdata/qemuxml2argv-cputune-numatune.xml
>new file mode 100644
>index 0000000..9759b48
>--- /dev/null
>+++ b/tests/qemuxml2argvdata/qemuxml2argv-cputune-numatune.xml
>@@ -0,0 +1,35 @@
>+<domain type='kvm'>
>+  <name>dummy2</name>
>+  <uuid>4d92ec27-9ebf-400b-ae91-20c71c647c19</uuid>
>+  <memory unit='KiB'>131072</memory>
>+  <currentMemory unit='KiB'>65536</currentMemory>
>+  <vcpu placement='auto' current='2'>6</vcpu>
>+  <cputune>
>+    <emulatorpin cpuset='1-3'/>
>+  </cputune>
>+  <numatune>
>+    <memory mode='strict' placement='auto'/>
>+  </numatune>

You're testing that we won't remove the emulatorpin, but where's the
test that we won't change the vcpu placement?

ACK with that test added and this diff squashed in:

diff --git i/docs/formatdomain.html.in w/docs/formatdomain.html.in
index f8d5f89..c5ad6f4 100644
--- i/docs/formatdomain.html.in
+++ w/docs/formatdomain.html.in
@@ -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>
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150130/5d690feb/attachment-0001.sig>


More information about the libvir-list mailing list