[PATCH 00/31] qemu: Improve handling of architecture-specific defaults (USB and PCI)

Andrea Bolognani via Devel posted 31 patches 2 weeks, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20250819162235.468215-1-abologna@redhat.com
.../usb-controller-nec-xhci-limit.xml         |   2 -
.../usb-controller-nec-xhci.x86_64-latest.xml |   2 +-
.../usb-controller-nec-xhci.xml               |   7 -
.../usb-controller-piix3.x86_64-latest.args   |   1 -
.../usb-controller-piix3.x86_64-latest.xml    |   4 +-
.../qemuxmlconfdata/usb-controller-piix3.xml  |   4 +-
tests/qemuxmlconftest.c                       | 128 ++++++++++-----
206 files changed, 897 insertions(+), 1601 deletions(-)
delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.args
delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.xml
delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/isapc-pci.x86_64-latest.err
copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => isapc-pci.xml} (64%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.x86_64-latest.args => usb-controller-automatic-i440fx.x86_64-latest.args} (100%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.x86_64-latest.xml => usb-controller-automatic-i440fx.x86_64-latest.xml} (100%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-i440fx.xml} (83%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-isapc.x86_64-latest.args} (100%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-isapc.x86_64-latest.xml} (100%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.xml => usb-controller-automatic-isapc.xml} (83%)
copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.abi-update.args => usb-controller-automatic-pseries.ppc64-latest.abi-update.args} (93%)
rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-pseries.ppc64-latest.xml => usb-controller-automatic-pseries.ppc64-latest.abi-update.xml} (77%)
copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.args => usb-controller-automatic-pseries.ppc64-latest.args} (93%)
copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.xml => usb-controller-automatic-pseries.ppc64-latest.xml} (80%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-pseries.xml} (50%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-automatic-q35.x86_64-latest.args} (100%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-automatic-q35.x86_64-latest.xml} (100%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.xml => usb-controller-automatic-q35.xml} (83%)
copy tests/qemuxmlconfdata/{aarch64-realview-minimal.aarch64-latest.abi-update.args => usb-controller-automatic-realview.aarch64-latest.args} (89%)
rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-aarch64.aarch64-latest.xml => usb-controller-automatic-realview.aarch64-latest.xml} (93%)
rename tests/qemuxmlconfdata/{aarch64-versatilepb-minimal.xml => usb-controller-automatic-realview.xml} (85%)
copy tests/qemuxmlconfdata/{ppc-mac99-minimal.ppc-latest.abi-update.args => usb-controller-automatic-s390x.s390x-latest.args} (70%)
copy tests/qemuxmlconfdata/{s390-usb-address.s390x-latest.xml => usb-controller-automatic-s390x.s390x-latest.xml} (59%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-s390x.xml
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-pseries.ppc64-latest.abi-update.err} (100%)
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-pseries.ppc64-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-pseries.xml
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-realview.aarch64-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.xml
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.xml
rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-armv7l.armv7l-latest.args => usb-controller-automatic-versatilepb.armv7l-latest.args} (94%)
rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.xml => usb-controller-automatic-versatilepb.armv7l-latest.xml} (93%)
copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.xml => usb-controller-automatic-versatilepb.xml} (100%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-aarch64.aarch64-latest.args} (52%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-aarch64.aarch64-latest.xml} (63%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-virt-aarch64.xml
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-loongarch64.loongarch64-latest.args} (52%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-loongarch64.loongarch64-latest.xml} (63%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-virt-loongarch64.xml
rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-riscv64.riscv64-latest.args} (52%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-riscv64.riscv64-latest.xml} (67%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-virt-riscv64.xml} (53%)
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-armv7l.xml
rename tests/qemuxmlconfdata/{usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.args => usb-controller-default-fallback-versatilepb.armv7l-latest.args} (100%)
copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.armv7l-latest.abi-update.xml => usb-controller-default-fallback-versatilepb.armv7l-latest.xml} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb.xml
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-fallback-virt-aarch64.aarch64-latest.args} (50%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-fallback-virt-aarch64.aarch64-latest.xml} (60%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-virt-aarch64.xml
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-fallback-virt-riscv64.riscv64-latest.args} (50%)
rename tests/qemuxmlconfdata/{usb-controller-nec-xhci-unavailable.x86_64-latest.xml => usb-controller-default-fallback-virt-riscv64.riscv64-latest.xml} (53%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-virt-riscv64.xml
copy tests/qemuxmlconfdata/{usb-controller-default-isapc.x86_64-latest.err => usb-controller-default-nousb.aarch64-latest.abi-update.err} (100%)
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.err
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.xml
copy tests/qemuxmlconfdata/{ppc-mac99-minimal.ppc-latest.abi-update.args => usb-controller-default-s390x.s390x-latest.args} (70%)
copy tests/qemuxmlconfdata/{s390-usb-address.s390x-latest.xml => usb-controller-default-s390x.s390x-latest.xml} (59%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-s390x.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-g3beige.ppc64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-i440fx.x86_64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99.ppc64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99ppc.ppc-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-powernv9.ppc64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-q35.x86_64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-realview.aarch64-latest.err} (100%)
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.xml
delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-armv7l.xml
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-versatilepb.armv7l-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb.xml
copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-virt-aarch64.aarch64-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-virt-aarch64.xml
rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-virt-riscv64.riscv64-latest.err} (100%)
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-virt-riscv64.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.aarch64-latest.args
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.xml
delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-armv7l.armv7l-latest.xml
copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.armv7l-latest.abi-update.args => usb-controller-default-versatilepb.armv7l-latest.args} (94%)
rename tests/qemuxmlconfdata/{usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.xml => usb-controller-default-versatilepb.armv7l-latest.xml} (93%)
rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-armv7l.xml => usb-controller-default-versatilepb.xml} (87%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-aarch64.aarch64-latest.args} (55%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-aarch64.aarch64-latest.xml} (63%)
copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-aarch64.xml} (50%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-loongarch64.loongarch64-latest.args} (55%)
copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-loongarch64.loongarch64-latest.xml} (63%)
copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-loongarch64.xml} (50%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-riscv64.riscv64-latest.args} (55%)
rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-riscv64.riscv64-latest.xml} (65%)
copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-riscv64.xml} (57%)
rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.x86_64-latest.args => usb-controller-nec-xhci-autoassign.x86_64-latest.args} (100%)
rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.x86_64-latest.xml => usb-controller-nec-xhci-autoassign.x86_64-latest.xml} (100%)
rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.xml => usb-controller-nec-xhci-autoassign.xml} (64%)
[PATCH 00/31] qemu: Improve handling of architecture-specific defaults (USB and PCI)
Posted by Andrea Bolognani via Devel 2 weeks, 4 days ago
Just like the series dealing with [SCSI] from last month, this is an
effort to complete work that I had started in early 2024 ([v2], [v1])
and then promptly forgot about.

