Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 9 participants
- 40164 discussions
Changes since last revision:
- Removed mention of hypervisor-specific details from API docs
- Refactored qemu driver implementation in the way that older API calls
new one
- Added virsh command
Nikolai Barybin (3):
api: remote: introduce virDomainBlockRebaseParams API
qemu: implement driver support for domainBlockRebaseParams API
tools: virsh: introduce blockrebase-params cmd
docs/manpages/virsh.rst | 39 ++++
include/libvirt/libvirt-domain.h | 34 ++++
src/driver-hypervisor.h | 8 +
src/libvirt-domain.c | 63 ++++++
src/libvirt_public.syms | 5 +
src/qemu/qemu_driver.c | 327 +++++++++++++++++++------------
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 17 +-
src/remote_protocol-structs | 10 +
tools/virsh-domain.c | 160 +++++++++++++++
tools/vsh.c | 14 ++
tools/vsh.h | 2 +
12 files changed, 557 insertions(+), 123 deletions(-)
--
2.43.5
2
6
[PATCH v4 00/23] util: sync error_report & qemu_log output more closely
by Daniel P. Berrangé 25 Sep '25
by Daniel P. Berrangé 25 Sep '25
25 Sep '25
This series is a tangent that came out of discussion in
https://lists.nongnu.org/archive/html/qemu-devel/2025-08/msg00903.html
In thinking about adding thread info to error_report, I
came to realize we should likely make qemu_log behave
consistently with error_report & friends. We already
honour '-msg timestamp=on', but don't honour 'guest-name=on'
and also don't include the binary name.
As an example of the current state, consider mixing error and
log output today:
- Default context:
# qemu-system-x86_64 -object tls-creds-x509,id=t0,dir=fish \
-d 'trace:qcrypto*'
qcrypto_tls_creds_x509_load TLS creds x509 load creds=0x55ac6d97f700 dir=fish
qcrypto_tls_creds_get_path TLS creds path creds=0x55ac6d97f700 filename=ca-cert.pem path=<none>
qemu-system-x86_64: Unable to access credentials fish/ca-cert.pem: No such file or directory
- Full context:
# qemu-system-x86_64 -object tls-creds-x509,id=t0,dir=fish \
-d 'trace:qcrypto*' \
-msg guest-name=on,timestamp=on \
-name "fish food"
2025-08-19T20:14:16.791413Z qcrypto_tls_creds_x509_load TLS creds x509 load creds=0x55e9a3458d10 dir=fish
2025-08-19T20:14:16.791429Z qcrypto_tls_creds_get_path TLS creds path creds=0x55e9a3458d10 filename=ca-cert.pem path=<none>
2025-08-19T20:14:16.791433Z fish food qemu-system-x86_64: Unable to access credentials fish/ca-cert.pem: No such file or directory
And after this series is complete:
- Default context:
# qemu-system-x86_64 -object tls-creds-x509,id=t0,dir=fish \
-d 'trace:qcrypto*'
qemu-system-x86_64(1184284:main): qcrypto_tls_creds_x509_load TLS creds x509 load creds=0x55a24ad5cb30 dir=fish
qemu-system-x86_64(1184284:main): qcrypto_tls_creds_get_path TLS creds path creds=0x55a24ad5cb30 filename=ca-cert.pem path=<none>
qemu-system-x86_64(1184284:main): Unable to access credentials fish/ca-cert.pem: No such file or directory
- Full context:
# qemu-system-x86_64 -object tls-creds-x509,id=t0,dir=fish \
-d 'trace:qcrypto*' \
-msg guest-name=on,timestamp=on \
-name "fish food"
2025-08-19T20:12:50.211823Z [fish food] qemu-system-x86_64(1168876:main): qcrypto_tls_creds_x509_load TLS creds x509 load creds=0x5582183d8760 dir=fish
2025-08-19T20:12:50.211842Z [fish food] qemu-system-x86_64(1168876:main): qcrypto_tls_creds_get_path TLS creds path creds=0x5582183d8760 filename=ca-cert.pem
+path=<none>
2025-08-19T20:12:50.211846Z [fish food] qemu-system-x86_64(1168876:main): Unable to access credentials fish/ca-cert.pem: No such file or directory
The main things to note:
* error_report/warn_report/qemu_log share the same
output format and -msg applies to both
* -msg debug-threads=on is now unconditionally enabled
and thus the param is deprecated & ignored
* Thread ID and name are unconditionally enabled
* Guest name is surrounded in [...] brackets
* The default output lines are typically 15 chars
wider given that we always include the thread
ID + name now
* This takes the liberty of assigning the new file
to the existing error-report.c maintainer (Markus)
Since splitting it off into message.c instead of
putting it all in error-report.c felt slightly
nicer.
One thing I didn't tackle is making the location
info get reported for qemu_log. This is used to
give context for error messages when parsing some
CLI args, and could be interesting for log messages
associated with those same CLI args.
Changes in v4:
- Re-architected the way error_vprintf() operates
to simplify monitor dependency
- Fixed the move of error_vprintf from monitor.c
to error-report.c so that unit tests can still
get a stub to capture messages to g_test_message
- Simplify changes to vreport() to avoid passing
around function pointers
- Add locking of stderr to vreport() to serialize
incremental output
- Fix thread naming logic changes on Windows
- Change deprecation warning messages
Changes in v3:
- Stop formatting a string in qmessage_context, instead
output directly to a "FILE *" stream
- Fix pre-existing bug interleaving qemu_log and
vreport when the trace 'log' backend has mutex probes
enabled
Changes in v2:
- Re-use existing qemu_get_thread_id rather than
re-inventing it as qemu_thread_get_id.
- Expose qemu_thread_set_name and use it from all
locations needing to set thread names
- Fix qemu_log() to skip context prefix when
emitting a log message in fragments across
multiple calls
- Skip allocating memory for empty context messages
- Fix leak in win32 impl of qemu_thread_get_name
- Use g_strlcpy where possible
Daniel P. Berrangé (23):
include: define constant for early constructor priority
monitor: initialize global data from a constructor
system: unconditionally enable thread naming
util: expose qemu_thread_set_name
audio: make jackaudio use qemu_thread_set_name
util: set the name for the 'main' thread
util: add API to fetch the current thread name
log: avoid repeated prefix on incremental qemu_log calls
util: introduce some API docs for logging APIs
ui/vnc: remove use of error_printf_unless_qmp()
monitor: remove redundant error_[v]printf_unless_qmp
monitor: refactor error_vprintf()
monitor: move error_vprintf back to error-report.c
monitor: introduce monitor_cur_is_hmp() helper
util: don't skip error prefixes when QMP is active
util: fix interleaving of error & trace output
util: fix interleaving of error prefixes
util: introduce common helper for error-report & log code
util: convert error-report & log to message API for timestamp
util: add support for formatting a workload name in messages
util: add support for formatting a program name in messages
util: add support for formatting thread info in messages
util: add brackets around guest name in message context
MAINTAINERS | 2 +
audio/jackaudio.c | 30 +++++++--
docs/about/deprecated.rst | 7 ++
include/monitor/monitor.h | 4 +-
include/qemu/compiler.h | 8 +++
include/qemu/error-report.h | 4 --
include/qemu/log-for-trace.h | 35 +++++++++-
include/qemu/log.h | 26 ++++++++
include/qemu/message.h | 40 ++++++++++++
include/qemu/thread.h | 3 +-
meson.build | 21 ++++++
monitor/monitor.c | 61 ++++++-----------
rust/util/src/log.rs | 7 ++
storage-daemon/qemu-storage-daemon.c | 6 ++
stubs/error-printf.c | 23 -------
stubs/meson.build | 1 -
stubs/monitor-core.c | 20 +++++-
system/vl.c | 31 ++++++---
tests/qemu-iotests/041 | 2 +-
tests/qemu-iotests/common.filter | 2 +-
tests/unit/test-error-report.c | 6 +-
tests/unit/test-util-sockets.c | 1 +
ui/vnc.c | 14 ++--
util/error-report.c | 97 +++++++++++++++++-----------
util/log.c | 28 ++++----
util/meson.build | 1 +
util/message.c | 47 ++++++++++++++
util/qemu-thread-posix.c | 77 +++++++++++++++-------
util/qemu-thread-win32.c | 87 +++++++++++++++++--------
29 files changed, 485 insertions(+), 206 deletions(-)
create mode 100644 include/qemu/message.h
delete mode 100644 stubs/error-printf.c
create mode 100644 util/message.c
--
2.50.1
4
39
Changes from [v2]:
* more tweaks to firmware files, with a matching edk2 PR this
time around.
Changes from [v1]:
* pick up Jim's test suite improvements;
* squash in fixes for issues found during review;
* add a few commits intented to spark further discussion around
what the firmware descriptors should look like in the edk2
package.
[v2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/IBI4…
[v1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/RKQ3…
Andrea Bolognani (8):
tests: Tweak descriptor for combined firmware
tests: Minimize SEV tests
tests: Add tests for SEV firmware selection
qemu: Fix matching for stateless/combined firmware
qemu: Fix matching for read/write firmware
news: Update for firmware selection fixes
DONOTMERGE update firmware data
DONOTMERGE don't explicitly request stateless firmware for SEV
Jim Fehlig (1):
tests: Improve AMD SEV-related tests
NEWS.rst | 5 ++
src/qemu/qemu_firmware.c | 47 ++++++++++++++-----
.../firmware/60-edk2-ovmf-x64-amdsev.json | 8 +---
...30-edk2-ovmf-4m-qcow2-x64-sb-enrolled.json | 3 +-
.../31-edk2-ovmf-2m-raw-x64-sb-enrolled.json | 3 +-
.../40-edk2-ovmf-4m-qcow2-x64-sb.json | 3 +-
.../firmware/41-edk2-ovmf-2m-raw-x64-sb.json | 3 +-
.../qemu/firmware/50-edk2-aarch64-qcow2.json | 4 +-
.../qemu/firmware/50-edk2-loongarch64.json | 2 +
.../50-edk2-ovmf-4m-qcow2-x64-nosb.json | 5 +-
.../qemu/firmware/50-edk2-riscv-qcow2.json | 4 +-
.../qemu/firmware/51-edk2-aarch64-raw.json | 4 +-
.../51-edk2-ovmf-2m-raw-x64-nosb.json | 5 +-
.../52-edk2-aarch64-verbose-qcow2.json | 3 +-
.../firmware/53-edk2-aarch64-verbose-raw.json | 3 +-
.../firmware/60-edk2-ovmf-x64-amdsev.json | 11 ++---
.../firmware/60-edk2-ovmf-x64-inteltdx.json | 1 -
... => 61-edk2-ovmf-x64-amdsev-stateful.json} | 7 +--
.../usr/share/qemu/firmware/90-combined.json | 5 +-
tests/qemufirmwaretest.c | 4 +-
...are-auto-efi-rw-pflash.x86_64-latest.args} | 7 +--
...mware-auto-efi-rw-pflash.x86_64-latest.err | 1 -
...mware-auto-efi-rw-pflash.x86_64-latest.xml | 6 ++-
...> firmware-auto-efi-rw.x86_64-latest.args} | 7 +--
.../firmware-auto-efi-rw.x86_64-latest.err | 1 -
.../firmware-auto-efi-rw.x86_64-latest.xml | 6 ++-
...uto-efi-sev-snp.x86_64-latest+amdsev.args} | 6 +--
...auto-efi-sev-snp.x86_64-latest+amdsev.xml} | 5 +-
.../firmware-auto-efi-sev-snp.xml | 20 ++++++++
...fi-sev-stateful.x86_64-latest+amdsev.args} | 6 ++-
...efi-sev-stateful.x86_64-latest+amdsev.xml} | 6 ++-
.../firmware-auto-efi-sev-stateful.xml | 21 +++++++++
...re-auto-efi-sev.x86_64-latest+amdsev.args} | 6 +--
...are-auto-efi-sev.x86_64-latest+amdsev.xml} | 5 +-
.../qemuxmlconfdata/firmware-auto-efi-sev.xml | 20 ++++++++
...ware-auto-efi-stateless.x86_64-latest.args | 5 +-
...mware-auto-efi-stateless.x86_64-latest.xml | 2 +-
...urity-sev-direct.x86_64-latest+amdsev.args | 7 ++-
...curity-sev-direct.x86_64-latest+amdsev.xml | 19 +++-----
...nch-security-sev-direct.x86_64-latest.args | 7 ++-
...unch-security-sev-direct.x86_64-latest.xml | 19 +++-----
.../launch-security-sev-direct.xml | 19 +-------
...ng-platform-info.x86_64-latest+amdsev.args | 8 ++--
...ing-platform-info.x86_64-latest+amdsev.xml | 29 ++++++------
...nch-security-sev-missing-platform-info.xml | 25 +++-------
...security-sev-snp.x86_64-latest+amdsev.args | 11 +----
...-security-sev-snp.x86_64-latest+amdsev.xml | 29 +-----------
...launch-security-sev-snp.x86_64-latest.args | 11 +----
.../launch-security-sev-snp.x86_64-latest.xml | 29 +-----------
.../launch-security-sev-snp.xml | 45 +-----------------
...nch-security-sev.x86_64-latest+amdsev.args | 8 ++--
...unch-security-sev.x86_64-latest+amdsev.xml | 29 ++++++------
tests/qemuxmlconfdata/launch-security-sev.xml | 25 +++-------
tests/qemuxmlconftest.c | 18 ++++++-
54 files changed, 266 insertions(+), 332 deletions(-)
copy tests/qemufirmwaredata/usr/share/qemu/firmware/{51-edk2-ovmf-2m-raw-x64-nosb.json => 61-edk2-ovmf-x64-amdsev-stateful.json} (81%)
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.args => firmware-auto-efi-rw-pflash.x86_64-latest.args} (75%)
delete mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-rw-pflash.x86_64-latest.err
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.args => firmware-auto-efi-rw.x86_64-latest.args} (75%)
delete mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-rw.x86_64-latest.err
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.args => firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args} (78%)
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.xml => firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml} (88%)
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.xml
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.args => firmware-auto-efi-sev-stateful.x86_64-latest+amdsev.args} (75%)
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.xml => firmware-auto-efi-sev-stateful.x86_64-latest+amdsev.xml} (78%)
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-sev-stateful.xml
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.args => firmware-auto-efi-sev.x86_64-latest+amdsev.args} (78%)
copy tests/qemuxmlconfdata/{firmware-auto-efi-stateless.x86_64-latest.xml => firmware-auto-efi-sev.x86_64-latest+amdsev.xml} (88%)
create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-sev.xml
--
2.51.0
2
21
24 Sep '25
They were deprecated in 9.2, now we can remove them.
New options to use are reconnect-ms.
Vladimir Sementsov-Ogievskiy (2):
chardev: remove deprecated 'reconnect' option
net/stream: remove deprecated 'reconnect' option
chardev/char-socket.c | 20 +++-----------------
chardev/char.c | 3 ---
docs/about/deprecated.rst | 15 ---------------
docs/about/removed-features.rst | 22 ++++++++++++++++++++++
net/stream.c | 20 +++++---------------
qapi/char.json | 11 -----------
qapi/net.json | 10 ----------
7 files changed, 30 insertions(+), 71 deletions(-)
--
2.48.1
2
4
22 Sep '25
Hi,
This is a follow up to the third RFC patchset [0] for supporting multiple
vSMMU instances and using iommufd to propagate DMA mappings to kernel for
VM-assigned host devices in a qemu VM. It builds on the recent libvirt patch
series [1] without support for iommufd and the 'accel' iommu attribute.
This patchset implements support for specifying multiple <iommu> devices
within the VM definition when smmuv3Dev IOMMU model is specified, and is
tested with Shameer's latest qemu RFC for HW-accelerated vSMMU devices [2]
Moreover, it adds a new 'iommufd' attribute for hostdev devices to be
associated with the iommufd object.
For instance, specifying the iommufd object and associated hostdev in a
VM definition with multiple IOMMUs, configured to be routed to
pcie-expander-bus controllers in a way where VFIO device to SMMUv3
associations are matched with the host:
<devices>
...
<controller type='pci' index='1' model='pcie-expander-bus'>
<model name='pxb-pcie'/>
<target busNr='252'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</controller>
<controller type='pci' index='2' model='pcie-expander-bus'>
<model name='pxb-pcie'/>
<target busNr='248'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</controller>
...
<controller type='pci' index='21' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='21' port='0x0'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='22' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='22' port='0xa8'/>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
...
<hostdev mode='subsystem' type='pci' managed='no'>
<driver iommufd='yes'/>
<source>
<address domain='0x0009' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x15' slot='0x00' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='no'>
<driver iommufd='yes'/>
<source>
<address domain='0x0019' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x16' slot='0x00' function='0x0'/>
</hostdev>
<iommu model='smmuv3Dev' parentIdx='1' accel='on'/>
<iommu model='smmuv3Dev' parentIdx='2' accel='on'/>
</devices>
This would get translated to a qemu command line with the arguments below.
Note that libvirt will open the /dev/iommu and VFIO cdev, passing the
associated fd number to qemu:
-device '{"driver":"pxb-pcie","bus_nr":252,"id":"pci.1","bus":"pcie.0","addr":"0x1"}' \
-device '{"driver":"pxb-pcie","bus_nr":248,"id":"pci.2","bus":"pcie.0","addr":"0x2"}' \
-device '{"driver":"pcie-root-port","port":0,"chassis":21,"id":"pci.21","bus":"pci.1","addr":"0x0"}' \
-device '{"driver":"pcie-root-port","port":168,"chassis":22,"id":"pci.22","bus":"pci.2","addr":"0x0"}' \
-object '{"qom-type":"iommufd","id":"iommufd0","fd":"24"}' \
-device '{"driver":"arm-smmuv3","primary-bus":"pci.1","id":"smmuv3.0","accel":true}' \
-device '{"driver":"arm-smmuv3","primary-bus":"pci.2","id":"smmuv3.1","accel":true}' \
-device '{"driver":"vfio-pci","host":"0009:01:00.0","id":"hostdev0","iommufd":"iommufd0","fd":"22","bus":"pci.21","addr":"0x0"}' \
-device '{"driver":"vfio-pci","host":"0019:01:00.0","id":"hostdev1","iommufd":"iommufd0","fd":"25","bus":"pci.22","addr":"0x0"}' \
Changes from RFCv3:
- Change iommufd attribute value type to boolean
- Move iommufd attribute under hostdev PCI driver struct
- Use virDomainDeviceInfoAddressIsEqual() for comparing definitions in virDomainIOMMUDefEquals()
- Added qemuxmlconfdata test cases
- Include seclabel logic for /dev/iommu
This series is on Github:
https://github.com/NathanChenNVIDIA/libvirt/tree/smmuv3Dev-iommufd-09-15-25
Thanks,
Nathan
[0] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/XXEO…
[1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/3PYS…
[2] https://lore.kernel.org/qemu-devel/20250714155941.22176-1-shameerali.koloth…
Nathan Chen (8):
qemu: add IOMMU model smmuv3Dev
conf: Support multiple smmuv3Dev IOMMU devices
tests: qemuxmlconfdata: provide smmuv3Dev sample XML and CLI args
qemu: Implement support for associating iommufd to hostdev
qemu: open iommufd FDs from libvirt backend
qemu: Update Cgroup, namespace, and seclabel for qemu to access
iommufd paths
tests: qemuxmlconfdata: provide iommufd sample XML and CLI args
cover letter: qemu: Implement support for iommufd and multiple vSMMUs
docs/formatdomain.rst | 21 +-
src/conf/device_conf.c | 9 +
src/conf/device_conf.h | 1 +
src/conf/domain_conf.c | 120 ++++++--
src/conf/domain_conf.h | 12 +-
src/conf/domain_validate.c | 58 +++-
src/conf/schemas/basictypes.rng | 5 +
src/conf/schemas/domaincommon.rng | 15 +-
src/libvirt_private.syms | 2 +
src/qemu/qemu_alias.c | 15 +-
src/qemu/qemu_cgroup.c | 61 ++++
src/qemu/qemu_cgroup.h | 1 +
src/qemu/qemu_command.c | 265 +++++++++++++-----
src/qemu/qemu_command.h | 3 +-
src/qemu/qemu_domain.c | 8 +
src/qemu/qemu_domain.h | 7 +
src/qemu/qemu_domain_address.c | 33 ++-
src/qemu/qemu_driver.c | 8 +-
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_namespace.c | 44 +++
src/qemu/qemu_postparse.c | 11 +-
src/qemu/qemu_process.c | 232 +++++++++++++++
src/qemu/qemu_validate.c | 18 +-
src/security/security_apparmor.c | 15 +
src/security/security_dac.c | 34 +++
src/security/security_selinux.c | 30 ++
src/util/virpci.c | 68 +++++
src/util/virpci.h | 1 +
.../iommu-smmuv3Dev.aarch64-latest.args | 39 +++
.../iommu-smmuv3Dev.aarch64-latest.xml | 62 ++++
tests/qemuxmlconfdata/iommu-smmuv3Dev.xml | 49 ++++
.../iommufd-q35.x86_64-latest.args | 41 +++
.../iommufd-q35.x86_64-latest.xml | 60 ++++
tests/qemuxmlconfdata/iommufd-q35.xml | 38 +++
.../iommufd-virt.aarch64-latest.args | 33 +++
.../iommufd-virt.aarch64-latest.xml | 34 +++
tests/qemuxmlconfdata/iommufd-virt.xml | 22 ++
.../iommufd.x86_64-latest.args | 35 +++
.../qemuxmlconfdata/iommufd.x86_64-latest.xml | 38 +++
tests/qemuxmlconfdata/iommufd.xml | 30 ++
tests/qemuxmlconftest.c | 5 +
41 files changed, 1447 insertions(+), 138 deletions(-)
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.xml
create mode 100644 tests/qemuxmlconfdata/iommufd.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd.xml
--
2.43.0
1
7
Hi,
This is a follow up to the third RFC patchset [0] for supporting multiple
vSMMU instances.
This patchset implements support for specifying multiple <iommu> devices
within the VM definition when smmuv3Dev IOMMU model is specified, and is
tested with Shameer's recently accepted qemu series for user-creatable
vSMMU devices [1]
For instance, specifying the associated emulated device in a
VM definition with multiple IOMMUs, configured to be routed to
pcie-expander-bus or pcie-root controllers:
<devices>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-expander-bus'>
<model name='pxb-pcie'/>
<target busNr='252'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x0'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</controller>
...
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</rng>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</rng>
<iommu model='smmuv3Dev' parentIdx='0'/>
<iommu model='smmuv3Dev' parentIdx='1'/>
</devices>
This would get translated to a qemu command line with the arguments below.
-device '{"driver":"pxb-pcie","bus_nr":252,"id":"pci.1","bus":"pcie.0","addr":"0x1"}' \
-device '{"driver":"pcie-root-port","port":0,"chassis":2,"id":"pci.2","bus":"pci.1","addr":"0x0"}' \
-device '{"driver":"arm-smmuv3","primary-bus":"pcie.0","id":"smmuv3.0"}' \
-device '{"driver":"arm-smmuv3","primary-bus":"pci.1","id":"smmuv3.1"}' \
...
-object '{"qom-type":"rng-random","id":"objrng0","filename":"/dev/urandom"}' \
-device '{"driver":"virtio-rng-pci","rng":"objrng0","id":"rng0","bus":"pci.2","addr":"0x0"}' \
-object '{"qom-type":"rng-random","id":"objrng1","filename":"/dev/urandom"}' \
-device '{"driver":"virtio-rng-pci","rng":"objrng1","id":"rng1","bus":"pcie.0","addr":"0x4"}' \
Nathan Chen (4):
qemu: add IOMMU model smmuv3Dev
conf: Support multiple smmuv3Dev IOMMU devices
tests: qemuxmlconfdata: provide smmuv3Dev sample XML and CLI args
cover letter: qemu: Implement support for multiple SMMUv3s
docs/formatdomain.rst | 9 +-
src/conf/domain_conf.c | 102 +++++++--
src/conf/domain_conf.h | 11 +-
src/conf/domain_validate.c | 49 ++++-
src/conf/schemas/domaincommon.rng | 10 +-
src/libvirt_private.syms | 2 +
src/qemu/qemu_alias.c | 15 +-
src/qemu/qemu_command.c | 202 ++++++++++++------
src/qemu/qemu_domain_address.c | 33 +--
src/qemu/qemu_driver.c | 8 +-
src/qemu/qemu_postparse.c | 11 +-
src/qemu/qemu_validate.c | 18 +-
.../iommu-smmuv3Dev.aarch64-latest.args | 39 ++++
.../iommu-smmuv3Dev.aarch64-latest.xml | 62 ++++++
tests/qemuxmlconfdata/iommu-smmuv3Dev.xml | 49 +++++
tests/qemuxmlconftest.c | 1 +
16 files changed, 492 insertions(+), 129 deletions(-)
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3Dev.xml
--
2.43.0
2
4
From: Michal Privoznik <mprivozn(a)redhat.com>
This pulls in the fix for generating ENV vars in Dockerfile
according to latest standard.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
ci/containers/almalinux-9.Dockerfile | 10 +++++-----
ci/containers/alpine-322.Dockerfile | 10 +++++-----
ci/containers/alpine-edge.Dockerfile | 10 +++++-----
ci/containers/centos-stream-9.Dockerfile | 10 +++++-----
ci/containers/debian-12-cross-aarch64.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-armv6l.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-armv7l.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-i686.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-mips64el.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-mipsel.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-ppc64le.Dockerfile | 14 +++++++-------
ci/containers/debian-12-cross-s390x.Dockerfile | 14 +++++++-------
ci/containers/debian-12.Dockerfile | 10 +++++-----
ci/containers/debian-sid-cross-aarch64.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-armv6l.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-armv7l.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-i686.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-mips64el.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-ppc64le.Dockerfile | 14 +++++++-------
ci/containers/debian-sid-cross-s390x.Dockerfile | 14 +++++++-------
ci/containers/debian-sid.Dockerfile | 10 +++++-----
ci/containers/fedora-41.Dockerfile | 10 +++++-----
ci/containers/fedora-42-cross-mingw32.Dockerfile | 14 +++++++-------
ci/containers/fedora-42-cross-mingw64.Dockerfile | 14 +++++++-------
ci/containers/fedora-42.Dockerfile | 10 +++++-----
.../fedora-rawhide-cross-mingw32.Dockerfile | 14 +++++++-------
.../fedora-rawhide-cross-mingw64.Dockerfile | 14 +++++++-------
ci/containers/fedora-rawhide.Dockerfile | 10 +++++-----
ci/containers/opensuse-leap-15.Dockerfile | 10 +++++-----
ci/containers/opensuse-tumbleweed.Dockerfile | 10 +++++-----
ci/containers/ubuntu-2204.Dockerfile | 10 +++++-----
ci/containers/ubuntu-2404.Dockerfile | 10 +++++-----
32 files changed, 198 insertions(+), 198 deletions(-)
diff --git a/ci/containers/almalinux-9.Dockerfile b/ci/containers/almalinux-9.Dockerfile
index a30e4d9452..c7d34f9f5f 100644
--- a/ci/containers/almalinux-9.Dockerfile
+++ b/ci/containers/almalinux-9.Dockerfile
@@ -88,8 +88,8 @@ RUN dnf update -y && \
RUN /usr/bin/pip3 install black
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/alpine-322.Dockerfile b/ci/containers/alpine-322.Dockerfile
index d02e243e3f..84188f75b2 100644
--- a/ci/containers/alpine-322.Dockerfile
+++ b/ci/containers/alpine-322.Dockerfile
@@ -70,8 +70,8 @@ RUN apk update && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/alpine-edge.Dockerfile b/ci/containers/alpine-edge.Dockerfile
index fc4b9a3e56..c35c56fc1a 100644
--- a/ci/containers/alpine-edge.Dockerfile
+++ b/ci/containers/alpine-edge.Dockerfile
@@ -70,8 +70,8 @@ RUN apk update && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/centos-stream-9.Dockerfile b/ci/containers/centos-stream-9.Dockerfile
index 94a563ad05..0d1ffa295c 100644
--- a/ci/containers/centos-stream-9.Dockerfile
+++ b/ci/containers/centos-stream-9.Dockerfile
@@ -89,8 +89,8 @@ RUN dnf distro-sync -y && \
RUN /usr/bin/pip3 install black
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/debian-12-cross-aarch64.Dockerfile b/ci/containers/debian-12-cross-aarch64.Dockerfile
index 5130adc2fb..eb4266b2e8 100644
--- a/ci/containers/debian-12-cross-aarch64.Dockerfile
+++ b/ci/containers/debian-12-cross-aarch64.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture arm64 && \
@@ -112,5 +112,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-ENV ABI "aarch64-linux-gnu"
-ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
+ENV ABI="aarch64-linux-gnu"
+ENV MESON_OPTS="--cross-file=aarch64-linux-gnu"
diff --git a/ci/containers/debian-12-cross-armv6l.Dockerfile b/ci/containers/debian-12-cross-armv6l.Dockerfile
index a2140109bf..ec0e002bca 100644
--- a/ci/containers/debian-12-cross-armv6l.Dockerfile
+++ b/ci/containers/debian-12-cross-armv6l.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armel && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-ENV ABI "arm-linux-gnueabi"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
+ENV ABI="arm-linux-gnueabi"
+ENV MESON_OPTS="--cross-file=arm-linux-gnueabi"
diff --git a/ci/containers/debian-12-cross-armv7l.Dockerfile b/ci/containers/debian-12-cross-armv7l.Dockerfile
index 1f23cd4005..3c6deda8f8 100644
--- a/ci/containers/debian-12-cross-armv7l.Dockerfile
+++ b/ci/containers/debian-12-cross-armv7l.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armhf && \
@@ -112,5 +112,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-ENV ABI "arm-linux-gnueabihf"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
+ENV ABI="arm-linux-gnueabihf"
+ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-12-cross-i686.Dockerfile b/ci/containers/debian-12-cross-i686.Dockerfile
index 02489aec68..6c6fa74eb7 100644
--- a/ci/containers/debian-12-cross-i686.Dockerfile
+++ b/ci/containers/debian-12-cross-i686.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture i386 && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-ENV ABI "i686-linux-gnu"
-ENV MESON_OPTS "--cross-file=i686-linux-gnu"
+ENV ABI="i686-linux-gnu"
+ENV MESON_OPTS="--cross-file=i686-linux-gnu"
diff --git a/ci/containers/debian-12-cross-mips64el.Dockerfile b/ci/containers/debian-12-cross-mips64el.Dockerfile
index acad2cfd10..51f59de57e 100644
--- a/ci/containers/debian-12-cross-mips64el.Dockerfile
+++ b/ci/containers/debian-12-cross-mips64el.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture mips64el && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-ENV ABI "mips64el-linux-gnuabi64"
-ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
+ENV ABI="mips64el-linux-gnuabi64"
+ENV MESON_OPTS="--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-12-cross-mipsel.Dockerfile b/ci/containers/debian-12-cross-mipsel.Dockerfile
index 98ab8139ce..fa46422041 100644
--- a/ci/containers/debian-12-cross-mipsel.Dockerfile
+++ b/ci/containers/debian-12-cross-mipsel.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture mipsel && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
-ENV ABI "mipsel-linux-gnu"
-ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
+ENV ABI="mipsel-linux-gnu"
+ENV MESON_OPTS="--cross-file=mipsel-linux-gnu"
diff --git a/ci/containers/debian-12-cross-ppc64le.Dockerfile b/ci/containers/debian-12-cross-ppc64le.Dockerfile
index 233ef84082..8599c527fe 100644
--- a/ci/containers/debian-12-cross-ppc64le.Dockerfile
+++ b/ci/containers/debian-12-cross-ppc64le.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture ppc64el && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-ENV ABI "powerpc64le-linux-gnu"
-ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
+ENV ABI="powerpc64le-linux-gnu"
+ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-12-cross-s390x.Dockerfile b/ci/containers/debian-12-cross-s390x.Dockerfile
index 6c1fae3d27..c48968073d 100644
--- a/ci/containers/debian-12-cross-s390x.Dockerfile
+++ b/ci/containers/debian-12-cross-s390x.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture s390x && \
@@ -111,5 +111,5 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-ENV ABI "s390x-linux-gnu"
-ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
+ENV ABI="s390x-linux-gnu"
+ENV MESON_OPTS="--cross-file=s390x-linux-gnu"
diff --git a/ci/containers/debian-12.Dockerfile b/ci/containers/debian-12.Dockerfile
index 8c801e228e..044962d10b 100644
--- a/ci/containers/debian-12.Dockerfile
+++ b/ci/containers/debian-12.Dockerfile
@@ -88,8 +88,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/debian-sid-cross-aarch64.Dockerfile b/ci/containers/debian-sid-cross-aarch64.Dockerfile
index 5489aaa53c..a476df0a5f 100644
--- a/ci/containers/debian-sid-cross-aarch64.Dockerfile
+++ b/ci/containers/debian-sid-cross-aarch64.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture arm64 && \
@@ -112,5 +112,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-ENV ABI "aarch64-linux-gnu"
-ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
+ENV ABI="aarch64-linux-gnu"
+ENV MESON_OPTS="--cross-file=aarch64-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-armv6l.Dockerfile b/ci/containers/debian-sid-cross-armv6l.Dockerfile
index e3ae1c50b7..aee3867132 100644
--- a/ci/containers/debian-sid-cross-armv6l.Dockerfile
+++ b/ci/containers/debian-sid-cross-armv6l.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armel && \
@@ -109,5 +109,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-ENV ABI "arm-linux-gnueabi"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
+ENV ABI="arm-linux-gnueabi"
+ENV MESON_OPTS="--cross-file=arm-linux-gnueabi"
diff --git a/ci/containers/debian-sid-cross-armv7l.Dockerfile b/ci/containers/debian-sid-cross-armv7l.Dockerfile
index 5aaf29d22a..618a7f5a35 100644
--- a/ci/containers/debian-sid-cross-armv7l.Dockerfile
+++ b/ci/containers/debian-sid-cross-armv7l.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture armhf && \
@@ -109,5 +109,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-ENV ABI "arm-linux-gnueabihf"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
+ENV ABI="arm-linux-gnueabihf"
+ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-sid-cross-i686.Dockerfile b/ci/containers/debian-sid-cross-i686.Dockerfile
index decc0805e1..da5d47215d 100644
--- a/ci/containers/debian-sid-cross-i686.Dockerfile
+++ b/ci/containers/debian-sid-cross-i686.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture i386 && \
@@ -109,5 +109,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-ENV ABI "i686-linux-gnu"
-ENV MESON_OPTS "--cross-file=i686-linux-gnu"
+ENV ABI="i686-linux-gnu"
+ENV MESON_OPTS="--cross-file=i686-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-mips64el.Dockerfile b/ci/containers/debian-sid-cross-mips64el.Dockerfile
index 67904f419f..0638f4f096 100644
--- a/ci/containers/debian-sid-cross-mips64el.Dockerfile
+++ b/ci/containers/debian-sid-cross-mips64el.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture mips64el && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-ENV ABI "mips64el-linux-gnuabi64"
-ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
+ENV ABI="mips64el-linux-gnuabi64"
+ENV MESON_OPTS="--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-sid-cross-ppc64le.Dockerfile b/ci/containers/debian-sid-cross-ppc64le.Dockerfile
index 608017ade9..2b0ff92363 100644
--- a/ci/containers/debian-sid-cross-ppc64le.Dockerfile
+++ b/ci/containers/debian-sid-cross-ppc64le.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture ppc64el && \
@@ -111,5 +111,5 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-ENV ABI "powerpc64le-linux-gnu"
-ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
+ENV ABI="powerpc64le-linux-gnu"
+ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-s390x.Dockerfile b/ci/containers/debian-sid-cross-s390x.Dockerfile
index 877239819f..782fe63ae5 100644
--- a/ci/containers/debian-sid-cross-s390x.Dockerfile
+++ b/ci/containers/debian-sid-cross-s390x.Dockerfile
@@ -47,11 +47,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture s390x && \
@@ -111,5 +111,5 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-ENV ABI "s390x-linux-gnu"
-ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
+ENV ABI="s390x-linux-gnu"
+ENV MESON_OPTS="--cross-file=s390x-linux-gnu"
diff --git a/ci/containers/debian-sid.Dockerfile b/ci/containers/debian-sid.Dockerfile
index 7a6c7cd6a3..dc60ddefe2 100644
--- a/ci/containers/debian-sid.Dockerfile
+++ b/ci/containers/debian-sid.Dockerfile
@@ -88,8 +88,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/fedora-41.Dockerfile b/ci/containers/fedora-41.Dockerfile
index fbd19bf50a..218d1e8c76 100644
--- a/ci/containers/fedora-41.Dockerfile
+++ b/ci/containers/fedora-41.Dockerfile
@@ -96,8 +96,8 @@ exec "$@"\n' > /usr/bin/nosync && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/fedora-42-cross-mingw32.Dockerfile b/ci/containers/fedora-42-cross-mingw32.Dockerfile
index 69c6198c83..94d9378850 100644
--- a/ci/containers/fedora-42-cross-mingw32.Dockerfile
+++ b/ci/containers/fedora-42-cross-mingw32.Dockerfile
@@ -54,11 +54,11 @@ exec "$@"\n' > /usr/bin/nosync && \
nosync dnf clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN nosync dnf install -y \
mingw32-curl \
@@ -79,5 +79,5 @@ RUN nosync dnf install -y \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
-ENV ABI "i686-w64-mingw32"
-ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
+ENV ABI="i686-w64-mingw32"
+ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
diff --git a/ci/containers/fedora-42-cross-mingw64.Dockerfile b/ci/containers/fedora-42-cross-mingw64.Dockerfile
index a00067d614..9d59a70975 100644
--- a/ci/containers/fedora-42-cross-mingw64.Dockerfile
+++ b/ci/containers/fedora-42-cross-mingw64.Dockerfile
@@ -54,11 +54,11 @@ exec "$@"\n' > /usr/bin/nosync && \
nosync dnf clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN nosync dnf install -y \
mingw64-curl \
@@ -79,5 +79,5 @@ RUN nosync dnf install -y \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
-ENV ABI "x86_64-w64-mingw32"
-ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
+ENV ABI="x86_64-w64-mingw32"
+ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
diff --git a/ci/containers/fedora-42.Dockerfile b/ci/containers/fedora-42.Dockerfile
index df57898ed6..ed8636d7b0 100644
--- a/ci/containers/fedora-42.Dockerfile
+++ b/ci/containers/fedora-42.Dockerfile
@@ -96,8 +96,8 @@ exec "$@"\n' > /usr/bin/nosync && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
index 381bab3088..4aeb9a5a0e 100644
--- a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
+++ b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
@@ -55,11 +55,11 @@ exec "$@"\n' > /usr/bin/nosync && \
nosync dnf clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN nosync dnf install -y \
mingw32-curl \
@@ -80,5 +80,5 @@ RUN nosync dnf install -y \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
-ENV ABI "i686-w64-mingw32"
-ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
+ENV ABI="i686-w64-mingw32"
+ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
diff --git a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
index 9ccea17e22..465faac2cd 100644
--- a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
+++ b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
@@ -55,11 +55,11 @@ exec "$@"\n' > /usr/bin/nosync && \
nosync dnf clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
RUN nosync dnf install -y \
mingw64-curl \
@@ -80,5 +80,5 @@ RUN nosync dnf install -y \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
-ENV ABI "x86_64-w64-mingw32"
-ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
+ENV ABI="x86_64-w64-mingw32"
+ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
diff --git a/ci/containers/fedora-rawhide.Dockerfile b/ci/containers/fedora-rawhide.Dockerfile
index f4e95f8b8e..62ab294a5e 100644
--- a/ci/containers/fedora-rawhide.Dockerfile
+++ b/ci/containers/fedora-rawhide.Dockerfile
@@ -97,8 +97,8 @@ exec "$@"\n' > /usr/bin/nosync && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/opensuse-leap-15.Dockerfile b/ci/containers/opensuse-leap-15.Dockerfile
index c19f136513..2cc6e19c84 100644
--- a/ci/containers/opensuse-leap-15.Dockerfile
+++ b/ci/containers/opensuse-leap-15.Dockerfile
@@ -90,8 +90,8 @@ RUN zypper update -y && \
RUN /usr/bin/pip3 install black
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/opensuse-tumbleweed.Dockerfile b/ci/containers/opensuse-tumbleweed.Dockerfile
index f220b82a1a..7942cc0151 100644
--- a/ci/containers/opensuse-tumbleweed.Dockerfile
+++ b/ci/containers/opensuse-tumbleweed.Dockerfile
@@ -86,8 +86,8 @@ RUN zypper dist-upgrade -y && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/ubuntu-2204.Dockerfile b/ci/containers/ubuntu-2204.Dockerfile
index 8fe2ab81b5..73933debd1 100644
--- a/ci/containers/ubuntu-2204.Dockerfile
+++ b/ci/containers/ubuntu-2204.Dockerfile
@@ -89,8 +89,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
diff --git a/ci/containers/ubuntu-2404.Dockerfile b/ci/containers/ubuntu-2404.Dockerfile
index 9f410e926c..446866b65a 100644
--- a/ci/containers/ubuntu-2404.Dockerfile
+++ b/ci/containers/ubuntu-2404.Dockerfile
@@ -89,8 +89,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV MAKE="/usr/bin/make"
+ENV NINJA="/usr/bin/ninja"
+ENV PYTHON="/usr/bin/python3"
--
2.49.1
2
1
Ján Tomko (8):
qemu: passt: split out qemuPasstBuildCommand
tests: qemuxmlconftests: store suffix in testQemuInfo
tests: qemuxmlconftest: Introduce testQemuConfMarkUsed
export qemuVirtioFSBuildCommandLine
tests: qemuxmlconftest: test passt command line too
tests: qemuxmlconf: virtiofs: remove locking from the readonly test
case
tests: qemuxmlconftests: test virtiofsd command line too
tests: qemuxmlconftest: test locking with older virtiofsd
src/qemu/qemu_passt.c | 38 ++++--
src/qemu/qemu_passt.h | 5 +
src/qemu/qemu_virtiofs.c | 2 +-
src/qemu/qemu_virtiofs.h | 5 +
.../net-user-passt.x86_64-7.2.0.passt0.args | 13 ++
.../net-user-passt.x86_64-latest.passt0.args | 13 ++
...-vhostuser-passt.x86_64-latest.passt0.args | 14 ++
...-vhostuser-passt.x86_64-latest.passt1.args | 5 +
...-vhostuser-passt.x86_64-latest.passt2.args | 6 +
...main-subelements.x86_64-latest.passt0.args | 7 +
...t-user-fs-ccw.s390x-latest.virtiofsd0.args | 3 +
...fs-fd-memory.x86_64-latest.virtiofsd0.args | 9 ++
...fd-openfiles.x86_64-latest.virtiofsd0.args | 10 ++
...fs-hugepages.x86_64-latest.virtiofsd0.args | 3 +
...fs-hugepages.x86_64-latest.virtiofsd1.args | 3 +
.../vhost-user-fs-locking.x86_64-7.2.0.args | 35 +++++
...er-fs-locking.x86_64-7.2.0.virtiofsd0.args | 4 +
.../vhost-user-fs-locking.x86_64-7.2.0.xml | 46 +++++++
.../qemuxmlconfdata/vhost-user-fs-locking.xml | 46 +++++++
...-fs-readonly.x86_64-latest.virtiofsd0.args | 6 +
.../vhost-user-fs-readonly.xml | 1 -
tests/qemuxmlconftest.c | 125 ++++++++++++++++--
tests/testutilsqemu.h | 1 +
23 files changed, 381 insertions(+), 19 deletions(-)
create mode 100644 tests/qemuxmlconfdata/net-user-passt.x86_64-7.2.0.passt0.args
create mode 100644 tests/qemuxmlconfdata/net-user-passt.x86_64-latest.passt0.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.passt0.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.passt1.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.passt2.args
create mode 100644 tests/qemuxmlconfdata/schema-reorder-domain-subelements.x86_64-latest.passt0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-ccw.s390x-latest.virtiofsd0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-fd-memory.x86_64-latest.virtiofsd0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-fd-openfiles.x86_64-latest.virtiofsd0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-hugepages.x86_64-latest.virtiofsd0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-hugepages.x86_64-latest.virtiofsd1.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-locking.x86_64-7.2.0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-locking.x86_64-7.2.0.virtiofsd0.args
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-locking.x86_64-7.2.0.xml
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-locking.xml
create mode 100644 tests/qemuxmlconfdata/vhost-user-fs-readonly.x86_64-latest.virtiofsd0.args
--
2.50.1
2
14
[PATCH 00/31] qemu: Improve handling of architecture-specific defaults (USB and PCI)
by Andrea Bolognani 19 Sep '25
by Andrea Bolognani 19 Sep '25
19 Sep '25
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/AL6G…
[v2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/FZ6B…
[v1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/G53M…
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
5
85
We are getting close to 11.8.0 release of libvirt. To aim for the
release on Wednesday 01 Oct I suggest entering the freeze on Thursday 25
Sep and tagging RC2 on Monday 29 Sep.
I hope this works for everyone.
Jirka
1
0