[PATCH 00/25] qemu: Remove use of '-usb' to instantiate controllers
by Peter Krempa
This patchset removes the use of '-usb' legacy controller specification.
For the vast majority of platforms/machines (most of the irrelevant
ones) which don't actually have a concept of implicit USB qemu ignores
the '-usb' argument.
For the relevant platforms libvirt would already pick exactly the
same controller and thus '-usb' wouldn't be used at all.
There's a small handful of ARM boards 'realview' and 'versatilepb' where
libvirt would pick the wrong one as default if some controllers were
compiled out and thus reallistically '-usb' would have effect for those
although would be unusable as libvirt's bus name for the bus is incorret
and thus no devices would be usable.
For the two mostly obsolete board types this series can break ABI in the
aforementioned corner case.
Other than that this removes all the legacy code which makes USB
controller selection utterly confusing.
Peter Krempa (25):
tests: Replace mentions of the removed 'qemucapabilitiesnumbering'
tool
qemucapabilitiesdata: Document faked caps dumps
testutilshostcpus: Add support for VIR_ARCH_ARMV7L
qemucapabilitiestest: Add test dump for 'armv7l' architecture
qemu: domain: Add checkers for 'microvm' machine type
qemu: Add basic framework for 'microvm' machine type
qemuxmlconfdata: Add tests for USB controller selection with
'versatilepb' machine on aarch64 qemu binary
qemuxmlconfdata: Add tests for USB controller selection with
'versatilepb' machine on arm qemu binary
qemuDomainDefAddDefaultDevices: Handle defaults for all ARM arches
together
qemuDomainControllerDefPostParse: Use proper enum value for default
USB controller model
qemuDomainDefAddDefaultDevices: Populate default USB for 'versatilepb'
and 'realview' ARM machines
qemuDomainControllerDefPostParse: Use 'pci-ohci' as last-resort
fallback USB controller
qemuxmlconftest: Add test for 'realview' machine
qemuxmlconftest: Add test data for an ARM machine where qemu doesn't
honour -usb
qemuxml2conftest: Consolidate usb controller tests for 'pseries'
machine
qemuxmlconftest: Add test case when default USB controller for
'pseries' is compiled out
qemuxmlconftest: Add test data for USB selection with 'g3beige'
machine on ppc64
qemuxmlconftest: Add test data for USB selection with 'mac99' machine
on ppc64
qemuxmlconftest: Add test data for USB selection with 'powernv'
machine on ppc64
qemuxmlconftest: Add test data for USB selection with 'mac99' machine
on ppc
qemu: command: Don't downgrade to '-usb' for x86 based machines
qemu: command: Don't downgrade to '-usb' with 'pseries' machines
qemu: command: Don't downgrade to '-usb' for ppc based machines
qemu: command: Don't downgrade to '-usb' for arm based machines
qemu: command: Remove fallback '-usb' handling
src/qemu/qemu_command.c | 87 +-
src/qemu/qemu_domain.c | 63 +-
src/qemu/qemu_domain.h | 1 +
tests/domaincapsdata/qemu_8.2.0.armv7l.xml | 175 +
tests/domaincapstest.c | 5 +-
tests/qemucapabilitiesdata/README.rst | 18 +-
.../caps_8.2.0_armv7l.replies | 35062 ++++++++++++++++
.../caps_8.2.0_armv7l.xml | 326 +
tests/qemucaps2xmloutdata/caps.armv7l.xml | 26 +
...usb-minimal.aarch64-latest.abi-update.args | 30 +
...ousb-minimal.aarch64-latest.abi-update.xml | 21 +
.../aarch64-nousb-minimal.aarch64-latest.args | 30 +
.../aarch64-nousb-minimal.aarch64-latest.xml | 21 +
.../qemuxmlconfdata/aarch64-nousb-minimal.xml | 15 +
...iew-minimal.aarch64-latest.abi-update.args | 31 +
...view-minimal.aarch64-latest.abi-update.xml | 22 +
...rch64-realview-minimal.aarch64-latest.args | 31 +
...arch64-realview-minimal.aarch64-latest.xml | 22 +
.../aarch64-realview-minimal.xml | 14 +
...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 +
.../aarch64-versatilepb-minimal.xml | 14 +
.../arm-vexpressa9-basic.aarch64-latest.args | 1 -
.../arm-vexpressa9-nodevs.aarch64-latest.args | 1 -
.../arm-vexpressa9-virtio.aarch64-latest.args | 1 -
...lepb-minimal.armv7l-latest.abi-update.args | 32 +
...ilepb-minimal.armv7l-latest.abi-update.xml | 27 +
...v7l-versatilepb-minimal.armv7l-latest.args | 32 +
...mv7l-versatilepb-minimal.armv7l-latest.xml | 27 +
.../armv7l-versatilepb-minimal.xml | 13 +
.../disk-arm-virtio-sd.aarch64-latest.args | 1 -
.../microvm.x86_64-latest.args | 34 +
.../qemuxmlconfdata/microvm.x86_64-latest.xml | 29 +
tests/qemuxmlconfdata/microvm.xml | 20 +
...c-mac99-minimal.ppc-latest.abi-update.args | 32 +
...pc-mac99-minimal.ppc-latest.abi-update.xml | 26 +
.../ppc-mac99-minimal.ppc-latest.args | 32 +
.../ppc-mac99-minimal.ppc-latest.xml | 26 +
tests/qemuxmlconfdata/ppc-mac99-minimal.xml | 12 +
...beige-minimal.ppc64-latest.abi-update.args | 33 +
...3beige-minimal.ppc64-latest.abi-update.xml | 29 +
.../ppc64-g3beige-minimal.ppc64-latest.args | 33 +
.../ppc64-g3beige-minimal.ppc64-latest.xml | 29 +
.../qemuxmlconfdata/ppc64-g3beige-minimal.xml | 12 +
...mac99-minimal.ppc64-latest.abi-update.args | 33 +
...-mac99-minimal.ppc64-latest.abi-update.xml | 29 +
.../ppc64-mac99-minimal.ppc64-latest.args | 33 +
.../ppc64-mac99-minimal.ppc64-latest.xml | 29 +
tests/qemuxmlconfdata/ppc64-mac99-minimal.xml | 12 +
...ernv9-minimal.ppc64-latest.abi-update.args | 33 +
...wernv9-minimal.ppc64-latest.abi-update.xml | 29 +
.../ppc64-powernv9-minimal.ppc64-latest.args | 33 +
.../ppc64-powernv9-minimal.ppc64-latest.xml | 29 +
.../ppc64-powernv9-minimal.xml | 12 +
.../sparc-minimal.sparc-latest.args | 1 -
...default-fallback-g3beige.ppc64-latest.args | 33 +
...-default-fallback-g3beige.ppc64-latest.xml | 34 +
...sb-controller-default-fallback-g3beige.xml | 1 +
...r-default-fallback-mac99.ppc64-latest.args | 33 +
...er-default-fallback-mac99.ppc64-latest.xml | 34 +
.../usb-controller-default-fallback-mac99.xml | 1 +
...default-fallback-mac99ppc.ppc-latest.args} | 9 +-
...r-default-fallback-mac99ppc.ppc-latest.xml | 31 +
...b-controller-default-fallback-mac99ppc.xml | 1 +
...default-fallback-nousb.aarch64-latest.args | 31 +
...-default-fallback-nousb.aarch64-latest.xml | 23 +
.../usb-controller-default-fallback-nousb.xml | 1 +
...efault-fallback-powernv9.ppc64-latest.args | 33 +
...default-fallback-powernv9.ppc64-latest.xml | 34 +
...b-controller-default-fallback-powernv9.xml | 1 +
...ault-fallback-realview.aarch64-latest.args | 31 +
...fault-fallback-realview.aarch64-latest.xml | 23 +
...b-controller-default-fallback-realview.xml | 1 +
...ck-versatilepb-aarch64.aarch64-latest.args | 32 +
...ack-versatilepb-aarch64.aarch64-latest.xml | 25 +
...r-default-fallback-versatilepb-aarch64.xml | 1 +
...back-versatilepb-armv7l.armv7l-latest.args | 32 +
...lback-versatilepb-armv7l.armv7l-latest.xml | 27 +
...er-default-fallback-versatilepb-armv7l.xml | 1 +
...ntroller-default-g3beige.ppc64-latest.args | 33 +
...ontroller-default-g3beige.ppc64-latest.xml | 34 +
.../usb-controller-default-g3beige.xml | 23 +
...controller-default-mac99.ppc64-latest.args | 33 +
...-controller-default-mac99.ppc64-latest.xml | 34 +
.../usb-controller-default-mac99.xml | 23 +
...ontroller-default-mac99ppc.ppc-latest.args | 32 +
...controller-default-mac99ppc.ppc-latest.xml | 31 +
.../usb-controller-default-mac99ppc.xml | 23 +
...ntroller-default-nousb.aarch64-latest.args | 31 +
...ontroller-default-nousb.aarch64-latest.xml | 23 +
.../usb-controller-default-nousb.xml | 17 +
...troller-default-powernv9.ppc64-latest.args | 33 +
...ntroller-default-powernv9.ppc64-latest.xml | 34 +
.../usb-controller-default-powernv9.xml | 23 +
...ault-pseries.ppc64-latest.abi-update.args} | 0
...fault-pseries.ppc64-latest.abi-update.xml} | 0
...troller-default-pseries.ppc64-latest.args} | 0
...ntroller-default-pseries.ppc64-latest.xml} | 0
...xml => usb-controller-default-pseries.xml} | 0
...oller-default-realview.aarch64-latest.args | 31 +
...roller-default-realview.aarch64-latest.xml | 23 +
.../usb-controller-default-realview.xml | 16 +
...fault-unavailable-g3beige.ppc64-latest.err | 1 +
...fault-unavailable-g3beige.ppc64-latest.xml | 34 +
...controller-default-unavailable-g3beige.xml | 1 +
...fault-unavailable-i440fx.x86_64-latest.err | 1 +
...default-unavailable-mac99.ppc64-latest.err | 1 +
...default-unavailable-mac99.ppc64-latest.xml | 34 +
...b-controller-default-unavailable-mac99.xml | 1 +
...efault-unavailable-mac99ppc.ppc-latest.err | 1 +
...efault-unavailable-mac99ppc.ppc-latest.xml | 31 +
...ontroller-default-unavailable-mac99ppc.xml | 1 +
...ault-unavailable-nousb.aarch64-latest.args | 31 +
...fault-unavailable-nousb.aarch64-latest.xml | 23 +
...b-controller-default-unavailable-nousb.xml | 1 +
...ault-unavailable-powernv9.ppc64-latest.err | 1 +
...ault-unavailable-powernv9.ppc64-latest.xml | 34 +
...ontroller-default-unavailable-powernv9.xml | 1 +
...fault-unavailable-pseries.ppc64-latest.err | 1 +
...fault-unavailable-pseries.ppc64-latest.xml | 38 +
...controller-default-unavailable-pseries.xml | 1 +
...t-unavailable-realview.aarch64-latest.args | 31 +
...lt-unavailable-realview.aarch64-latest.xml | 23 +
...ontroller-default-unavailable-realview.xml | 1 +
...le-versatilepb-aarch64.aarch64-latest.args | 32 +
...ble-versatilepb-aarch64.aarch64-latest.xml | 25 +
...efault-unavailable-versatilepb-aarch64.xml | 1 +
...lable-versatilepb-armv7l.armv7l-latest.err | 1 +
...lable-versatilepb-armv7l.armv7l-latest.xml | 27 +
...default-unavailable-versatilepb-armv7l.xml | 1 +
...lt-versatilepb-aarch64.aarch64-latest.args | 32 +
...ult-versatilepb-aarch64.aarch64-latest.xml | 25 +
...controller-default-versatilepb-aarch64.xml | 16 +
...ault-versatilepb-armv7l.armv7l-latest.args | 32 +
...fault-versatilepb-armv7l.armv7l-latest.xml | 27 +
...-controller-default-versatilepb-armv7l.xml | 15 +
...ntroller-implicit-isapc.x86_64-latest.args | 1 -
...troller-implicit-microvm.x86_64-latest.err | 1 +
...troller-implicit-microvm.x86_64-latest.xml | 25 +
.../usb-controller-implicit-microvm.xml | 17 +
...rovm-minimal.x86_64-latest.abi-update.args | 31 +
...crovm-minimal.x86_64-latest.abi-update.xml | 23 +
.../x86_64-microvm-minimal.x86_64-latest.args | 31 +
.../x86_64-microvm-minimal.x86_64-latest.xml | 23 +
.../x86_64-microvm-minimal.xml | 14 +
tests/qemuxmlconftest.c | 140 +-
tests/testutilshostcpus.h | 10 +
149 files changed, 38588 insertions(+), 107 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_8.2.0.armv7l.xml
create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies
create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml
create mode 100644 tests/qemucaps2xmloutdata/caps.armv7l.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-nousb-minimal.aarch64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/aarch64-nousb-minimal.aarch64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-nousb-minimal.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-nousb-minimal.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-nousb-minimal.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-realview-minimal.aarch64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/aarch64-realview-minimal.aarch64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-realview-minimal.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-realview-minimal.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-realview-minimal.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-versatilepb-minimal.xml
create mode 100644 tests/qemuxmlconfdata/armv7l-versatilepb-minimal.armv7l-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/armv7l-versatilepb-minimal.armv7l-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/armv7l-versatilepb-minimal.armv7l-latest.args
create mode 100644 tests/qemuxmlconfdata/armv7l-versatilepb-minimal.armv7l-latest.xml
create mode 100644 tests/qemuxmlconfdata/armv7l-versatilepb-minimal.xml
create mode 100644 tests/qemuxmlconfdata/microvm.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/microvm.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/microvm.xml
create mode 100644 tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args
create mode 100644 tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml
create mode 100644 tests/qemuxmlconfdata/ppc-mac99-minimal.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-g3beige-minimal.ppc64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/ppc64-g3beige-minimal.ppc64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-g3beige-minimal.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/ppc64-g3beige-minimal.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-g3beige-minimal.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-mac99-minimal.ppc64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/ppc64-mac99-minimal.ppc64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-mac99-minimal.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/ppc64-mac99-minimal.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-mac99-minimal.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-powernv9-minimal.ppc64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/ppc64-powernv9-minimal.ppc64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-powernv9-minimal.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/ppc64-powernv9-minimal.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/ppc64-powernv9-minimal.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-g3beige.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-g3beige.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-g3beige.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-mac99.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-mac99.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-mac99.xml
rename tests/qemuxmlconfdata/{usb-controller-default-unavailable-i440fx.x86_64-latest.args => usb-controller-default-fallback-mac99ppc.ppc-latest.args} (80%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-mac99ppc.ppc-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-mac99ppc.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-nousb.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-powernv9.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-powernv9.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-powernv9.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-realview.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-realview.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-realview.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-armv7l.armv7l-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-fallback-versatilepb-armv7l.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-g3beige.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-g3beige.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-g3beige.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-mac99ppc.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-nousb.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-powernv9.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-powernv9.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-powernv9.xml
rename tests/qemuxmlconfdata/{ppc64-usb-controller.ppc64-latest.abi-update.args => usb-controller-default-pseries.ppc64-latest.abi-update.args} (100%)
rename tests/qemuxmlconfdata/{ppc64-usb-controller.ppc64-latest.abi-update.xml => usb-controller-default-pseries.ppc64-latest.abi-update.xml} (100%)
rename tests/qemuxmlconfdata/{ppc64-usb-controller.ppc64-latest.args => usb-controller-default-pseries.ppc64-latest.args} (100%)
rename tests/qemuxmlconfdata/{ppc64-usb-controller.ppc64-latest.xml => usb-controller-default-pseries.ppc64-latest.xml} (100%)
rename tests/qemuxmlconfdata/{ppc64-usb-controller.xml => usb-controller-default-pseries.xml} (100%)
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-realview.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-realview.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-realview.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-g3beige.ppc64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-g3beige.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-g3beige.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-i440fx.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99.ppc64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99ppc.ppc-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99ppc.ppc-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-mac99ppc.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-nousb.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-powernv9.ppc64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-powernv9.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-powernv9.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-pseries.ppc64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-pseries.ppc64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-pseries.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-realview.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.aarch64-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-armv7l.armv7l-latest.xml
create mode 120000 tests/qemuxmlconfdata/usb-controller-default-unavailable-versatilepb-armv7l.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-aarch64.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-armv7l.armv7l-latest.args
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-armv7l.armv7l-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-default-versatilepb-armv7l.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-implicit-microvm.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/usb-controller-implicit-microvm.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/usb-controller-implicit-microvm.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-microvm-minimal.x86_64-latest.abi-update.args
create mode 100644 tests/qemuxmlconfdata/x86_64-microvm-minimal.x86_64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-microvm-minimal.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/x86_64-microvm-minimal.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/x86_64-microvm-minimal.xml
--
2.43.0
1 year, 1 month
[PATCH 01/14] hw/core/machine-smp: Remove deprecated "parameter=0" SMP configurations
by Zhao Liu
From: Zhao Liu <zhao1.liu(a)intel.com>
The "parameter=0" SMP configurations have been marked as deprecated
since v6.2.
For these cases, -smp currently returns the warning and adjusts the
zeroed parameters to 1 by default.
Remove the above compatibility logic in v9.0, and return error directly
if any -smp parameter is set as 0.
Cc: devel(a)lists.libvirt.org
Signed-off-by: Zhao Liu <zhao1.liu(a)intel.com>
Reviewed-by: Thomas Huth <thuth(a)redhat.com>
Reviewed-by: Prasad Pandit <pjp(a)fedoraproject.org>
---
docs/about/deprecated.rst | 16 ----------------
docs/about/removed-features.rst | 15 +++++++++++++++
hw/core/machine-smp.c | 5 +++--
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 36bd3e15ef06..872974640252 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -36,22 +36,6 @@ and will cause a warning.
The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
rather than ``delay=off``.
-``-smp`` ("parameter=0" SMP configurations) (since 6.2)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Specified CPU topology parameters must be greater than zero.
-
-In the SMP configuration, users should either provide a CPU topology
-parameter with a reasonable value (greater than zero) or just omit it
-and QEMU will compute the missing value.
-
-However, historically it was implicitly allowed for users to provide
-a parameter with zero value, which is meaningless and could also possibly
-cause unexpected results in the -smp parsing. So support for this kind of
-configurations (e.g. -smp 8,sockets=0) is deprecated since 6.2 and will
-be removed in the near future, users have to ensure that all the topology
-members described with -smp are greater than zero.
-
Plugin argument passing through ``arg=<string>`` (since 6.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 417a0e4fa1d9..f9cf874f7b1f 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -489,6 +489,21 @@ The ``-singlestep`` option has been turned into an accelerator property,
and given a name that better reflects what it actually does.
Use ``-accel tcg,one-insn-per-tb=on`` instead.
+``-smp`` ("parameter=0" SMP configurations) (removed in 9.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Specified CPU topology parameters must be greater than zero.
+
+In the SMP configuration, users should either provide a CPU topology
+parameter with a reasonable value (greater than zero) or just omit it
+and QEMU will compute the missing value.
+
+However, historically it was implicitly allowed for users to provide
+a parameter with zero value, which is meaningless and could also possibly
+cause unexpected results in the -smp parsing. So support for this kind of
+configurations (e.g. -smp 8,sockets=0) is removed since 9.0, users have
+to ensure that all the topology members described with -smp are greater
+than zero.
User-mode emulator command line arguments
-----------------------------------------
diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
index 25019c91ee36..96533886b14e 100644
--- a/hw/core/machine-smp.c
+++ b/hw/core/machine-smp.c
@@ -105,8 +105,9 @@ void machine_parse_smp_config(MachineState *ms,
(config->has_cores && config->cores == 0) ||
(config->has_threads && config->threads == 0) ||
(config->has_maxcpus && config->maxcpus == 0)) {
- warn_report("Deprecated CPU topology (considered invalid): "
- "CPU topology parameters must be greater than zero");
+ error_setg(errp, "Invalid CPU topology: "
+ "CPU topology parameters must be greater than zero");
+ return;
}
/*
--
2.34.1
1 year, 1 month
[PATCH] hw/core/machine-smp: Remove deprecated "parameter=0" SMP configurations
by Zhao Liu
From: Zhao Liu <zhao1.liu(a)intel.com>
The "parameter=0" SMP configurations have been marked as deprecated
since v6.2.
For these cases, -smp currently returns the warning and adjusts the
zeroed parameters to 1 by default.
Remove the above compatibility logic in v9.0, and return error directly
if any -smp parameter is set as 0.
Signed-off-by: Zhao Liu <zhao1.liu(a)intel.com>
---
docs/about/deprecated.rst | 16 ----------------
docs/about/removed-features.rst | 15 +++++++++++++++
hw/core/machine-smp.c | 5 +++--
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 36bd3e15ef06..872974640252 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -36,22 +36,6 @@ and will cause a warning.
The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
rather than ``delay=off``.
-``-smp`` ("parameter=0" SMP configurations) (since 6.2)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Specified CPU topology parameters must be greater than zero.
-
-In the SMP configuration, users should either provide a CPU topology
-parameter with a reasonable value (greater than zero) or just omit it
-and QEMU will compute the missing value.
-
-However, historically it was implicitly allowed for users to provide
-a parameter with zero value, which is meaningless and could also possibly
-cause unexpected results in the -smp parsing. So support for this kind of
-configurations (e.g. -smp 8,sockets=0) is deprecated since 6.2 and will
-be removed in the near future, users have to ensure that all the topology
-members described with -smp are greater than zero.
-
Plugin argument passing through ``arg=<string>`` (since 6.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 417a0e4fa1d9..f9cf874f7b1f 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -489,6 +489,21 @@ The ``-singlestep`` option has been turned into an accelerator property,
and given a name that better reflects what it actually does.
Use ``-accel tcg,one-insn-per-tb=on`` instead.
+``-smp`` ("parameter=0" SMP configurations) (removed in 9.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Specified CPU topology parameters must be greater than zero.
+
+In the SMP configuration, users should either provide a CPU topology
+parameter with a reasonable value (greater than zero) or just omit it
+and QEMU will compute the missing value.
+
+However, historically it was implicitly allowed for users to provide
+a parameter with zero value, which is meaningless and could also possibly
+cause unexpected results in the -smp parsing. So support for this kind of
+configurations (e.g. -smp 8,sockets=0) is removed since 9.0, users have
+to ensure that all the topology members described with -smp are greater
+than zero.
User-mode emulator command line arguments
-----------------------------------------
diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
index 25019c91ee36..96533886b14e 100644
--- a/hw/core/machine-smp.c
+++ b/hw/core/machine-smp.c
@@ -105,8 +105,9 @@ void machine_parse_smp_config(MachineState *ms,
(config->has_cores && config->cores == 0) ||
(config->has_threads && config->threads == 0) ||
(config->has_maxcpus && config->maxcpus == 0)) {
- warn_report("Deprecated CPU topology (considered invalid): "
- "CPU topology parameters must be greater than zero");
+ error_setg(errp, "Invalid CPU topology: "
+ "CPU topology parameters must be greater than zero");
+ return;
}
/*
--
2.34.1
1 year, 1 month
[GSOC] Handshake
by Mostafa ali
Hello lovely people, hope you are all well!
I'm looking to contribute to libvirt during the upcoming GSOC 2024,
specifically to the XML fuzzing idea.
Little about me: I'm a recent graduate of Cairo University, Department of
Computer Engineering. I'm extremely interested in all things involving
programming languages, compilers, interpreters or metaprogramming and
systems programming in general. I'm currently teaching part-time at my
university.
After reading your GSOC FAQ and the 4 libvirt-specific requirements listed,
I have compiled libvirt on my machine and the tests do seem to have run
successfully if ninja's terminal logging is to be trusted. After
(obviously!) subscribing to your development list, it now remains to have
an upstream contribution and the interview.
1- Regarding the interview, the FAQ says it will probably be conducted over
IRC. I haven't used IRC before, currently reading up on how to use it. Any
specific advice/irc client/guide regarding that ? Also, will the
interview be conducted before the acceptance of the contribution or after
it ?
2- Regarding the required contribution, I see here
https://gitlab.com/libvirt/libvirt/-/issues?label_name=bitesizedtask 2
issues that look interesting, the one about converting the json parsing
library and another about switching the code to use Glib's autofree instead
of malloc and free. The json one looks more interesting (and difficult!)
but it looks like it was already assigned to someone else (and also that
it's a whole other GSOC project ?). So is the autofree one suitable as a
good first issue for me?
That's all. Sorry for any inconvenience and many thanks for your time.
Regards,
Mostafa
1 year, 1 month
[PATCH v2] storage: Upgrade default qcow2 version
by Abhiram Tilak
Change the default to modern qcow2 as it's supported by all qemu
versions supported by libvirt and `qemu-img` already defaults to
the new format since QEMU 1.7.
Some Unittests require changes to pass, now that version 1.1 is default.
Unittests like `qcow2-1.1.argv` may not be relevant anymore, but this patch
doesn't affect them.
Signed-off-by: Abhiram Tilak <atp.exp(a)gmail.com>
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/storage/storage_util.c | 2 +-
.../storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv | 2 +-
.../qcow2-luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks.argv | 2 +-
.../qcow2-nobacking-convert-prealloc-compat.argv | 2 +-
.../storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv | 2 +-
.../qcow2-nocapacity-convert-prealloc.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocapacity.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocow-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-zerocapacity.argv | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index 7bf815d978..28d5fce4f0 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -765,7 +765,7 @@ storageBackendCreateQemuImgOpts(virStorageEncryptionInfoDef *encinfo,
if (info->compat)
virBufferAsprintf(&buf, "compat=%s,", info->compat);
else if (info->format == VIR_STORAGE_FILE_QCOW2)
- virBufferAddLit(&buf, "compat=0.10,");
+ virBufferAddLit(&buf, "compat=1.1,");
if (info->clusterSize > 0)
virBufferAsprintf(&buf, "cluster_size=%llu,", info->clusterSize);
diff --git a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
index 4b9ccfe8dc..705604b162 100644
--- a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/sparse-qcow2.img \
1073741824K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-compat.argv b/tests/storagevolxml2argvdata/qcow2-compat.argv
index bf3a50a7f3..40fbe065e0 100644
--- a/tests/storagevolxml2argvdata/qcow2-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,compat=0.10 \
+-o backing_fmt=raw,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
index dbc7deb16a..b68da425d9 100644
--- a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/dev/HostVG/Swap \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
index d89622d4a6..3068b4b38d 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
@@ -2,7 +2,7 @@ qemu-img \
create \
-f qcow2 \
--object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
--o encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=0.10 \
+-o encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=1.1 \
/var/lib/libvirt/images/OtherDemoLuks.img \
5242880K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
index 4d910552d0..948e9ac66d 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/sparse-qcow2.img \
1073741824K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks.argv b/tests/storagevolxml2argvdata/qcow2-luks.argv
index 308316c90c..a3be41a406 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks.argv
@@ -3,6 +3,6 @@ create \
-f qcow2 \
-b /dev/null \
--object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
--o backing_fmt=raw,encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=0.10 \
+-o backing_fmt=raw,encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=1.1 \
/var/lib/libvirt/images/OtherDemoLuks.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
index 463ae26779..a130ed8894 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o preallocation=metadata,compat=0.10 \
+-o preallocation=metadata,compat=1.1 \
/var/lib/libvirt/images/sparse.img \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
index 510e0c13f6..440ad8f122 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
@@ -1,6 +1,6 @@
qemu-img \
create \
-f qcow2 \
--o preallocation=metadata,compat=0.10 \
+-o preallocation=metadata,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
index 0152b1efb6..3bf8613d72 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o preallocation=falloc,compat=0.10 \
+-o preallocation=falloc,compat=1.1 \
/var/lib/libvirt/images/sparse.img \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
index 047932a559..924c5c6084 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
@@ -2,5 +2,5 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,compat=0.10 \
+-o backing_fmt=raw,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
index 4cc7904cfc..ae94e4e588 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,nocow=on,compat=0.10 \
+-o backing_fmt=raw,nocow=on,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
index 607c642e6f..05e31509cb 100644
--- a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
@@ -1,6 +1,6 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
0K
--
2.42.1
1 year, 1 month
[PATCH v2] storage: Upgrade default qcow2 version
by Abhiram Tilak
Change the default to modern qcow2 as it's supported by all qemu
versions supported by libvirt and `qemu-img` already defaults to
the new format since QEMU 1.7.
Some Unittests require changes to pass, now that version 1.1 is default.
Unittests like `qcow2-1.1.argv` may not be relevant anymore, but this patch
doesn't affect them.
Signed-off-by: Abhiram Tilak <atp.exp(a)gmail.com>
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/storage/storage_util.c | 2 +-
.../storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv | 2 +-
.../qcow2-luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks.argv | 2 +-
.../qcow2-nobacking-convert-prealloc-compat.argv | 2 +-
.../storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv | 2 +-
.../qcow2-nocapacity-convert-prealloc.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocapacity.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocow-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-zerocapacity.argv | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index 7bf815d978..28d5fce4f0 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -765,7 +765,7 @@ storageBackendCreateQemuImgOpts(virStorageEncryptionInfoDef *encinfo,
if (info->compat)
virBufferAsprintf(&buf, "compat=%s,", info->compat);
else if (info->format == VIR_STORAGE_FILE_QCOW2)
- virBufferAddLit(&buf, "compat=0.10,");
+ virBufferAddLit(&buf, "compat=1.1,");
if (info->clusterSize > 0)
virBufferAsprintf(&buf, "cluster_size=%llu,", info->clusterSize);
diff --git a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
index 4b9ccfe8dc..705604b162 100644
--- a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/sparse-qcow2.img \
1073741824K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-compat.argv b/tests/storagevolxml2argvdata/qcow2-compat.argv
index bf3a50a7f3..40fbe065e0 100644
--- a/tests/storagevolxml2argvdata/qcow2-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,compat=0.10 \
+-o backing_fmt=raw,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
index dbc7deb16a..b68da425d9 100644
--- a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/dev/HostVG/Swap \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
index d89622d4a6..3068b4b38d 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
@@ -2,7 +2,7 @@ qemu-img \
create \
-f qcow2 \
--object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
--o encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=0.10 \
+-o encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=1.1 \
/var/lib/libvirt/images/OtherDemoLuks.img \
5242880K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
index 4d910552d0..948e9ac66d 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/sparse-qcow2.img \
1073741824K
qemu-img \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks.argv b/tests/storagevolxml2argvdata/qcow2-luks.argv
index 308316c90c..a3be41a406 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks.argv
@@ -3,6 +3,6 @@ create \
-f qcow2 \
-b /dev/null \
--object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
--o backing_fmt=raw,encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=0.10 \
+-o backing_fmt=raw,encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,compat=1.1 \
/var/lib/libvirt/images/OtherDemoLuks.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
index 463ae26779..a130ed8894 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o preallocation=metadata,compat=0.10 \
+-o preallocation=metadata,compat=1.1 \
/var/lib/libvirt/images/sparse.img \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
index 510e0c13f6..440ad8f122 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
@@ -1,6 +1,6 @@
qemu-img \
create \
-f qcow2 \
--o preallocation=metadata,compat=0.10 \
+-o preallocation=metadata,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
index 0152b1efb6..3bf8613d72 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
@@ -2,6 +2,6 @@ qemu-img \
convert \
-f raw \
-O qcow2 \
--o preallocation=falloc,compat=0.10 \
+-o preallocation=falloc,compat=1.1 \
/var/lib/libvirt/images/sparse.img \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
index 047932a559..924c5c6084 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
@@ -2,5 +2,5 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,compat=0.10 \
+-o backing_fmt=raw,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
index 4cc7904cfc..ae94e4e588 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
@@ -2,6 +2,6 @@ qemu-img \
create \
-f qcow2 \
-b /dev/null \
--o backing_fmt=raw,nocow=on,compat=0.10 \
+-o backing_fmt=raw,nocow=on,compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
index 607c642e6f..05e31509cb 100644
--- a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
@@ -1,6 +1,6 @@
qemu-img \
create \
-f qcow2 \
--o compat=0.10 \
+-o compat=1.1 \
/var/lib/libvirt/images/OtherDemo.img \
0K
--
2.42.1
1 year, 1 month
[PATCH] virsh: Fix overflow error of freepages command
by Adam Julis
Trying to print pages of a size larger than the UINT_MAX of the
given platform (for example, around 4G on 64-bit intel), a system
error was printed, but this is a legitimate request, fixed.
vshCommandOptScaledInt requiers set maximum returning size for
the variable '&bytes'. It was set as UINT_MAX, while the public
API variable 'kibibytes', which loads the 'bytes' lately, is type
of UINT. Since it's kibibytes, the value in bytes should be 1024*
bigger and it still will works correctly. So the correct max size
of bytes is UINT_MAX * 1024.
Resolves: https://issues.redhat.com/browse/RHEL-23608
Signed-off-by: Adam Julis <ajulis(a)redhat.com>
---
tools/virsh-host.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index 6c14be865f..5a934d7a7f 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -335,7 +335,7 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
- if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX) < 0)
+ if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX * 1024ULL) < 0)
goto cleanup;
kibibytes = VIR_DIV_UP(bytes, 1024);
--
2.43.2
1 year, 1 month
[PATCH 0/2] storage: Upgrade default qcow2 verion to 1.1
by Abhiram Tilak
Right now the default qcow2 version if not specified explicitly,
defaults to 0.10. Certain features like live snapshots, cluster
size specification require 1.1 to work.
This patch series aims at upgrading the qcow2 default image version,
and use compatibility version 1.1 unless specified. This also requires
correcting multiple testcases related to this compat version.
If any other locations require changing, they will be
added as a part of this series.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/602
Abhiram Tilak (2):
storage: change assigning qcow2 compat to 1.1 from 0.10 automatically
storage: fix testcases on changing the default qcow2 compat to 1.1
src/storage/storage_util.c | 2 +-
.../storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv | 2 +-
.../qcow2-luks-convert-encrypt2fileqcow2.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-luks.argv | 2 +-
.../qcow2-nobacking-convert-prealloc-compat.argv | 2 +-
.../storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv | 2 +-
.../qcow2-nocapacity-convert-prealloc.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocapacity.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocow-compat.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-zerocapacity.argv | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
--
2.42.1
1 year, 1 month
[PATCH] qemu: Optimize CPU check='partial' for usable CPUs
by Jiri Denemark
Ideally check='partial' would check exactly the features QEMU would want
to enable when asked for a specific CPU model (and features). But there
is no way we could ask QEMU how a specific CPU would look like. So we
use our definition from CPU map, which may slightly differ as QEMU adds
or removes features from CPU models, and thus we may end up checking
features which QEMU would not enable while missing some required ones.
We can do better in specific cases, though. If a CPU definition uses
only a model and disabled features (or none at all), we already know
whether QEMU can enable all features required by the CPU model as that's
what we use to set usable='yes' attribute in the list of available CPU
models in domain capbilities XML. So when a usable CPU model is
requested without asking for additional features (disabling features is
fine) we can avoid our possible inaccurate check using our CPU map.
For backward compatibility we only consider usable models. If a
specified model is not usable, we still check it the old way and even
let QEMU start it (and disable some features) in case our definition
lacks some features compared to QEMU.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 44 ++++++++++++++++++++++++++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
src/qemu/qemu_process.c | 1 +
3 files changed, 48 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e383d85920..cb9846dfcf 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2433,6 +2433,50 @@ virQEMUCapsIsCPUDeprecated(virQEMUCaps *qemuCaps,
}
+/**
+ * virQEMUCapsIsCPUUsable:
+ * @qemuCaps: QEMU capabilities
+ * @type: virtualization type (kvm vs tcg)
+ * @cpu: CPU definition to check, including explicitly configured features
+ *
+ * Checks whether @cpu is considered usable by QEMU, i.e., all features
+ * required by the CPU model are supported and can be enabled. If so, we can
+ * avoid checking the CPU according to its definition in the CPU map when
+ * starting a domain with check='partial'. Our checks could be inaccurate
+ * anyway because QEMU might have changed the definition of the CPU model
+ * since we added it into the CPU map.
+ *
+ * Returns true iff @cpu is usable.
+ */
+bool
+virQEMUCapsIsCPUUsable(virQEMUCaps *qemuCaps,
+ virDomainVirtType type,
+ virCPUDef *cpu)
+{
+ qemuMonitorCPUDefs *defs;
+ size_t i;
+
+ if (!cpu->model ||
+ !(defs = virQEMUCapsGetAccel(qemuCaps, type)->cpuModels))
+ return false;
+
+ /* CPU model usability is valid only when CPU def does not contain any
+ * features or all features are disabled.
+ */
+ for (i = 0; i < cpu->nfeatures; i++) {
+ if (cpu->features[i].policy != VIR_CPU_FEATURE_DISABLE)
+ return false;
+ }
+
+ for (i = 0; i < defs->ncpus; i++) {
+ if (STREQ(defs->cpus[i].name, cpu->model))
+ return defs->cpus[i].usable == VIR_DOMCAPS_CPU_USABLE_YES;
+ }
+
+ return false;
+}
+
+
bool
virQEMUCapsIsMachineDeprecated(virQEMUCaps *qemuCaps,
virDomainVirtType type,
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 486a4a6f63..ef1ad2c01c 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -770,6 +770,9 @@ const char *virQEMUCapsGetMachineDefaultCPU(virQEMUCaps *qemuCaps,
bool virQEMUCapsIsCPUDeprecated(virQEMUCaps *qemuCaps,
virDomainVirtType type,
const char *model);
+bool virQEMUCapsIsCPUUsable(virQEMUCaps *qemuCaps,
+ virDomainVirtType type,
+ virCPUDef *cpu);
bool virQEMUCapsIsMachineDeprecated(virQEMUCaps *qemuCaps,
virDomainVirtType type,
const char *machine);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 6e51d6586b..8e35d0a73f 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6288,6 +6288,7 @@ qemuProcessUpdateGuestCPU(virDomainDef *def,
g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
if (def->cpu->check == VIR_CPU_CHECK_PARTIAL &&
+ !virQEMUCapsIsCPUUsable(qemuCaps, def->virtType, def->cpu) &&
virCPUCompare(hostarch,
virQEMUCapsGetHostModel(qemuCaps, def->virtType,
VIR_QEMU_CAPS_HOST_CPU_FULL),
--
2.44.0
1 year, 1 month
[PATCH] virsh: Fix overflow error of freepages command
by Adam Julis
Trying to print pages of a size larger than the UINT_MAX of the given platform, a system error was printed, but this is a legitimate request, fixed
Signed-off-by: Adam Julis <ajulis(a)redhat.com>
---
tools/virsh-host.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index 6c14be865f..dc1282e718 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -335,7 +335,7 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
- if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX) < 0)
+ if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX*1024ULL) < 0)
goto cleanup;
kibibytes = VIR_DIV_UP(bytes, 1024);
--
2.43.2
1 year, 1 month