Dealing with USB controllers is a lot easier compared to a year and a
half ago because Peter has already brought some much-needed sanity to
their handling in the meantime, including finally removing all uses
of -usb, but there's still room for improvement.

Looking at USB controllers made me realize that we were doing things
incorrectly or suboptimally on the PCI side as well, so there are a
number of changes in that part of libvirt too.

Since USB controllers are PCI devices, some of the changes in one
area directly affect the other one and it would have been challening
to separate these patches into two smaller series in a way that would
make sense, so unfortunately you get a single big one instead. Sorry.

[SCSI] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/AL6GJBPRILIW36ANN7PABTI26JO3OTKB/
[v2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/FZ6BTIXG26SLVIX6AYSBZH3NCLWJKIYM/
[v1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/G53MRO2IEJOS3M53OKON2S5RM2MPH55K/

Andrea Bolognani (31):
  tests: Fix typo in usb-controller-nec-xhci-autoassign
  tests: Drop coverage for versatilepb on aarch64
  tests: Don't use memballoon=none for minimal tests
  tests: Don't set PCI address in usb-controller-default tests
  tests: Minimize usb-controller tests
  tests: Rename usb-controller-implicit-*
  tests: Expand coverage for automatic/default USB controllers
  tests: Fix some usb-controller-*-unavailable cases
  qemu: Check for pci-ohci availability
  tests: Use realview-eb instead of realview-pbx-a9
  qemu: Fix PCI/USB handling for Arm realview boards
  tests: Add coverage for PCI use with isapc
  qemu: Don't add memballoon to isapc
  qemu: Introduce qemuDomainNetIsPCI()
  qemu: Prevent use of PCI devices when PCI is not supported
  qemu: Validate presence of PCI support
  qemu: Update qemuDomainSupportsPCI()
  qemu: Add sanity checks for auto-added PCI and USB controllers
  qemu: Ensure USB controllers have a PCI address assigned
  qemu: Always default to no USB controller on s390x
  qemu: Drop skip for USB controllers on s390x
  qemu: Fold check into qemuBuildSkipController()
  qemu: Validate USB controllers earlier
  qemu: Add qemuDomainDefaultUSBControllerModel()
  qemu: Add qemuDomainDefaultUSBControllerModelAutoAdded()
  qemu: Clean up qemuDomainDefaultUSBControllerModel()
  qemu: Use qemu-xhci by default on RISC-V
  qemu: Allow nec-xhci as fallback for modern architectures
  qemu: Remove fallback to piix3-uhci for Arm virt guests
  qemu: Finish cleaning up qemuDomainDefaultUSBControllerModel()
  news: Update for USB controller model selection improvements

 NEWS.rst                                      |   6 +
 src/qemu/qemu_command.c                       |  86 +---------
 src/qemu/qemu_domain.c                        | 151 +++++++++++++++++-
 src/qemu/qemu_domain.h                        |   5 +
 src/qemu/qemu_domain_address.c                |  80 ++++++++--
 src/qemu/qemu_postparse.c                     | 137 +++++++---------
 src/qemu/qemu_validate.c                      |  83 +++++++++-
 .../qemuhotplug-base-ccw-live+ccw-virtio.xml  |   5 +-
 ...with-2-ccw-virtio+ccw-virtio-1-reverse.xml |   5 +-
 ...otplug-base-ccw-live-with-2-ccw-virtio.xml |   5 +-
 ...-with-ccw-virtio+ccw-virtio-2-explicit.xml |   5 +-
 ...-ccw-live-with-ccw-virtio+ccw-virtio-2.xml |   5 +-
 ...uhotplug-base-ccw-live-with-ccw-virtio.xml |   5 +-
 .../qemuhotplug-base-ccw-live.xml             |   5 +-
 ...ousb-minimal.aarch64-latest.abi-update.xml |   1 -
 .../aarch64-nousb-minimal.aarch64-latest.xml  |   1 -
 .../qemuxmlconfdata/aarch64-nousb-minimal.xml |   1 -
 ...iew-minimal.aarch64-latest.abi-update.args |   4 +-
 ...view-minimal.aarch64-latest.abi-update.xml |   8 +-
 ...rch64-realview-minimal.aarch64-latest.args |   4 +-
 ...arch64-realview-minimal.aarch64-latest.xml |   8 +-
 .../aarch64-realview-minimal.xml              |   3 +-
 ...epb-minimal.aarch64-latest.abi-update.args |  32 ----
 ...lepb-minimal.aarch64-latest.abi-update.xml |  25 ---
 ...64-versatilepb-minimal.aarch64-latest.args |  32 ----
 ...h64-versatilepb-minimal.aarch64-latest.xml |  25 ---
 ...lepb-minimal.armv7l-latest.abi-update.args |   2 +-
 ...ilepb-minimal.armv7l-latest.abi-update.xml |   3 +-
 ...v7l-versatilepb-minimal.armv7l-latest.args |   2 +-
 ...mv7l-versatilepb-minimal.armv7l-latest.xml |   3 +-
 .../armv7l-versatilepb-minimal.xml            |   1 -
 .../isapc-pci.x86_64-latest.err               |   1 +
 ...roller-default-isapc.xml => isapc-pci.xml} |   7 +-
 tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args |   2 +-
 tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml  |   2 +-
 ...c-mac99-minimal.ppc-latest.abi-update.args |   2 +-
 ...pc-mac99-minimal.ppc-latest.abi-update.xml |   2 +-
 .../ppc-mac99-minimal.ppc-latest.args         |   2 +-
 .../ppc-mac99-minimal.ppc-latest.xml          |   2 +-
 .../ppce500-serial.ppc-latest.args            |   2 +-
 .../ppce500-serial.ppc-latest.xml             |   2 +-
 ...ault-models.riscv64-latest.abi-update.args |  15 +-
 ...fault-models.riscv64-latest.abi-update.xml |  26 ++-
 ...64-virt-default-models.riscv64-latest.args |  15 +-
 ...v64-virt-default-models.riscv64-latest.xml |  26 ++-
 .../s390-usb-address.s390x-latest.xml         |   6 +-
 ...oller-automatic-i440fx.x86_64-latest.args} |   0
 ...roller-automatic-i440fx.x86_64-latest.xml} |   0
 ...ml => usb-controller-automatic-i440fx.xml} |   2 -
 ...roller-automatic-isapc.x86_64-latest.args} |   0
 ...troller-automatic-isapc.x86_64-latest.xml} |   0
 ...xml => usb-controller-automatic-isapc.xml} |   2 -
 ...atic-pseries.ppc64-latest.abi-update.args} |   1 -
 ...matic-pseries.ppc64-latest.abi-update.xml} |  13 +-
 ...oller-automatic-pseries.ppc64-latest.args} |   1 -
 ...roller-automatic-pseries.ppc64-latest.xml} |  11 +-
 ...l => usb-controller-automatic-pseries.xml} |   8 +-
 ...ntroller-automatic-q35.x86_64-latest.args} |   0
 ...ontroller-automatic-q35.x86_64-latest.xml} |   0
 ...5.xml => usb-controller-automatic-q35.xml} |   2 -
 ...er-automatic-realview.aarch64-latest.args} |   4 +-
 ...ler-automatic-realview.aarch64-latest.xml} |   4 +-
 ... => usb-controller-automatic-realview.xml} |   2 +-
 ...troller-automatic-s390x.s390x-latest.args} |  11 +-
 ...ntroller-automatic-s390x.s390x-latest.xml} |  15 +-
 .../usb-controller-automatic-s390x.xml        |  13 ++
 ...lable-pseries.ppc64-latest.abi-update.err} |   0
 ...atic-unavailable-pseries.ppc64-latest.err} |   0
 ...ntroller-automatic-unavailable-pseries.xml |   1 +
 ...utomatic-unavailable-q35.x86_64-latest.xml |   2 +-
 ...b-controller-automatic-unavailable-q35.xml |   7 -
 ...c-unavailable-realview.aarch64-latest.err} |   0
 ...troller-automatic-unavailable-realview.xml |   1 +
 ...unavailable-versatilepb.armv7l-latest.err} |   0
 ...ller-automatic-unavailable-versatilepb.xml |   1 +
 ...-automatic-versatilepb.armv7l-latest.args} |   2 +-
 ...r-automatic-versatilepb.armv7l-latest.xml} |   4 +-
 ... usb-controller-automatic-versatilepb.xml} |   0
 ...utomatic-virt-aarch64.aarch64-latest.args} |  20 +--
 ...automatic-virt-aarch64.aarch64-latest.xml} |  15 +-
 .../usb-controller-automatic-virt-aarch64.xml |  12 ++
 ...-virt-loongarch64.loongarch64-latest.args} |  20 +--
 ...c-virt-loongarch64.loongarch64-latest.xml} |  12 +-
 ...-controller-automatic-virt-loongarch64.xml |  12 ++
 ...utomatic-virt-riscv64.riscv64-latest.args} |  20 +--
 ...automatic-virt-riscv64.riscv64-latest.xml} |  11 +-
 ...usb-controller-automatic-virt-riscv64.xml} |   8 +-
 ...default-fallback-g3beige.ppc64-latest.args |   1 -
 ...-default-fallback-g3beige.ppc64-latest.xml |  11 +-
 ...r-default-fallback-mac99.ppc64-latest.args |   1 -
 ...er-default-fallback-mac99.ppc64-latest.xml |  11 +-
 ...-default-fallback-mac99ppc.ppc-latest.args |   1 -
 ...r-default-fallback-mac99ppc.ppc-latest.xml |  11 +-
 ...default-fallback-nousb.aarch64-latest.args |  32 ----
 ...-default-fallback-nousb.aarch64-latest.xml |  23 ---
 .../usb-controller-default-fallback-nousb.xml |   1 -
 ...efault-fallback-powernv9.ppc64-latest.args |   1 -
 ...default-fallback-powernv9.ppc64-latest.xml |  11 +-
 ...ault-fallback-realview.aarch64-latest.args |   4 +-
 ...fault-fallback-realview.aarch64-latest.xml |   6 +-
 ...ck-versatilepb-aarch64.aarch64-latest.args |  32 ----
 ...ack-versatilepb-aarch64.aarch64-latest.xml |  25 ---
 ...r-default-fallback-versatilepb-aarch64.xml |   1 -
 ...er-default-fallback-versatilepb-armv7l.xml |   1 -
 ...t-fallback-versatilepb.armv7l-latest.args} |   0
 ...lt-fallback-versatilepb.armv7l-latest.xml} |   0
 ...ontroller-default-fallback-versatilepb.xml |   1 +
 ...fallback-virt-aarch64.aarch64-latest.args} |  28 ++--
 ...-fallback-virt-aarch64.aarch64-latest.xml} |  26 ++-
 ...ntroller-default-fallback-virt-aarch64.xml |   1 +
 ...fallback-virt-riscv64.riscv64-latest.args} |  28 ++--
 ...-fallback-virt-riscv64.riscv64-latest.xml} |  26 +--
 ...ntroller-default-fallback-virt-riscv64.xml |   1 +
 ...ntroller-default-g3beige.ppc64-latest.args |   1 -
 ...ontroller-default-g3beige.ppc64-latest.xml |  11 +-
 .../usb-controller-default-g3beige.xml        |  11 +-
 ...ntroller-default-i440fx.x86_64-latest.args |   1 -
 ...ontroller-default-i440fx.x86_64-latest.xml |   4 +-
 .../usb-controller-default-i440fx.xml         |   8 +-
 ...controller-default-isapc.x86_64-latest.err |   2 +-
 .../usb-controller-default-isapc.xml          |   2 -
 ...controller-default-mac99.ppc64-latest.args |   1 -
 ...-controller-default-mac99.ppc64-latest.xml |  11 +-
 .../usb-controller-default-mac99.xml          |  11 +-
 ...ontroller-default-mac99ppc.ppc-latest.args |   3 +-
 ...controller-default-mac99ppc.ppc-latest.xml |  13 +-
 .../usb-controller-default-mac99ppc.xml       |  11 +-
 ...fault-nousb.aarch64-latest.abi-update.err} |   0
 ...ntroller-default-nousb.aarch64-latest.args |  32 ----
 ...ontroller-default-nousb.aarch64-latest.err |   1 +
 ...ontroller-default-nousb.aarch64-latest.xml |  23 ---
 .../usb-controller-default-nousb.xml          |   1 -
 ...troller-default-powernv9.ppc64-latest.args |   1 -
 ...ntroller-default-powernv9.ppc64-latest.xml |  11 +-
 .../usb-controller-default-powernv9.xml       |  11 +-
 ...fault-pseries.ppc64-latest.abi-update.args |   1 -
 ...efault-pseries.ppc64-latest.abi-update.xml |  11 +-
 ...ntroller-default-pseries.ppc64-latest.args |   1 -
 ...ontroller-default-pseries.ppc64-latest.xml |  11 +-
 .../usb-controller-default-pseries.xml        |  18 +--
 ...-controller-default-q35.x86_64-latest.args |   5 +-
 ...b-controller-default-q35.x86_64-latest.xml |  18 ++-
 .../usb-controller-default-q35.xml            |  11 +-
 ...oller-default-realview.aarch64-latest.args |   4 +-
 ...roller-default-realview.aarch64-latest.xml |   6 +-
 .../usb-controller-default-realview.xml       |   3 +-
 ...ontroller-default-s390x.s390x-latest.args} |  11 +-
 ...controller-default-s390x.s390x-latest.xml} |  16 +-
 .../usb-controller-default-s390x.xml          |  14 ++
 ...fault-unavailable-g3beige.ppc64-latest.xml |  34 ----
 ...fault-unavailable-i440fx.x86_64-latest.xml |  31 ----
 ...default-unavailable-mac99.ppc64-latest.xml |  34 ----
 ...efault-unavailable-mac99ppc.ppc-latest.xml |  31 ----
 ...ault-unavailable-nousb.aarch64-latest.args |  32 ----
 ...fault-unavailable-nousb.aarch64-latest.xml |  23 ---
 ...b-controller-default-unavailable-nousb.xml |   1 -
 ...ault-unavailable-powernv9.ppc64-latest.xml |  34 ----
 ...-default-unavailable-q35.x86_64-latest.xml |  33 ----
 ...t-unavailable-realview.aarch64-latest.args |  31 ----
 ...t-unavailable-realview.aarch64-latest.err} |   0
 ...lt-unavailable-realview.aarch64-latest.xml |  23 ---
 ...le-versatilepb-aarch64.aarch64-latest.args |  32 ----
 ...ble-versatilepb-aarch64.aarch64-latest.xml |  25 ---
 ...efault-unavailable-versatilepb-aarch64.xml |   1 -
 ...default-unavailable-versatilepb-armv7l.xml |   1 -
 ...unavailable-versatilepb.armv7l-latest.err} |   0
 ...roller-default-unavailable-versatilepb.xml |   1 +
 ...available-virt-aarch64.aarch64-latest.err} |   0
 ...oller-default-unavailable-virt-aarch64.xml |   1 +
 ...available-virt-riscv64.riscv64-latest.err} |   0
 ...oller-default-unavailable-virt-riscv64.xml |   1 +
 ...lt-versatilepb-aarch64.aarch64-latest.args |  32 ----
 ...controller-default-versatilepb-aarch64.xml |  16 --
 ...fault-versatilepb-armv7l.armv7l-latest.xml |  27 ----
 ...er-default-versatilepb.armv7l-latest.args} |   2 +-
 ...ler-default-versatilepb.armv7l-latest.xml} |   4 +-
 ...=> usb-controller-default-versatilepb.xml} |   1 -
 ...-default-virt-aarch64.aarch64-latest.args} |  26 ++-
 ...r-default-virt-aarch64.aarch64-latest.xml} |  24 ++-
 ...> usb-controller-default-virt-aarch64.xml} |   9 +-
 ...-virt-loongarch64.loongarch64-latest.args} |  26 ++-
 ...t-virt-loongarch64.loongarch64-latest.xml} |  21 +--
 ...b-controller-default-virt-loongarch64.xml} |   9 +-
 ...-default-virt-riscv64.riscv64-latest.args} |  26 ++-
 ...r-default-virt-riscv64.riscv64-latest.xml} |  20 +--
 ...> usb-controller-default-virt-riscv64.xml} |   8 +-
 ...troller-ich9-autoassign.x86_64-latest.args |   1 -
 ...ntroller-ich9-autoassign.x86_64-latest.xml |   4 +-
 .../usb-controller-ich9-autoassign.xml        |  16 +-
 ...ntroller-ich9-companion.x86_64-latest.args |   1 -
 ...ontroller-ich9-companion.x86_64-latest.xml |   4 +-
 .../usb-controller-ich9-companion.xml         |   4 +-
 ...ntroller-ich9-ehci-addr.x86_64-latest.args |   1 -
 ...ontroller-ich9-ehci-addr.x86_64-latest.xml |   4 +-
 .../usb-controller-ich9-ehci-addr.xml         |   4 +-
 .../usb-controller-ich9-no-companion.xml      |   6 +-
 ...er-nec-xhci-autoassign.x86_64-latest.args} |   0
 ...ler-nec-xhci-autoassign.x86_64-latest.xml} |   0
 ...=> usb-controller-nec-xhci-autoassign.xml} |  14 +-
 .../usb-controller-nec-xhci-limit.xml         |   2 -
 .../usb-controller-nec-xhci.x86_64-latest.xml |   2 +-
 .../usb-controller-nec-xhci.xml               |   7 -
 .../usb-controller-piix3.x86_64-latest.args   |   1 -
 .../usb-controller-piix3.x86_64-latest.xml    |   4 +-
 .../qemuxmlconfdata/usb-controller-piix3.xml  |   4 +-
 tests/qemuxmlconftest.c                       | 128 ++++++++++-----
 206 files changed, 897 insertions(+), 1601 deletions(-)
 delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.args
 delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.xml
 delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/isapc-pci.x86_64-latest.err
 copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => isapc-pci.xml} (64%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.x86_64-latest.args => usb-controller-automatic-i440fx.x86_64-latest.args} (100%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.x86_64-latest.xml => usb-controller-automatic-i440fx.x86_64-latest.xml} (100%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-i440fx.xml} (83%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-isapc.x86_64-latest.args} (100%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-isapc.x86_64-latest.xml} (100%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.xml => usb-controller-automatic-isapc.xml} (83%)
 copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.abi-update.args => usb-controller-automatic-pseries.ppc64-latest.abi-update.args} (93%)
 rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-pseries.ppc64-latest.xml => usb-controller-automatic-pseries.ppc64-latest.abi-update.xml} (77%)
 copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.args => usb-controller-automatic-pseries.ppc64-latest.args} (93%)
 copy tests/qemuxmlconfdata/{usb-controller-default-pseries.ppc64-latest.xml => usb-controller-automatic-pseries.ppc64-latest.xml} (80%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-pseries.xml} (50%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-automatic-q35.x86_64-latest.args} (100%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-automatic-q35.x86_64-latest.xml} (100%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.xml => usb-controller-automatic-q35.xml} (83%)
 copy tests/qemuxmlconfdata/{aarch64-realview-minimal.aarch64-latest.abi-update.args => usb-controller-automatic-realview.aarch64-latest.args} (89%)
 rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-aarch64.aarch64-latest.xml => usb-controller-automatic-realview.aarch64-latest.xml} (93%)
 rename tests/qemuxmlconfdata/{aarch64-versatilepb-minimal.xml => usb-controller-automatic-realview.xml} (85%)
 copy tests/qemuxmlconfdata/{ppc-mac99-minimal.ppc-latest.abi-update.args => usb-controller-automatic-s390x.s390x-latest.args} (70%)
 copy tests/qemuxmlconfdata/{s390-usb-address.s390x-latest.xml => usb-controller-automatic-s390x.s390x-latest.xml} (59%)
 create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-s390x.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-pseries.ppc64-latest.abi-update.err} (100%)
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-pseries.ppc64-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-pseries.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-realview.aarch64-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.xml
 rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-armv7l.armv7l-latest.args => usb-controller-automatic-versatilepb.armv7l-latest.args} (94%)
 rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.xml => usb-controller-automatic-versatilepb.armv7l-latest.xml} (93%)
 copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.xml => usb-controller-automatic-versatilepb.xml} (100%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-aarch64.aarch64-latest.args} (52%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-aarch64.aarch64-latest.xml} (63%)
 create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-virt-aarch64.xml
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-loongarch64.loongarch64-latest.args} (52%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-loongarch64.loongarch64-latest.xml} (63%)
 create mode 100644 tests/qemuxmlconfdata/usb-controller-automatic-virt-loongarch64.xml
 rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.args => usb-controller-automatic-virt-riscv64.riscv64-latest.args} (52%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-isapc.x86_64-latest.xml => usb-controller-automatic-virt-riscv64.riscv64-latest.xml} (67%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-i440fx.xml => usb-controller-automatic-virt-riscv64.xml} (53%)
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-armv7l.xml
 rename tests/qemuxmlconfdata/{usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.args => usb-controller-default-fallback-versatilepb.armv7l-latest.args} (100%)
 copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.armv7l-latest.abi-update.xml => usb-controller-default-fallback-versatilepb.armv7l-latest.xml} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb.xml
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-fallback-virt-aarch64.aarch64-latest.args} (50%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-fallback-virt-aarch64.aarch64-latest.xml} (60%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-virt-aarch64.xml
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-fallback-virt-riscv64.riscv64-latest.args} (50%)
 rename tests/qemuxmlconfdata/{usb-controller-nec-xhci-unavailable.x86_64-latest.xml => usb-controller-default-fallback-virt-riscv64.riscv64-latest.xml} (53%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-virt-riscv64.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-isapc.x86_64-latest.err => usb-controller-default-nousb.aarch64-latest.abi-update.err} (100%)
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.args
 create mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.err
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.xml
 copy tests/qemuxmlconfdata/{ppc-mac99-minimal.ppc-latest.abi-update.args => usb-controller-default-s390x.s390x-latest.args} (70%)
 copy tests/qemuxmlconfdata/{s390-usb-address.s390x-latest.xml => usb-controller-default-s390x.s390x-latest.xml} (59%)
 create mode 100644 tests/qemuxmlconfdata/usb-controller-default-s390x.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-g3beige.ppc64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-i440fx.x86_64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99.ppc64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99ppc.ppc-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-powernv9.ppc64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-q35.x86_64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-realview.aarch64-latest.err} (100%)
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.xml
 delete mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-armv7l.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-versatilepb.armv7l-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb.xml
 copy tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-virt-aarch64.aarch64-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-virt-aarch64.xml
 rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err => usb-controller-default-unavailable-virt-riscv64.riscv64-latest.err} (100%)
 create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-virt-riscv64.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.aarch64-latest.args
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.xml
 delete mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-armv7l.armv7l-latest.xml
 copy tests/qemuxmlconfdata/{armv7l-versatilepb-minimal.armv7l-latest.abi-update.args => usb-controller-default-versatilepb.armv7l-latest.args} (94%)
 rename tests/qemuxmlconfdata/{usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.xml => usb-controller-default-versatilepb.armv7l-latest.xml} (93%)
 rename tests/qemuxmlconfdata/{usb-controller-default-versatilepb-armv7l.xml => usb-controller-default-versatilepb.xml} (87%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-aarch64.aarch64-latest.args} (55%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-aarch64.aarch64-latest.xml} (63%)
 copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-aarch64.xml} (50%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-loongarch64.loongarch64-latest.args} (55%)
 copy tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-loongarch64.loongarch64-latest.xml} (63%)
 copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-loongarch64.xml} (50%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.args => usb-controller-default-virt-riscv64.riscv64-latest.args} (55%)
 rename tests/qemuxmlconfdata/{usb-controller-implicit-q35.x86_64-latest.xml => usb-controller-default-virt-riscv64.riscv64-latest.xml} (65%)
 copy tests/qemuxmlconfdata/{usb-controller-default-isapc.xml => usb-controller-default-virt-riscv64.xml} (57%)
 rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.x86_64-latest.args => usb-controller-nec-xhci-autoassign.x86_64-latest.args} (100%)
 rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.x86_64-latest.xml => usb-controller-nec-xhci-autoassign.x86_64-latest.xml} (100%)
 rename tests/qemuxmlconfdata/{usb-controller-nex-xhci-autoassign.xml => usb-controller-nec-xhci-autoassign.xml} (64%)

