This series: 0) cleans up various things (patches 1, 16) 1) Fixes and modernizes testing of iothreads (patches 2-9) 2) Cleans up unneeded iothread capabilities (patches 10 - 13) 3) Adds XML and commandline support for iothread polling attributes (patches 14-15)
4) Contains a RFC for adding iothread to virtqueue mapping for disks (patches 17-21) The last patches are RFC because the qemu implementation is not done yet. It's based on Stefan's patches which add the intrface part (see patch 21) Peter Krempa (21): conf: virDomainDiskDefDriverParseXML: Drop unused XPath infrastructure qemuxml2argvtest: Remove 'iothreads-nocap' qemuxml2(argv|xml)test: Remove 'iothreads' case qemuxml2argvtest: Modernize the rest of 'iohtreads-*' qemuxml2xmltest: Modernize iothread CWW/SCSI test cases qemuxml2(argv|xml)test: Modernize 'cputune' test cases qemuxml2(argv|xmltest): Simplify testing of scheduler settings qemuxml2argvtest: Modernize negative cputune-* cases tests: qemuxml2argvdata: Remove irrelevant <disk> from 'iothread-*' cases qemu: Always assume support for iothreads qemu: capabilities: Retire unused QEMU_CAPS_OBJECT_IOTHREAD qemu: Always assume support for QEMU_CAPS_IOTHREAD_POLLING qemu: capabilities: Retire unused QEMU_CAPS_IOTHREAD_POLLING conf: Store the iothread 'poll' settings in the XML qemu: Use configured iothread poll parameters on startup docs: formatdomain: Properly indent example XML for setting 'metadata_cache' <<< RFC starts here >>> util: xml: Introduce virXMLNodeGetSubelement qemucapabilitiesdata: Bump qemu-8.0 caps for virtqeueues qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_BLK_IOTHREAD_MAPPING conf: Add possibility to configure multiple iothreads per disk qemu: Implement support for configuring iothread to virtqueue mapping for disks docs/formatdomain.rst | 76 ++++--- src/conf/domain_conf.c | 124 ++++++++++- src/conf/domain_conf.h | 21 ++ src/conf/domain_validate.c | 8 + src/conf/schemas/domaincommon.rng | 66 ++++-- src/libvirt_private.syms | 1 + src/qemu/qemu_capabilities.c | 10 +- src/qemu/qemu_capabilities.h | 5 +- src/qemu/qemu_command.c | 63 ++++++ src/qemu/qemu_driver.c | 57 ++--- src/qemu/qemu_process.c | 23 -- src/qemu/qemu_validate.c | 117 ++++++++++- src/util/virxml.c | 29 +++ src/util/virxml.h | 4 + .../caps_4.2.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 2 - .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 2 - .../caps_4.2.0.x86_64.xml | 2 - .../caps_5.0.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 - .../caps_5.0.0.riscv64.xml | 2 - .../caps_5.0.0.x86_64.xml | 2 - .../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 2 - .../caps_5.1.0.x86_64.xml | 2 - .../caps_5.2.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 2 - .../caps_5.2.0.riscv64.xml | 2 - .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 2 - .../caps_5.2.0.x86_64.xml | 2 - .../caps_6.0.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 2 - .../caps_6.0.0.x86_64.xml | 2 - .../caps_6.1.0.x86_64.xml | 2 - .../caps_6.2.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 2 - .../caps_6.2.0.x86_64.xml | 2 - .../caps_7.0.0.aarch64.xml | 2 - .../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 2 - .../caps_7.0.0.x86_64.xml | 2 - .../qemucapabilitiesdata/caps_7.1.0.ppc64.xml | 2 - .../caps_7.1.0.x86_64.xml | 2 - .../caps_7.2.0.x86_64.xml | 2 - .../caps_8.0.0.riscv64.xml | 2 - .../caps_8.0.0.x86_64.replies | 197 +++++++++--------- .../caps_8.0.0.x86_64.xml | 5 +- tests/qemuxml2argvdata/cputune-iothreads.xml | 39 ---- ...e-iothreadsched-toomuch.x86_64-latest.err} | 0 .../cputune-iothreadsched-zeropriority.xml | 40 ---- .../cputune-iothreadsched.xml | 39 ---- tests/qemuxml2argvdata/cputune-numatune.args | 32 --- ...gs => cputune-numatune.x86_64-latest.args} | 14 +- ...utune-vcpusched-overlap.x86_64-latest.err} | 0 ...=> cputune-zero-shares.x86_64-latest.args} | 15 +- .../qemuxml2argvdata/cputune-zero-shares.xml | 4 +- ...artial.args => cputune.x86_64-latest.args} | 24 ++- tests/qemuxml2argvdata/cputune.xml | 12 +- tests/qemuxml2argvdata/iothreads-disk.args | 41 ---- .../iothreads-disk.x86_64-latest.args | 46 ++++ tests/qemuxml2argvdata/iothreads-disk.xml | 35 +++- ... iothreads-ids-partial.x86_64-latest.args} | 20 +- .../iothreads-ids-partial.xml | 10 +- ...othreads-ids-pool-sizes.x86_64-latest.args | 9 +- .../iothreads-ids-pool-sizes.xml | 18 +- ....args => iothreads-ids.x86_64-latest.args} | 17 +- tests/qemuxml2argvdata/iothreads-ids.xml | 10 +- tests/qemuxml2argvdata/iothreads-nocap.err | 1 - tests/qemuxml2argvdata/iothreads-nocap.xml | 37 ---- ...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 5 +- ...threads-virtio-scsi-pci.x86_64-latest.args | 5 +- .../iothreads-virtio-scsi-pci.xml | 6 - tests/qemuxml2argvdata/iothreads.args | 35 ---- tests/qemuxml2argvdata/iothreads.xml | 31 --- .../vcpu-placement-static.x86_64-latest.args | 39 ++++ .../vcpu-placement-static.xml | 16 ++ tests/qemuxml2argvtest.c | 24 +-- .../qemuxml2xmloutdata/cputune-iothreads.xml | 48 ----- .../cputune-iothreadsched-zeropriority.xml | 51 ----- .../cputune-iothreadsched.xml | 51 ----- ...xml => cputune-numatune.x86_64-latest.xml} | 5 +- ... => cputune-zero-shares.x86_64-latest.xml} | 9 +- ...{cputune.xml => cputune.x86_64-latest.xml} | 19 +- ...othreads-disk-virtio-ccw.s390x-latest.xml} | 4 + ...k.xml => iothreads-disk.x86_64-latest.xml} | 41 +++- ...> iothreads-ids-partial.x86_64-latest.xml} | 15 +- ...ds.xml => iothreads-ids.x86_64-latest.xml} | 15 +- ...othreads-virtio-scsi-ccw.s390x-latest.xml} | 4 + ...threads-virtio-scsi-pci.x86_64-latest.xml} | 11 +- tests/qemuxml2xmloutdata/iothreads.xml | 36 ---- ...> vcpu-placement-static.x86_64-latest.xml} | 0 tests/qemuxml2xmltest.c | 28 +-- 90 files changed, 887 insertions(+), 938 deletions(-) delete mode 100644 tests/qemuxml2argvdata/cputune-iothreads.xml rename tests/qemuxml2argvdata/{cputune-iothreadsched-toomuch.err => cputune-iothreadsched-toomuch.x86_64-latest.err} (100%) delete mode 100644 tests/qemuxml2argvdata/cputune-iothreadsched-zeropriority.xml delete mode 100644 tests/qemuxml2argvdata/cputune-iothreadsched.xml delete mode 100644 tests/qemuxml2argvdata/cputune-numatune.args rename tests/qemuxml2argvdata/{vcpu-placement-static.args => cputune-numatune.x86_64-latest.args} (55%) rename tests/qemuxml2argvdata/{cputune-vcpusched-overlap.err => cputune-vcpusched-overlap.x86_64-latest.err} (100%) rename tests/qemuxml2argvdata/{cputune-zero-shares.args => cputune-zero-shares.x86_64-latest.args} (59%) rename tests/qemuxml2argvdata/{iothreads-ids-partial.args => cputune.x86_64-latest.args} (50%) delete mode 100644 tests/qemuxml2argvdata/iothreads-disk.args create mode 100644 tests/qemuxml2argvdata/iothreads-disk.x86_64-latest.args rename tests/qemuxml2argvdata/{iothreads-ids.args => iothreads-ids-partial.x86_64-latest.args} (51%) rename tests/qemuxml2argvdata/{cputune.args => iothreads-ids.x86_64-latest.args} (55%) delete mode 100644 tests/qemuxml2argvdata/iothreads-nocap.err delete mode 100644 tests/qemuxml2argvdata/iothreads-nocap.xml delete mode 100644 tests/qemuxml2argvdata/iothreads.args delete mode 100644 tests/qemuxml2argvdata/iothreads.xml create mode 100644 tests/qemuxml2argvdata/vcpu-placement-static.x86_64-latest.args delete mode 100644 tests/qemuxml2xmloutdata/cputune-iothreads.xml delete mode 100644 tests/qemuxml2xmloutdata/cputune-iothreadsched-zeropriority.xml delete mode 100644 tests/qemuxml2xmloutdata/cputune-iothreadsched.xml rename tests/qemuxml2xmloutdata/{cputune-numatune.xml => cputune-numatune.x86_64-latest.xml} (86%) rename tests/qemuxml2xmloutdata/{cputune-zero-shares.xml => cputune-zero-shares.x86_64-latest.xml} (84%) rename tests/qemuxml2xmloutdata/{cputune.xml => cputune.x86_64-latest.xml} (68%) rename tests/qemuxml2xmloutdata/{iothreads-disk-virtio-ccw.xml => iothreads-disk-virtio-ccw.s390x-latest.xml} (89%) rename tests/qemuxml2xmloutdata/{iothreads-disk.xml => iothreads-disk.x86_64-latest.xml} (58%) rename tests/qemuxml2xmloutdata/{iothreads-ids-partial.xml => iothreads-ids-partial.x86_64-latest.xml} (72%) rename tests/qemuxml2xmloutdata/{iothreads-ids.xml => iothreads-ids.x86_64-latest.xml} (71%) rename tests/qemuxml2xmloutdata/{iothreads-virtio-scsi-ccw.xml => iothreads-virtio-scsi-ccw.s390x-latest.xml} (90%) rename tests/qemuxml2xmloutdata/{iothreads-virtio-scsi-pci.xml => iothreads-virtio-scsi-pci.x86_64-latest.xml} (85%) delete mode 100644 tests/qemuxml2xmloutdata/iothreads.xml rename tests/qemuxml2xmloutdata/{vcpu-placement-static.xml => vcpu-placement-static.x86_64-latest.xml} (100%) -- 2.39.2