There was at first only iothreads element in the XML. Because
iothreads are used by theirs ids we should always print them in
the XML even if they are auto-generated.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/conf/domain_conf.c | 32 +++++-----------------
src/conf/domain_conf.h | 1 -
src/qemu/qemu_driver.c | 2 --
src/qemu/qemu_process.c | 5 ++--
.../qemuxml2xmlout-cputune-iothreads.xml | 4 +++
...l2xmlout-cputune-iothreadsched-zeropriority.xml | 6 ++++
.../qemuxml2xmlout-cputune-iothreadsched.xml | 6 ++++
.../qemuxml2xmlout-cputune-numatune.xml | 4 +++
.../qemuxml2xmlout-iothreads-disk-virtio-ccw.xml | 4 +++
.../qemuxml2xmlout-iothreads-disk.xml | 4 +++
.../qemuxml2xmlout-iothreads-ids-partial.xml | 2 ++
.../qemuxml2xmlout-iothreads-virtio-scsi-ccw.xml | 4 +++
.../qemuxml2xmlout-iothreads-virtio-scsi-pci.xml | 4 +++
.../qemuxml2xmlout-iothreads.xml | 4 +++
.../qemuxml2xmlout-vcpu-placement-static.xml | 4 +++
15 files changed, 55 insertions(+), 31 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 69db692217..ab0e19ef16 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2623,7 +2623,6 @@ virDomainIOThreadIDDefArrayInit(virDomainDefPtr def,
if (VIR_ALLOC(iothrid) < 0)
goto error;
iothrid->iothread_id = nxt;
- iothrid->autofill = true;
pos = virDomainIOThreadInsertGetPos(def, iothrid);
@@ -20216,18 +20215,10 @@ void
virDomainIOThreadIDDel(virDomainDefPtr def,
unsigned int iothread_id)
{
- size_t i, j;
+ size_t i;
for (i = 0; i < def->niothreadids; i++) {
if (def->iothreadids[i]->iothread_id == iothread_id) {
- /* If we were sequential and removed a threadid in the
- * beginning or middle of the list, then unconditionally
- * clear the autofill flag so we don't lose these
- * definitions for XML formatting.
- */
- for (j = i + 1; j < def->niothreadids; j++)
- def->iothreadids[j]->autofill = false;
-
virDomainIOThreadIDDefFree(def->iothreadids[i]);
VIR_DELETE_ELEMENT(def->iothreadids, i, def->niothreadids);
@@ -23873,23 +23864,14 @@ virDomainDefFormatInternal(virDomainDefPtr def,
if (def->niothreadids > 0) {
virBufferAsprintf(buf, "<iothreads>%lu</iothreads>\n",
def->niothreadids);
- /* Only print out iothreadids if we read at least one */
+ virBufferAddLit(buf, "<iothreadids>\n");
+ virBufferAdjustIndent(buf, 2);
for (i = 0; i < def->niothreadids; i++) {
- if (!def->iothreadids[i]->autofill)
- break;
- }
- if (i < def->niothreadids) {
- virBufferAddLit(buf, "<iothreadids>\n");
- virBufferAdjustIndent(buf, 2);
- for (i = 0; i < def->niothreadids; i++) {
- if (def->iothreadids[i]->autofill)
- continue;
- virBufferAsprintf(buf, "<iothread id='%u'/>\n",
- def->iothreadids[i]->iothread_id);
- }
- virBufferAdjustIndent(buf, -2);
- virBufferAddLit(buf, "</iothreadids>\n");
+ virBufferAsprintf(buf, "<iothread id='%u'/>\n",
+ def->iothreadids[i]->iothread_id);
}
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</iothreadids>\n");
}
if (virDomainCputuneDefFormat(buf, def) < 0)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 8ff2de8c25..63faec499a 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2068,7 +2068,6 @@ typedef struct _virDomainIOThreadIDDef virDomainIOThreadIDDef;
typedef virDomainIOThreadIDDef *virDomainIOThreadIDDefPtr;
struct _virDomainIOThreadIDDef {
- bool autofill;
unsigned int iothread_id;
int thread_id;
virBitmapPtr cpumask;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 661f6f5d34..3f0237da48 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5496,7 +5496,6 @@ qemuDomainPinIOThread(virDomainPtr dom,
virBitmapFree(iothrid->cpumask);
iothrid->cpumask = cpumask;
- iothrid->autofill = false;
/* Configure the corresponding cpuset cgroup before set affinity. */
if (virCgroupHasController(priv->cgroup,
@@ -5546,7 +5545,6 @@ qemuDomainPinIOThread(virDomainPtr dom,
virBitmapFree(iothrid->cpumask);
iothrid->cpumask = cpumask;
- iothrid->autofill = false;
ret = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef);
goto endjob;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 62f0b9b630..2a65e9043c 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2115,9 +2115,8 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver,
/* Check if the domain had defined any iothreadid elements
* and supply a VIR_INFO indicating that it's being removed.
*/
- if (!vm->def->iothreadids[i]->autofill)
- VIR_INFO("IOThreads not supported, remove iothread id
'%u'",
- vm->def->iothreadids[i]->iothread_id);
+ VIR_INFO("IOThreads not supported, remove iothread id
'%u'",
+ vm->def->iothreadids[i]->iothread_id);
virDomainIOThreadIDDefFree(vm->def->iothreadids[i]);
}
/* Remove any trace */
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreads.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreads.xml
index 6c95e05131..bf8fa0b1de 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreads.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreads.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<cputune>
<shares>2048</shares>
<period>1000000</period>
diff --git
a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched-zeropriority.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched-zeropriority.xml
index 794a52d571..6547f96835 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched-zeropriority.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched-zeropriority.xml
@@ -5,6 +5,12 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>4</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ <iothread id='3'/>
+ <iothread id='4'/>
+ </iothreadids>
<cputune>
<shares>2048</shares>
<period>1000000</period>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched.xml
index cd1dc87b52..0c1479f199 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreadsched.xml
@@ -5,6 +5,12 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>4</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ <iothread id='3'/>
+ <iothread id='4'/>
+ </iothreadids>
<cputune>
<shares>2048</shares>
<period>1000000</period>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-numatune.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-numatune.xml
index ff987e7d59..a77eeab934 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-numatune.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-numatune.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>65536</currentMemory>
<vcpu placement='auto' current='2'>6</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<cputune>
<emulatorpin cpuset='1-3'/>
<iothreadpin iothread='1' cpuset='2'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk-virtio-ccw.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk-virtio-ccw.xml
index f6d103978d..de5d276ecb 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk-virtio-ccw.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk-virtio-ccw.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>1</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<os>
<type arch='s390x' machine='s390-ccw'>hvm</type>
<boot dev='hd'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk.xml
index 0eb45b7d15..0b001b9fd3 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-disk.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='hd'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-ids-partial.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-ids-partial.xml
index d6deced96a..57f3be96fc 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-ids-partial.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-ids-partial.xml
@@ -6,6 +6,8 @@
<vcpu placement='static'>2</vcpu>
<iothreads>4</iothreads>
<iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
<iothread id='5'/>
<iothread id='6'/>
</iothreadids>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-ccw.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-ccw.xml
index 5e91f1c4aa..161dec9bce 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-ccw.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-ccw.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>1</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<os>
<type arch='s390x' machine='s390-ccw'>hvm</type>
<boot dev='hd'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-pci.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-pci.xml
index d8306d4304..c3051599b2 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-pci.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads-virtio-scsi-pci.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='hd'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads.xml
index 5c5d9dbdb1..ff4ae53366 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-iothreads.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>219136</currentMemory>
<vcpu placement='static'>2</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='hd'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-vcpu-placement-static.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-vcpu-placement-static.xml
index c6471e3a07..9949b17eb6 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-vcpu-placement-static.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-vcpu-placement-static.xml
@@ -5,6 +5,10 @@
<currentMemory unit='KiB'>65536</currentMemory>
<vcpu placement='static' current='2'>6</vcpu>
<iothreads>2</iothreads>
+ <iothreadids>
+ <iothread id='1'/>
+ <iothread id='2'/>
+ </iothreadids>
<cputune>
<emulatorpin cpuset='1-3'/>
<iothreadpin iothread='1' cpuset='2'/>
--
2.11.1