-- 
2.50.1
Re: [PATCH 00/31] qemu: Improve handling of architecture-specific defaults (USB and PCI)
Posted by Michal Prívozník via Devel 2 weeks, 3 days ago
On 8/19/25 18:22, Andrea Bolognani via Devel wrote:
> Just like the series dealing with [SCSI] from last month, this is an
> effort to complete work that I had started in early 2024 ([v2], [v1])
> and then promptly forgot about.
> 
> Dealing with USB controllers is a lot easier compared to a year and a
> half ago because Peter has already brought some much-needed sanity to
> their handling in the meantime, including finally removing all uses
> of -usb, but there's still room for improvement.
> 
> Looking at USB controllers made me realize that we were doing things
> incorrectly or suboptimally on the PCI side as well, so there are a
> number of changes in that part of libvirt too.
> 
> Since USB controllers are PCI devices, some of the changes in one
> area directly affect the other one and it would have been challening
> to separate these patches into two smaller series in a way that would
> make sense, so unfortunately you get a single big one instead. Sorry.
> 
> [SCSI] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/AL6GJBPRILIW36ANN7PABTI26JO3OTKB/
> [v2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/FZ6BTIXG26SLVIX6AYSBZH3NCLWJKIYM/
> [v1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/G53MRO2IEJOS3M53OKON2S5RM2MPH55K/
> 
> Andrea Bolognani (31):
>   tests: Fix typo in usb-controller-nec-xhci-autoassign
>   tests: Drop coverage for versatilepb on aarch64
>   tests: Don't use memballoon=none for minimal tests
>   tests: Don't set PCI address in usb-controller-default tests
>   tests: Minimize usb-controller tests
>   tests: Rename usb-controller-implicit-*
>   tests: Expand coverage for automatic/default USB controllers
>   tests: Fix some usb-controller-*-unavailable cases
>   qemu: Check for pci-ohci availability
>   tests: Use realview-eb instead of realview-pbx-a9
>   qemu: Fix PCI/USB handling for Arm realview boards
>   tests: Add coverage for PCI use with isapc
>   qemu: Don't add memballoon to isapc
>   qemu: Introduce qemuDomainNetIsPCI()
>   qemu: Prevent use of PCI devices when PCI is not supported
>   qemu: Validate presence of PCI support
>   qemu: Update qemuDomainSupportsPCI()
>   qemu: Add sanity checks for auto-added PCI and USB controllers
>   qemu: Ensure USB controllers have a PCI address assigned
>   qemu: Always default to no USB controller on s390x
>   qemu: Drop skip for USB controllers on s390x
>   qemu: Fold check into qemuBuildSkipController()
>   qemu: Validate USB controllers earlier
>   qemu: Add qemuDomainDefaultUSBControllerModel()
>   qemu: Add qemuDomainDefaultUSBControllerModelAutoAdded()
>   qemu: Clean up qemuDomainDefaultUSBControllerModel()
>   qemu: Use qemu-xhci by default on RISC-V
>   qemu: Allow nec-xhci as fallback for modern architectures
>   qemu: Remove fallback to piix3-uhci for Arm virt guests
>   qemu: Finish cleaning up qemuDomainDefaultUSBControllerModel()
>   news: Update for USB controller model selection improvements
> 

>  206 files changed, 897 insertions(+), 1601 deletions(-)

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Michal
Re: [PATCH 00/31] qemu: Improve handling of architecture-specific defaults (USB and PCI)
Posted by Andrea Bolognani via Devel 2 weeks, 3 days ago
On Wed, Aug 20, 2025 at 02:39:11PM +0200, Michal Prívozník wrote:
> On 8/19/25 18:22, Andrea Bolognani via Devel wrote:
> > Just like the series dealing with [SCSI] from last month, this is an
> > effort to complete work that I had started in early 2024 ([v2], [v1])
> > and then promptly forgot about.
> >
> > Dealing with USB controllers is a lot easier compared to a year and a
> > half ago because Peter has already brought some much-needed sanity to
> > their handling in the meantime, including finally removing all uses
> > of -usb, but there's still room for improvement.
> >
> > Looking at USB controllers made me realize that we were doing things
> > incorrectly or suboptimally on the PCI side as well, so there are a
> > number of changes in that part of libvirt too.
> >
> > Since USB controllers are PCI devices, some of the changes in one
> > area directly affect the other one and it would have been challening
> > to separate these patches into two smaller series in a way that would
> > make sense, so unfortunately you get a single big one instead. Sorry.
>
> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Thank you.

I'll hold off from merging until the 11.8.0 development cycle starts,
just to be on the safe side. That will also give Peter and others a
chance to have a look.

-- 
Andrea Bolognani / Red Hat / Virtualization