[libvirt] [PATCH v4 5/9] conf: Adjust the iothreadsched expectations

John Ferlan jferlan at redhat.com
Tue Apr 21 23:31:26 UTC 2015


With iothreadid's allowing any 'id' value for an iothread_id, the
iothreadsched code needs a slight adjustment to allow for "any"
unsigned int value in order to create the bitmap of ids that will
have scheduler adjustments. Adjusted the doc description as well.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 docs/formatdomain.html.in                                           | 6 +++++-
 src/conf/domain_conf.c                                              | 2 +-
 .../qemuxml2argvdata/qemuxml2argv-cputune-iothreadsched-toomuch.xml | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 7af6bd7..99ce298 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -691,7 +691,11 @@
         type (values <code>batch</code>, <code>idle</code>, <code>fifo</code>,
         <code>rr</code>) for particular vCPU/IOThread threads (based on
         <code>vcpus</code> and <code>iothreads</code>, leaving out
-        <code>vcpus</code>/<code>iothreads</code> sets the default).  For
+        <code>vcpus</code>/<code>iothreads</code> sets the default). Valid
+        <code>vcpus</code> values start at 0 through one less than the
+        number of vCPU's defined for the domain. Valid <code>iothreads</code>
+        values are described in the <code>iothreadids</code>
+        <a href="#elementsIOThreadsAllocation"><code>description</code></a>. For
         real-time schedulers (<code>fifo</code>, <code>rr</code>), priority must
         be specified as well (and is ignored for non-real-time ones). The value
         range for the priority depends on the host kernel (usually 1-99).
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 969e56f..3e8551b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14313,7 +14313,7 @@ virDomainDefParseXML(xmlDocPtr xml,
 
         for (i = 0; i < def->cputune.niothreadsched; i++) {
             if (virDomainThreadSchedParse(nodes[i],
-                                          1, def->iothreads,
+                                          1, UINT_MAX,
                                           "iothreads",
                                           &def->cputune.iothreadsched[i]) < 0)
                 goto error;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreadsched-toomuch.xml b/tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreadsched-toomuch.xml
index 1540969..97a5cde 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreadsched-toomuch.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreadsched-toomuch.xml
@@ -13,6 +13,7 @@
     <vcpupin vcpu='1' cpuset='1'/>
     <emulatorpin cpuset='1'/>
     <vcpusched vcpus='0-1' scheduler='fifo' priority='1'/>
+    <iothreadsched iothreads='1' scheduler='batch'/>
     <iothreadsched iothreads='2' scheduler='batch'/>
   </cputune>
   <os>
-- 
2.1.0




More information about the libvir-list mailing list