[PATCH v2 0/4] Introduce TCG domain features

v2 of: https://listman.redhat.com/archives/libvir-list/2021-November/msg00143.html diff to v1: - Patches 1/4 and 2/4 are new, per Dan's suggestion - Patch 4/4 was reworked, since after 2/4 we are using -accel unconditionally Please note that patch 2/4 was trimmed in order to fit the list message limit. You can find all patches applied here: https://gitlab.com/MichalPrivoznik/libvirt/-/tree/tcg_tb_size_alt_v2 Michal Prívozník (4): qemu_command: Don't validate accelerator when building cmd line qemu: Switch to -accel conf: Introduce TCG domain features qemu: Generate command line for tb-cache feature docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_command.c | 80 ++++++++++------- src/qemu/qemu_validate.c | 11 +++ .../aarch64-aavmf-virtio-mmio.args | 3 +- tests/qemuxml2argvdata/aarch64-acpi-uefi.args | 3 +- .../aarch64-cpu-passthrough.args | 3 +- ...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 3 +- ...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 3 +- .../aarch64-features-sve.aarch64-latest.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-host.args | 3 +- .../aarch64-gic-none-tcg.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-v2.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-v3.args | 3 +- .../aarch64-kvm-32-on-64.args | 3 +- .../aarch64-noacpi-nouefi.args | 3 +- .../qemuxml2argvdata/aarch64-noacpi-uefi.args | 3 +- ...arch64-os-firmware-efi.aarch64-latest.args | 3 +- .../qemuxml2argvdata/aarch64-pci-serial.args | 3 +- .../aarch64-tpm.aarch64-latest.args | 3 +- .../aarch64-traditional-pci.args | 3 +- .../aarch64-usb-controller-nec-xhci.args | 3 +- .../aarch64-usb-controller-qemu-xhci.args | 3 +- .../aarch64-video-default.args | 3 +- .../aarch64-video-virtio-gpu-pci.args | 3 +- .../aarch64-virt-2.6-virtio-pci-default.args | 3 +- .../aarch64-virt-default-nic.args | 3 +- .../aarch64-virt-graphics.aarch64-latest.args | 3 +- .../aarch64-virt-headless.aarch64-latest.args | 3 +- .../qemuxml2argvdata/aarch64-virt-virtio.args | 3 +- .../aarch64-virtio-pci-default.args | 3 +- .../aarch64-virtio-pci-manual-addresses.args | 3 +- tests/qemuxml2argvdata/acpi-table.args | 3 +- .../arm-vexpressa9-basic.args | 3 +- .../arm-vexpressa9-nodevs.args | 3 +- .../arm-vexpressa9-virtio.args | 3 +- tests/qemuxml2argvdata/arm-virt-virtio.args | 3 +- .../audio-alsa-best.x86_64-4.1.0.args | 3 +- .../audio-alsa-best.x86_64-latest.args | 3 +- .../audio-alsa-full.x86_64-latest.args | 3 +- .../audio-alsa-minimal.x86_64-4.1.0.args | 3 +- .../audio-alsa-minimal.x86_64-latest.args | 3 +- .../audio-coreaudio-best.x86_64-4.1.0.args | 3 +- .../audio-coreaudio-best.x86_64-latest.args | 3 +- .../audio-coreaudio-full.x86_64-latest.args | 3 +- .../audio-coreaudio-minimal.x86_64-4.1.0.args | 3 +- ...audio-coreaudio-minimal.x86_64-latest.args | 3 +- ...audio-default-nographics.x86_64-4.1.0.args | 3 +- ...udio-default-nographics.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/audio-default-sdl.args | 3 +- .../audio-default-sdl.x86_64-latest.args | 3 +- .../qemuxml2argvdata/audio-default-spice.args | 3 +- .../audio-default-spice.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/audio-default-vnc.args | 3 +- .../audio-default-vnc.x86_64-latest.args | 3 +- .../audio-file-best.x86_64-4.1.0.args | 3 +- .../audio-file-best.x86_64-latest.args | 3 +- .../audio-file-full.x86_64-latest.args | 3 +- .../audio-file-minimal.x86_64-4.1.0.args | 3 +- .../audio-file-minimal.x86_64-latest.args | 3 +- .../audio-jack-full.x86_64-latest.args | 3 +- .../audio-jack-minimal.x86_64-latest.args | 3 +- .../audio-many-backends.x86_64-latest.args | 3 +- .../audio-none-best.x86_64-4.1.0.args | 3 +- .../audio-none-best.x86_64-latest.args | 3 +- .../audio-none-full.x86_64-latest.args | 3 +- .../audio-none-minimal.x86_64-4.1.0.args | 3 +- .../audio-none-minimal.x86_64-latest.args | 3 +- .../audio-oss-best.x86_64-4.1.0.args | 3 +- .../audio-oss-best.x86_64-latest.args | 3 +- .../audio-oss-full.x86_64-latest.args | 3 +- .../audio-oss-minimal.x86_64-4.1.0.args | 3 +- .../audio-oss-minimal.x86_64-latest.args | 3 +- .../audio-pulseaudio-best.x86_64-4.1.0.args | 3 +- .../audio-pulseaudio-best.x86_64-latest.args | 3 +- .../audio-pulseaudio-full.x86_64-latest.args | 3 +- ...audio-pulseaudio-minimal.x86_64-4.1.0.args | 3 +- ...udio-pulseaudio-minimal.x86_64-latest.args | 3 +- .../audio-sdl-best.x86_64-4.1.0.args | 3 +- .../audio-sdl-best.x86_64-latest.args | 3 +- .../audio-sdl-full.x86_64-latest.args | 3 +- .../audio-sdl-minimal.x86_64-4.1.0.args | 3 +- .../audio-sdl-minimal.x86_64-latest.args | 3 +- .../audio-spice-best.x86_64-4.1.0.args | 3 +- .../audio-spice-best.x86_64-latest.args | 3 +- .../audio-spice-full.x86_64-latest.args | 3 +- .../audio-spice-minimal.x86_64-4.1.0.args | 3 +- .../audio-spice-minimal.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/autoindex.args | 3 +- .../qemuxml2argvdata/balloon-ccw-deflate.args | 3 +- .../qemuxml2argvdata/balloon-device-auto.args | 3 +- .../balloon-device-deflate-off.args | 3 +- .../balloon-device-deflate.args | 3 +- .../balloon-device-period.args | 3 +- tests/qemuxml2argvdata/balloon-device.args | 3 +- .../balloon-mmio-deflate.args | 3 +- tests/qemuxml2argvdata/bios-nvram-secure.args | 3 +- tests/qemuxml2argvdata/bios-nvram.args | 3 +- tests/qemuxml2argvdata/bios.args | 3 +- .../blkdeviotune-group-num.x86_64-4.1.0.args | 3 +- .../blkdeviotune-group-num.x86_64-latest.args | 3 +- .../blkdeviotune-max-length.x86_64-4.1.0.args | 3 +- ...blkdeviotune-max-length.x86_64-latest.args | 3 +- .../blkdeviotune-max.x86_64-4.1.0.args | 3 +- .../blkdeviotune-max.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/blkiotune-device.args | 3 +- tests/qemuxml2argvdata/blkiotune.args | 3 +- tests/qemuxml2argvdata/boot-cdrom.args | 3 +- tests/qemuxml2argvdata/boot-complex.args | 3 +- tests/qemuxml2argvdata/boot-floppy-q35.args | 3 +- tests/qemuxml2argvdata/boot-floppy.args | 3 +- .../boot-menu-disable-drive.args | 3 +- tests/qemuxml2argvdata/boot-menu-disable.args | 3 +- .../boot-menu-enable-with-timeout.args | 3 +- tests/qemuxml2argvdata/boot-menu-enable.args | 3 +- tests/qemuxml2argvdata/boot-multi.args | 3 +- tests/qemuxml2argvdata/boot-network.args | 3 +- tests/qemuxml2argvdata/boot-order.args | 3 +- tests/qemuxml2argvdata/channel-guestfwd.args | 3 +- tests/qemuxml2argvdata/channel-spicevmc.args | 3 +- .../channel-unix-guestfwd.x86_64-latest.args | 3 +- .../qemuxml2argvdata/channel-virtio-auto.args | 3 +- .../channel-virtio-autoadd.args | 3 +- .../channel-virtio-autoassign.args | 3 +- .../channel-virtio-default.args | 3 +- .../channel-virtio-state.args | 3 +- .../qemuxml2argvdata/channel-virtio-unix.args | 3 +- tests/qemuxml2argvdata/channel-virtio.args | 3 +- tests/qemuxml2argvdata/chardev-reconnect.args | 3 +- tests/qemuxml2argvdata/clock-catchup.args | 3 +- tests/qemuxml2argvdata/clock-france.args | 3 +- tests/qemuxml2argvdata/clock-hpet-off.args | 3 +- .../clock-localtime-basis-localtime.args | 3 +- tests/qemuxml2argvdata/clock-localtime.args | 3 +- tests/qemuxml2argvdata/clock-realtime.args | 3 +- .../clock-timer-armvtimer.aarch64-latest.args | 3 +- .../clock-timer-hyperv-rtc.args | 3 +- tests/qemuxml2argvdata/clock-utc.args | 3 +- tests/qemuxml2argvdata/clock-variable.args | 3 +- .../qemuxml2argvdata/console-compat-auto.args | 3 +- .../console-compat-chardev.args | 3 +- tests/qemuxml2argvdata/console-compat.args | 3 +- .../console-sclp.s390x-latest.args | 3 +- .../qemuxml2argvdata/console-virtio-ccw.args | 3 +- .../qemuxml2argvdata/console-virtio-many.args | 3 +- .../console-virtio-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/console-virtio.args | 3 +- tests/qemuxml2argvdata/controller-order.args | 3 +- .../controller-virtio-scsi.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell-noTSX.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell2.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell3.args | 3 +- ...u-Icelake-Server-pconfig.x86_64-3.1.0.args | 3 +- ...-Icelake-Server-pconfig.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-cache-disable.args | 3 +- .../qemuxml2argvdata/cpu-cache-disable2.args | 3 +- .../qemuxml2argvdata/cpu-cache-disable3.args | 3 +- .../cpu-cache-emulate-l3.args | 3 +- .../cpu-cache-passthrough.args | 3 +- .../cpu-cache-passthrough2.args | 3 +- .../cpu-check-default-none.args | 3 +- .../cpu-check-default-none2.args | 3 +- .../cpu-check-default-partial.args | 3 +- .../cpu-check-default-partial2.args | 3 +- tests/qemuxml2argvdata/cpu-check-none.args | 3 +- tests/qemuxml2argvdata/cpu-eoi-disabled.args | 3 +- tests/qemuxml2argvdata/cpu-eoi-enabled.args | 3 +- tests/qemuxml2argvdata/cpu-exact1.args | 3 +- .../cpu-exact2-nofallback.args | 3 +- tests/qemuxml2argvdata/cpu-exact2.args | 3 +- tests/qemuxml2argvdata/cpu-fallback.args | 3 +- tests/qemuxml2argvdata/cpu-host-kvmclock.args | 3 +- .../qemuxml2argvdata/cpu-host-model-cmt.args | 3 +- .../cpu-host-model-cmt.x86_64-4.0.0.args | 3 +- .../cpu-host-model-fallback.args | 3 +- .../cpu-host-model-vendor.args | 3 +- tests/qemuxml2argvdata/cpu-host-model.args | 3 +- .../cpu-host-model.x86_64-2.11.0.args | 3 +- .../cpu-host-model.x86_64-2.12.0.args | 3 +- .../cpu-host-model.x86_64-3.0.0.args | 3 +- .../cpu-host-model.x86_64-3.1.0.args | 3 +- .../cpu-host-model.x86_64-4.0.0.args | 3 +- .../cpu-host-model.x86_64-4.1.0.args | 3 +- .../cpu-host-model.x86_64-4.2.0.args | 3 +- .../cpu-host-model.x86_64-5.0.0.args | 3 +- .../cpu-host-model.x86_64-5.1.0.args | 3 +- .../cpu-host-model.x86_64-5.2.0.args | 3 +- .../cpu-host-model.x86_64-6.0.0.args | 3 +- .../cpu-host-model.x86_64-6.1.0.args | 3 +- .../cpu-host-model.x86_64-latest.args | 3 +- .../cpu-host-passthrough-features.args | 3 +- .../cpu-host-passthrough.args | 3 +- .../qemuxml2argvdata/cpu-hotplug-startup.args | 3 +- tests/qemuxml2argvdata/cpu-kvmclock.args | 3 +- tests/qemuxml2argvdata/cpu-minimum1.args | 3 +- tests/qemuxml2argvdata/cpu-minimum2.args | 3 +- .../cpu-no-removed-features.args | 3 +- tests/qemuxml2argvdata/cpu-numa-disjoint.args | 3 +- .../qemuxml2argvdata/cpu-numa-memshared.args | 3 +- .../cpu-numa-no-memory-element.args | 3 +- tests/qemuxml2argvdata/cpu-numa1.args | 3 +- tests/qemuxml2argvdata/cpu-numa2.args | 3 +- tests/qemuxml2argvdata/cpu-s390-features.args | 3 +- tests/qemuxml2argvdata/cpu-s390-zEC12.args | 3 +- tests/qemuxml2argvdata/cpu-strict1.args | 3 +- tests/qemuxml2argvdata/cpu-topology1.args | 3 +- tests/qemuxml2argvdata/cpu-topology2.args | 3 +- tests/qemuxml2argvdata/cpu-topology3.args | 3 +- .../cpu-translation.x86_64-4.0.0.args | 3 +- .../cpu-translation.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-tsc-frequency.args | 3 +- .../cpu-tsc-frequency.x86_64-4.0.0.args | 3 +- .../cputune-cpuset-big-id.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cputune-numatune.args | 3 +- .../qemuxml2argvdata/cputune-zero-shares.args | 3 +- tests/qemuxml2argvdata/cputune.args | 3 +- .../default-kvm-host-arch.args | 3 +- .../default-qemu-host-arch.args | 3 +- ...ult-video-type-aarch64.aarch64-latest.args | 3 +- ...default-video-type-ppc64.ppc64-latest.args | 3 +- ...ult-video-type-riscv64.riscv64-latest.args | 3 +- ...default-video-type-s390x.s390x-latest.args | 3 +- .../devices-acpi-index.x86_64-latest.args | 3 +- .../disk-aio-io_uring.x86_64-latest.args | 3 +- .../disk-aio.x86_64-2.12.0.args | 3 +- .../disk-aio.x86_64-latest.args | 3 +- .../disk-arm-virtio-sd.aarch64-4.0.0.args | 3 +- .../disk-arm-virtio-sd.aarch64-latest.args | 3 +- ...-backing-chains-noindex.x86_64-2.12.0.args | 3 +- ...-backing-chains-noindex.x86_64-latest.args | 3 +- .../disk-blockio.x86_64-latest.args | 3 +- .../disk-boot-cdrom.x86_64-latest.args | 3 +- .../disk-boot-disk.x86_64-latest.args | 3 +- .../disk-cache.x86_64-2.12.0.args | 3 +- .../disk-cache.x86_64-latest.args | 3 +- .../disk-cdrom-bus-other.x86_64-latest.args | 3 +- ...m-empty-network-invalid.x86_64-latest.args | 3 +- .../disk-cdrom-network.x86_64-2.12.0.args | 3 +- .../disk-cdrom-network.x86_64-latest.args | 3 +- .../disk-cdrom-tray.x86_64-2.12.0.args | 3 +- .../disk-cdrom-tray.x86_64-latest.args | 3 +- .../disk-cdrom.x86_64-2.12.0.args | 3 +- .../disk-cdrom.x86_64-latest.args | 3 +- .../disk-copy_on_read.x86_64-2.12.0.args | 3 +- .../disk-copy_on_read.x86_64-latest.args | 3 +- .../disk-detect-zeroes.x86_64-2.12.0.args | 3 +- .../disk-detect-zeroes.x86_64-latest.args | 3 +- .../disk-discard.x86_64-4.1.0.args | 3 +- .../disk-discard.x86_64-latest.args | 3 +- .../disk-error-policy-s390x.s390x-2.12.0.args | 3 +- .../disk-error-policy-s390x.s390x-latest.args | 3 +- .../disk-error-policy.x86_64-2.12.0.args | 3 +- .../disk-error-policy.x86_64-latest.args | 3 +- .../disk-floppy-q35-2_11.x86_64-2.12.0.args | 3 +- .../disk-floppy-q35-2_11.x86_64-latest.args | 3 +- .../disk-floppy-q35-2_9.x86_64-2.12.0.args | 3 +- .../disk-floppy-q35-2_9.x86_64-latest.args | 3 +- .../disk-floppy-tray.x86_64-latest.args | 3 +- .../disk-floppy.x86_64-2.12.0.args | 3 +- .../disk-floppy.x86_64-latest.args | 3 +- .../disk-fmt-qcow.x86_64-4.1.0.args | 3 +- .../disk-fmt-qcow.x86_64-latest.args | 3 +- .../disk-geometry.x86_64-latest.args | 3 +- .../disk-ide-split.x86_64-latest.args | 3 +- .../disk-ide-wwn.x86_64-latest.args | 3 +- .../disk-ioeventfd.x86_64-latest.args | 3 +- .../disk-metadata-cache.x86_64-latest.args | 3 +- .../disk-network-gluster.x86_64-2.12.0.args | 3 +- .../disk-network-gluster.x86_64-latest.args | 3 +- .../disk-network-http.x86_64-latest.args | 3 +- .../disk-network-iscsi.x86_64-2.12.0.args | 3 +- .../disk-network-iscsi.x86_64-latest.args | 3 +- .../disk-network-nbd.x86_64-2.12.0.args | 3 +- .../disk-network-nbd.x86_64-latest.args | 3 +- .../disk-network-nfs.x86_64-latest.args | 3 +- ...-network-rbd-encryption.x86_64-latest.args | 3 +- ...sk-network-rbd-no-colon.x86_64-latest.args | 3 +- .../disk-network-rbd.x86_64-2.12.0.args | 3 +- .../disk-network-rbd.x86_64-latest.args | 3 +- .../disk-network-sheepdog.x86_64-2.12.0.args | 3 +- .../disk-network-sheepdog.x86_64-6.0.0.args | 3 +- ...isk-network-source-auth.x86_64-2.12.0.args | 3 +- ...isk-network-source-auth.x86_64-latest.args | 3 +- ...isk-network-tlsx509-nbd.x86_64-2.12.0.args | 3 +- ...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 3 +- ...isk-network-tlsx509-nbd.x86_64-latest.args | 3 +- ...sk-network-tlsx509-vxhs.x86_64-2.12.0.args | 3 +- ...isk-network-tlsx509-vxhs.x86_64-5.0.0.args | 3 +- .../disk-no-boot.x86_64-latest.args | 3 +- .../disk-nvme.x86_64-latest.args | 3 +- .../disk-order.x86_64-latest.args | 3 +- .../disk-readonly-disk.x86_64-2.12.0.args | 3 +- .../disk-readonly-disk.x86_64-latest.args | 3 +- .../disk-rotation.x86_64-latest.args | 3 +- .../disk-sata-device.x86_64-latest.args | 3 +- .../disk-scsi-device-auto.x86_64-latest.args | 3 +- .../disk-scsi-disk-split.x86_64-latest.args | 3 +- .../disk-scsi-disk-vpd.x86_64-latest.args | 3 +- .../disk-scsi-disk-wwn.x86_64-latest.args | 3 +- ...sk-scsi-lun-passthrough.x86_64-latest.args | 3 +- .../disk-scsi.x86_64-latest.args | 3 +- .../disk-serial.x86_64-latest.args | 3 +- .../disk-shared.x86_64-2.12.0.args | 3 +- .../disk-shared.x86_64-latest.args | 3 +- .../disk-slices.x86_64-latest.args | 3 +- .../disk-snapshot.x86_64-latest.args | 3 +- .../disk-source-pool-mode.x86_64-4.1.0.args | 3 +- .../disk-source-pool-mode.x86_64-latest.args | 3 +- .../disk-source-pool.x86_64-4.1.0.args | 3 +- .../disk-source-pool.x86_64-latest.args | 3 +- .../disk-transient.x86_64-latest.args | 3 +- ...sk-usb-device-removable.x86_64-latest.args | 3 +- .../disk-usb-device.x86_64-latest.args | 3 +- .../disk-vhostuser.x86_64-latest.args | 3 +- .../disk-virtio-ccw-many.s390x-latest.args | 3 +- .../disk-virtio-ccw.s390x-latest.args | 3 +- .../disk-virtio-queues.x86_64-latest.args | 3 +- .../disk-virtio-s390-zpci.s390x-latest.args | 3 +- ...irtio-scsi-reservations.x86_64-2.12.0.args | 3 +- ...virtio-scsi-reservations.x86_64-5.2.0.args | 3 +- ...irtio-scsi-reservations.x86_64-latest.args | 3 +- .../disk-virtio.x86_64-latest.args | 3 +- .../encrypted-disk-usage.x86_64-4.1.0.args | 3 +- .../encrypted-disk-usage.x86_64-latest.args | 3 +- .../encrypted-disk.x86_64-4.1.0.args | 3 +- .../encrypted-disk.x86_64-latest.args | 3 +- .../eoi-disabled.x86_64-4.0.0.args | 3 +- .../eoi-disabled.x86_64-latest.args | 3 +- .../eoi-enabled.x86_64-4.0.0.args | 3 +- .../eoi-enabled.x86_64-latest.args | 3 +- .../event_idx.x86_64-latest.args | 3 +- .../fd-memory-no-numa-topology.args | 3 +- .../fd-memory-numa-topology.args | 3 +- .../fd-memory-numa-topology2.args | 3 +- .../fd-memory-numa-topology3.args | 3 +- .../fips-enabled.x86_64-5.1.0.args | 3 +- .../fips-enabled.x86_64-latest.args | 3 +- .../floppy-drive-fat.x86_64-2.12.0.args | 3 +- .../floppy-drive-fat.x86_64-latest.args | 3 +- .../fs9p-ccw.s390x-latest.args | 3 +- .../qemuxml2argvdata/fs9p.x86_64-latest.args | 3 +- .../genid-auto.x86_64-latest.args | 3 +- .../qemuxml2argvdata/genid.x86_64-latest.args | 3 +- ...egl-headless-rendernode.x86_64-latest.args | 3 +- .../graphics-egl-headless.args | 3 +- .../graphics-egl-headless.x86_64-latest.args | 3 +- .../graphics-sdl-fullscreen.args | 3 +- tests/qemuxml2argvdata/graphics-sdl.args | 3 +- ...s-spice-agent-file-xfer.x86_64-latest.args | 3 +- ...aphics-spice-agentmouse.x86_64-latest.args | 3 +- ...s-spice-auto-socket-cfg.x86_64-latest.args | 3 +- ...phics-spice-auto-socket.x86_64-latest.args | 3 +- ...phics-spice-compression.x86_64-latest.args | 3 +- ...hics-spice-egl-headless.x86_64-latest.args | 3 +- ...pice-gl-auto-rendernode.x86_64-latest.args | 3 +- .../graphics-spice-no-args.x86_64-latest.args | 3 +- .../graphics-spice-qxl-vga.x86_64-latest.args | 3 +- .../graphics-spice-sasl.x86_64-latest.args | 3 +- .../graphics-spice-socket.x86_64-latest.args | 3 +- .../graphics-spice-timeout.x86_64-latest.args | 3 +- ...raphics-spice-usb-redir.x86_64-latest.args | 3 +- .../graphics-spice.x86_64-latest.args | 3 +- ...ics-vnc-auto-socket-cfg.x86_64-2.11.0.args | 3 +- ...ics-vnc-auto-socket-cfg.x86_64-latest.args | 3 +- ...raphics-vnc-auto-socket.x86_64-2.11.0.args | 3 +- ...raphics-vnc-auto-socket.x86_64-latest.args | 3 +- ...aphics-vnc-egl-headless.x86_64-2.11.0.args | 3 +- ...aphics-vnc-egl-headless.x86_64-latest.args | 3 +- ...hics-vnc-no-listen-attr.x86_64-2.11.0.args | 3 +- ...hics-vnc-no-listen-attr.x86_64-latest.args | 3 +- .../graphics-vnc-none.x86_64-2.11.0.args | 3 +- .../graphics-vnc-none.x86_64-latest.args | 3 +- .../graphics-vnc-policy.x86_64-2.11.0.args | 3 +- .../graphics-vnc-policy.x86_64-latest.args | 3 +- .../graphics-vnc-power.x86_64-latest.args | 3 +- ...remove-generated-socket.x86_64-2.11.0.args | 3 +- ...remove-generated-socket.x86_64-latest.args | 3 +- .../graphics-vnc-sasl.x86_64-2.11.0.args | 3 +- .../graphics-vnc-sasl.x86_64-latest.args | 3 +- ...-vnc-socket-new-cmdline.x86_64-2.11.0.args | 3 +- ...-vnc-socket-new-cmdline.x86_64-latest.args | 3 +- .../graphics-vnc-socket.x86_64-2.11.0.args | 3 +- .../graphics-vnc-socket.x86_64-latest.args | 3 +- .../graphics-vnc-tls-secret.x86_64-5.2.0.args | 3 +- ...graphics-vnc-tls-secret.x86_64-latest.args | 3 +- .../graphics-vnc-tls.x86_64-2.11.0.args | 3 +- .../graphics-vnc-tls.x86_64-latest.args | 3 +- .../graphics-vnc-websocket.x86_64-2.11.0.args | 3 +- .../graphics-vnc-websocket.x86_64-latest.args | 3 +- .../graphics-vnc.x86_64-2.11.0.args | 3 +- .../graphics-vnc.x86_64-latest.args | 3 +- ...tdev-mdev-display-ramfb.x86_64-latest.args | 3 +- ...play-spice-egl-headless.x86_64-latest.args | 3 +- ...ev-display-spice-opengl.x86_64-latest.args | 3 +- ...isplay-vnc-egl-headless.x86_64-latest.args | 3 +- ...ostdev-mdev-display-vnc.x86_64-latest.args | 3 +- .../hostdev-mdev-precreated.args | 3 +- .../hostdev-pci-address-device.args | 3 +- .../hostdev-pci-address-unassigned.args | 3 +- .../qemuxml2argvdata/hostdev-pci-address.args | 3 +- .../hostdev-pci-multifunction.args | 3 +- .../hostdev-scsi-lsi.x86_64-4.1.0.args | 3 +- .../hostdev-scsi-lsi.x86_64-latest.args | 3 +- .../hostdev-scsi-vhost-scsi-ccw.args | 3 +- .../hostdev-scsi-vhost-scsi-pci.args | 3 +- .../hostdev-scsi-vhost-scsi-pcie.args | 3 +- ...hostdev-scsi-virtio-scsi.x86_64-4.1.0.args | 3 +- ...ostdev-scsi-virtio-scsi.x86_64-latest.args | 3 +- ...tdev-subsys-mdev-vfio-ap.s390x-latest.args | 3 +- ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args | 3 +- .../hostdev-subsys-mdev-vfio-ccw.args | 3 +- .../hostdev-usb-address-device-boot.args | 3 +- .../hostdev-usb-address-device.args | 3 +- .../qemuxml2argvdata/hostdev-usb-address.args | 3 +- .../hostdev-vfio-multidomain.args | 3 +- .../hostdev-vfio-zpci-autogenerate-fids.args | 3 +- .../hostdev-vfio-zpci-autogenerate-uids.args | 3 +- .../hostdev-vfio-zpci-autogenerate.args | 3 +- .../hostdev-vfio-zpci-boundaries.args | 3 +- .../hostdev-vfio-zpci-ccw-memballoon.args | 3 +- .../hostdev-vfio-zpci-multidomain-many.args | 3 +- tests/qemuxml2argvdata/hostdev-vfio-zpci.args | 3 +- tests/qemuxml2argvdata/hostdev-vfio.args | 3 +- tests/qemuxml2argvdata/hotplug-base.args | 3 +- .../hugepages-default-2M.args | 3 +- .../hugepages-default-system-size.args | 3 +- tests/qemuxml2argvdata/hugepages-default.args | 3 +- .../qemuxml2argvdata/hugepages-memaccess.args | 3 +- .../hugepages-memaccess2.args | 3 +- .../hugepages-memaccess3.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/hugepages-nodeset.args | 3 +- .../hugepages-numa-default-2M.args | 3 +- .../hugepages-numa-default-dimm.args | 3 +- .../hugepages-numa-default.args | 3 +- .../hugepages-numa-nodeset-part.args | 3 +- .../hugepages-numa-nodeset.args | 3 +- .../hugepages-nvdimm.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/hugepages-shared.args | 3 +- .../hyperv-off.x86_64-4.0.0.args | 3 +- .../hyperv-off.x86_64-latest.args | 3 +- .../hyperv-panic.x86_64-4.0.0.args | 3 +- .../hyperv-panic.x86_64-latest.args | 3 +- .../hyperv-stimer-direct.x86_64-latest.args | 3 +- .../qemuxml2argvdata/hyperv.x86_64-4.0.0.args | 3 +- .../hyperv.x86_64-latest.args | 3 +- .../input-linux.x86_64-latest.args | 3 +- .../qemuxml2argvdata/input-usbmouse-addr.args | 3 +- tests/qemuxml2argvdata/input-usbmouse.args | 3 +- tests/qemuxml2argvdata/input-usbtablet.args | 3 +- tests/qemuxml2argvdata/input-virtio-ccw.args | 3 +- .../intel-iommu-aw-bits.x86_64-latest.args | 3 +- ...ntel-iommu-caching-mode.x86_64-latest.args | 3 +- ...ntel-iommu-device-iotlb.x86_64-latest.args | 3 +- .../intel-iommu-eim.x86_64-latest.args | 3 +- .../intel-iommu.x86_64-latest.args | 3 +- .../iommu-smmuv3.aarch64-latest.args | 3 +- .../iothreads-disk-virtio-ccw.args | 3 +- tests/qemuxml2argvdata/iothreads-disk.args | 3 +- .../iothreads-ids-partial.args | 3 +- tests/qemuxml2argvdata/iothreads-ids.args | 3 +- ...othreads-virtio-scsi-ccw.s390x-latest.args | 3 +- ...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 3 +- ...threads-virtio-scsi-pci.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/iothreads.args | 3 +- tests/qemuxml2argvdata/kvm-features-off.args | 3 +- tests/qemuxml2argvdata/kvm-features.args | 3 +- tests/qemuxml2argvdata/kvm-pit-delay.args | 3 +- tests/qemuxml2argvdata/kvm-pit-discard.args | 3 +- .../kvmclock+eoi-disabled.x86_64-4.0.0.args | 3 +- .../kvmclock+eoi-disabled.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/kvmclock.args | 3 +- .../launch-security-s390-pv.s390x-latest.args | 3 +- ...v-missing-platform-info.x86_64-2.12.0.args | 3 +- .../launch-security-sev.x86_64-2.12.0.args | 3 +- .../launch-security-sev.x86_64-6.0.0.args | 3 +- .../luks-disks-source-qcow2.x86_64-5.2.0.args | 3 +- ...luks-disks-source-qcow2.x86_64-latest.args | 3 +- .../luks-disks-source.x86_64-4.1.0.args | 3 +- .../luks-disks-source.x86_64-latest.args | 3 +- .../luks-disks.x86_64-4.1.0.args | 3 +- .../luks-disks.x86_64-latest.args | 3 +- .../mach-virt-console-virtio.args | 3 +- .../mach-virt-serial-native.args | 3 +- .../mach-virt-serial-pci.args | 3 +- .../mach-virt-serial-usb.args | 3 +- .../machine-aeskeywrap-off-cap.args | 3 +- .../machine-aeskeywrap-off-caps.args | 3 +- .../machine-aeskeywrap-on-cap.args | 3 +- .../machine-aeskeywrap-on-caps.args | 3 +- tests/qemuxml2argvdata/machine-aliases1.args | 3 +- tests/qemuxml2argvdata/machine-aliases2.args | 3 +- tests/qemuxml2argvdata/machine-core-off.args | 3 +- tests/qemuxml2argvdata/machine-core-on.args | 3 +- .../machine-deakeywrap-off-cap.args | 3 +- .../machine-deakeywrap-off-caps.args | 3 +- .../machine-deakeywrap-on-cap.args | 3 +- .../machine-deakeywrap-on-caps.args | 3 +- .../machine-keywrap-none-caps.args | 3 +- .../machine-keywrap-none.args | 3 +- ...ine-loadparm-multiple-disks-nets-s390.args | 3 +- .../machine-loadparm-net-s390.args | 3 +- .../machine-loadparm-s390.args | 3 +- tests/qemuxml2argvdata/machine-smm-opt.args | 3 +- .../qemuxml2argvdata/machine-vmport-opt.args | 3 +- tests/qemuxml2argvdata/master-key.args | 3 +- ...memory-default-hugepage.x86_64-latest.args | 3 +- .../memfd-memory-numa.x86_64-latest.args | 3 +- .../memory-hotplug-dimm-addr.args | 3 +- .../qemuxml2argvdata/memory-hotplug-dimm.args | 3 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 3 +- ...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 3 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 3 +- ...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 3 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 3 +- ...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 3 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 3 +- ...emory-hotplug-nvdimm-ppc64-abi-update.args | 3 +- .../memory-hotplug-nvdimm-ppc64.args | 3 +- ...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 3 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 3 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 3 +- ...emory-hotplug-ppc64-nonuma-abi-update.args | 3 +- .../memory-hotplug-ppc64-nonuma.args | 3 +- ...mory-hotplug-virtio-mem.x86_64-latest.args | 3 +- ...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 3 +- ...ory-hotplug-virtio-pmem.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/memory-hotplug.args | 3 +- tests/qemuxml2argvdata/memtune-unlimited.args | 3 +- tests/qemuxml2argvdata/memtune.args | 3 +- .../migrate-numa-unaligned.args | 3 +- tests/qemuxml2argvdata/migrate.args | 3 +- tests/qemuxml2argvdata/minimal.args | 3 +- tests/qemuxml2argvdata/misc-acpi.args | 3 +- tests/qemuxml2argvdata/misc-disable-s3.args | 3 +- .../misc-disable-suspends.args | 3 +- tests/qemuxml2argvdata/misc-enable-s4.args | 3 +- .../misc-no-reboot.x86_64-5.2.0.args | 3 +- .../misc-no-reboot.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/misc-uuid.args | 3 +- .../mlock-off.x86_64-3.0.0.args | 3 +- .../mlock-off.x86_64-latest.args | 3 +- .../mlock-on.x86_64-3.0.0.args | 3 +- .../mlock-on.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/monitor-json.args | 3 +- .../multifunction-pci-device.args | 3 +- .../name-escape.x86_64-2.11.0.args | 3 +- tests/qemuxml2argvdata/net-client.args | 3 +- tests/qemuxml2argvdata/net-eth-hostip.args | 3 +- tests/qemuxml2argvdata/net-eth-ifname.args | 3 +- tests/qemuxml2argvdata/net-eth-names.args | 3 +- .../net-eth-unmanaged-tap.args | 3 +- tests/qemuxml2argvdata/net-eth.args | 3 +- .../net-hostdev-bootorder.args | 3 +- .../net-hostdev-multidomain.args | 3 +- .../net-hostdev-vfio-multidomain.args | 3 +- tests/qemuxml2argvdata/net-hostdev-vfio.args | 3 +- tests/qemuxml2argvdata/net-hostdev.args | 3 +- tests/qemuxml2argvdata/net-many-models.args | 3 +- tests/qemuxml2argvdata/net-mcast.args | 3 +- tests/qemuxml2argvdata/net-server.args | 3 +- tests/qemuxml2argvdata/net-udp.args | 3 +- tests/qemuxml2argvdata/net-user-addr.args | 3 +- tests/qemuxml2argvdata/net-user.args | 3 +- .../net-user.x86_64-4.0.0.args | 3 +- .../net-vdpa.x86_64-latest.args | 3 +- .../net-vhostuser-multiq.args | 3 +- tests/qemuxml2argvdata/net-vhostuser.args | 3 +- .../net-vhostuser.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/net-virtio-ccw.args | 3 +- tests/qemuxml2argvdata/net-virtio-device.args | 3 +- .../net-virtio-disable-offloads.args | 3 +- tests/qemuxml2argvdata/net-virtio-netdev.args | 3 +- .../net-virtio-rxtxqueuesize.args | 3 +- .../net-virtio-teaming-hostdev.args | 3 +- .../qemuxml2argvdata/net-virtio-teaming.args | 3 +- tests/qemuxml2argvdata/net-virtio.args | 3 +- tests/qemuxml2argvdata/nosharepages.args | 3 +- .../numad-auto-memory-vcpu-cpuset.args | 3 +- ...o-memory-vcpu-no-cpuset-and-placement.args | 3 +- .../numad-auto-vcpu-static-numatune.args | 3 +- .../numad-static-memory-auto-vcpu.args | 3 +- tests/qemuxml2argvdata/numad.args | 3 +- .../numatune-auto-nodeset-invalid.args | 3 +- .../numatune-auto-prefer.args | 3 +- .../qemuxml2argvdata/numatune-distances.args | 3 +- .../numatune-hmat.x86_64-latest.args | 3 +- .../numatune-memnode-no-memory.args | 3 +- ...emnode-restrictive-mode.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/numatune-memnode.args | 3 +- .../numatune-memnode.x86_64-5.2.0.args | 3 +- .../numatune-memnode.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/numatune-memory.args | 3 +- tests/qemuxml2argvdata/numatune-no-vcpu.args | 3 +- .../os-firmware-bios.x86_64-latest.args | 3 +- ...re-efi-no-enrolled-keys.x86_64-latest.args | 3 +- ...os-firmware-efi-secboot.x86_64-latest.args | 3 +- .../os-firmware-efi.x86_64-latest.args | 3 +- .../qemuxml2argvdata/pages-dimm-discard.args | 3 +- .../pages-discard-hugepages.args | 3 +- tests/qemuxml2argvdata/pages-discard.args | 3 +- .../panic-double.x86_64-latest.args | 3 +- .../panic-no-address.x86_64-latest.args | 3 +- .../qemuxml2argvdata/panic.x86_64-latest.args | 3 +- .../parallel-parport-chardev.args | 3 +- .../parallel-tcp-chardev.args | 3 +- .../parallel-unix-chardev.x86_64-latest.args | 3 +- ...pi-root-hotplug-disable.x86_64-latest.args | 3 +- ...cpi-root-hotplug-enable.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/pci-autoadd-addr.args | 3 +- tests/qemuxml2argvdata/pci-autoadd-idx.args | 3 +- tests/qemuxml2argvdata/pci-autofill-addr.args | 3 +- .../pci-bridge-many-disks.args | 3 +- tests/qemuxml2argvdata/pci-bridge.args | 3 +- tests/qemuxml2argvdata/pci-expander-bus.args | 3 +- tests/qemuxml2argvdata/pci-many.args | 3 +- tests/qemuxml2argvdata/pci-rom-disabled.args | 3 +- tests/qemuxml2argvdata/pci-rom.args | 3 +- .../pci-serial-dev-chardev.args | 3 +- ...e-expander-bus-aarch64.aarch64-latest.args | 3 +- tests/qemuxml2argvdata/pcie-expander-bus.args | 3 +- .../pcie-root-port-model-generic.args | 3 +- .../pcie-root-port-model-ioh3420.args | 3 +- ...cie-root-port-nohotplug.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/pcie-root-port.args | 3 +- tests/qemuxml2argvdata/pcie-root.args | 3 +- .../pcie-switch-downstream-port.args | 3 +- .../pcie-switch-upstream-port.args | 3 +- tests/qemuxml2argvdata/pcihole64-q35.args | 3 +- tests/qemuxml2argvdata/pcihole64.args | 3 +- tests/qemuxml2argvdata/pmu-feature-off.args | 3 +- tests/qemuxml2argvdata/pmu-feature.args | 3 +- tests/qemuxml2argvdata/ppc-dtb.args | 3 +- ...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 3 +- ...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 3 +- ...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 3 +- .../ppc64-pseries-graphics.ppc64-latest.args | 3 +- .../ppc64-pseries-headless.ppc64-latest.args | 3 +- .../ppc64-tpmproxy-single.ppc64-latest.args | 3 +- .../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 3 +- .../ppc64-usb-controller-legacy.args | 3 +- .../ppc64-usb-controller-qemu-xhci.args | 3 +- .../ppc64-usb-controller.args | 3 +- tests/qemuxml2argvdata/ppce500-serial.args | 3 +- tests/qemuxml2argvdata/pseries-basic.args | 3 +- .../pseries-console-virtio.args | 3 +- .../pseries-cpu-compat-power9.args | 3 +- .../qemuxml2argvdata/pseries-cpu-compat.args | 3 +- tests/qemuxml2argvdata/pseries-cpu-exact.args | 3 +- tests/qemuxml2argvdata/pseries-cpu-le.args | 3 +- tests/qemuxml2argvdata/pseries-features.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-1.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-2.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-3.args | 3 +- .../pseries-machine-max-cpu-compat.args | 3 +- .../pseries-many-buses-1.args | 3 +- .../pseries-many-buses-2.args | 3 +- .../pseries-many-devices.args | 3 +- tests/qemuxml2argvdata/pseries-nvram.args | 3 +- .../pseries-panic-missing.args | 3 +- .../pseries-panic-no-address.args | 3 +- .../pseries-phb-default-missing.args | 3 +- .../pseries-phb-numa-node.args | 3 +- .../qemuxml2argvdata/pseries-phb-simple.args | 3 +- .../pseries-serial-native.args | 3 +- .../qemuxml2argvdata/pseries-serial-pci.args | 3 +- .../qemuxml2argvdata/pseries-serial-usb.args | 3 +- .../qemuxml2argvdata/pseries-usb-default.args | 3 +- tests/qemuxml2argvdata/pseries-usb-kbd.args | 3 +- tests/qemuxml2argvdata/pseries-usb-multi.args | 3 +- .../pseries-vio-user-assigned.args | 3 +- tests/qemuxml2argvdata/pseries-vio.args | 3 +- .../pv-spinlock-disabled.x86_64-4.0.0.args | 3 +- .../pv-spinlock-disabled.x86_64-latest.args | 3 +- .../pv-spinlock-enabled.x86_64-4.0.0.args | 3 +- .../pv-spinlock-enabled.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/q35-acpi-nouefi.args | 3 +- tests/qemuxml2argvdata/q35-acpi-uefi.args | 3 +- .../q35-default-devices-only.args | 3 +- tests/qemuxml2argvdata/q35-multifunction.args | 3 +- tests/qemuxml2argvdata/q35-noacpi-nouefi.args | 3 +- .../q35-pci-force-address.args | 3 +- tests/qemuxml2argvdata/q35-pcie-autoadd.args | 3 +- tests/qemuxml2argvdata/q35-pcie.args | 3 +- .../q35-pm-disable-fallback.args | 3 +- tests/qemuxml2argvdata/q35-pm-disable.args | 3 +- tests/qemuxml2argvdata/q35-usb2-multi.args | 3 +- tests/qemuxml2argvdata/q35-usb2-reorder.args | 3 +- tests/qemuxml2argvdata/q35-usb2.args | 3 +- .../q35-virt-manager-basic.args | 3 +- tests/qemuxml2argvdata/q35-virtio-pci.args | 3 +- tests/qemuxml2argvdata/q35.args | 3 +- tests/qemuxml2argvdata/qemu-ns-alt.args | 3 +- .../qemu-ns-commandline-ns0.args | 3 +- .../qemu-ns-commandline-ns1.args | 3 +- .../qemuxml2argvdata/qemu-ns-commandline.args | 3 +- .../qemu-ns-domain-commandline-ns0.args | 3 +- .../qemu-ns-domain-commandline.args | 3 +- .../qemuxml2argvdata/qemu-ns-domain-ns0.args | 3 +- tests/qemuxml2argvdata/qemu-ns-no-env.args | 3 +- .../qemu-ns.x86_64-4.0.0.args | 3 +- .../qemu-ns.x86_64-latest.args | 3 +- .../reboot-timeout-disabled.args | 3 +- .../reboot-timeout-enabled.args | 3 +- tests/qemuxml2argvdata/restore-v2-fd.args | 3 +- tests/qemuxml2argvdata/restore-v2.args | 3 +- .../riscv64-virt-graphics.riscv64-latest.args | 3 +- .../riscv64-virt-headless.riscv64-latest.args | 3 +- tests/qemuxml2argvdata/riscv64-virt-pci.args | 3 +- tests/qemuxml2argvdata/riscv64-virt.args | 3 +- ...low-bogus-usb-controller.s390x-latest.args | 3 +- ...390-allow-bogus-usb-none.s390x-latest.args | 3 +- ...t-cpu-kvm-ccw-virtio-2.7.s390x-latest.args | 3 +- ...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 3 +- ...t-cpu-tcg-ccw-virtio-2.7.s390x-latest.args | 3 +- ...t-cpu-tcg-ccw-virtio-4.2.s390x-latest.args | 3 +- .../qemuxml2argvdata/s390-panic-missing.args | 3 +- .../s390-panic-no-address.args | 3 +- tests/qemuxml2argvdata/s390-serial-2.args | 3 +- .../qemuxml2argvdata/s390-serial-console.args | 3 +- tests/qemuxml2argvdata/s390-serial.args | 3 +- .../s390x-ccw-graphics.s390x-latest.args | 3 +- .../s390x-ccw-headless.s390x-latest.args | 3 +- tests/qemuxml2argvdata/seclabel-dac-none.args | 3 +- .../seclabel-dynamic-baselabel.args | 3 +- .../seclabel-dynamic-labelskip.args | 3 +- .../seclabel-dynamic-override.args | 3 +- .../seclabel-dynamic-relabel.args | 3 +- tests/qemuxml2argvdata/seclabel-dynamic.args | 3 +- tests/qemuxml2argvdata/seclabel-none.args | 3 +- .../seclabel-static-labelskip.args | 3 +- .../seclabel-static-relabel.args | 3 +- tests/qemuxml2argvdata/seclabel-static.args | 3 +- .../serial-dev-chardev-iobase.args | 3 +- .../qemuxml2argvdata/serial-dev-chardev.args | 3 +- .../qemuxml2argvdata/serial-file-chardev.args | 3 +- tests/qemuxml2argvdata/serial-file-log.args | 3 +- .../qemuxml2argvdata/serial-many-chardev.args | 3 +- .../qemuxml2argvdata/serial-pty-chardev.args | 3 +- .../serial-spiceport-nospice.args | 3 +- tests/qemuxml2argvdata/serial-spiceport.args | 3 +- .../qemuxml2argvdata/serial-tcp-chardev.args | 3 +- .../serial-tcp-telnet-chardev.args | 3 +- .../serial-tcp-tlsx509-chardev-notls.args | 3 +- .../serial-tcp-tlsx509-chardev-verify.args | 3 +- .../serial-tcp-tlsx509-chardev.args | 3 +- .../serial-tcp-tlsx509-secret-chardev.args | 3 +- .../qemuxml2argvdata/serial-udp-chardev.args | 3 +- .../qemuxml2argvdata/serial-unix-chardev.args | 3 +- .../serial-unix-chardev.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/serial-vc-chardev.args | 3 +- .../shmem-plain-doorbell.args | 3 +- tests/qemuxml2argvdata/shmem.args | 3 +- .../smartcard-controller.args | 3 +- .../smartcard-host-certificates-database.args | 3 +- .../smartcard-host-certificates.args | 3 +- tests/qemuxml2argvdata/smartcard-host.args | 3 +- .../smartcard-passthrough-spicevmc.args | 3 +- .../smartcard-passthrough-tcp.args | 3 +- ...rtcard-passthrough-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/smbios-type-fwcfg.args | 3 +- tests/qemuxml2argvdata/smbios.args | 3 +- tests/qemuxml2argvdata/smp-dies.args | 3 +- tests/qemuxml2argvdata/smp.args | 3 +- tests/qemuxml2argvdata/sound-device.args | 3 +- tests/qemuxml2argvdata/sound.args | 3 +- tests/qemuxml2argvdata/sparc-minimal.args | 3 +- .../tpm-emulator-spapr.ppc64-latest.args | 3 +- .../tpm-emulator-tpm2-enc.x86_64-latest.args | 3 +- ...pm-emulator-tpm2-pstate.x86_64-latest.args | 3 +- .../tpm-emulator-tpm2.x86_64-latest.args | 3 +- .../tpm-emulator.x86_64-latest.args | 3 +- .../tpm-passthrough-crb.x86_64-latest.args | 3 +- .../tpm-passthrough.x86_64-latest.args | 3 +- .../tseg-explicit-size.x86_64-latest.args | 3 +- .../usb-controller-default-q35.args | 3 +- .../usb-controller-explicit-q35.args | 3 +- .../usb-controller-qemu-xhci.args | 3 +- .../qemuxml2argvdata/usb-controller-xhci.args | 3 +- tests/qemuxml2argvdata/usb-controller.args | 3 +- .../usb-hub-autoadd-deluxe.args | 3 +- tests/qemuxml2argvdata/usb-hub-autoadd.args | 3 +- tests/qemuxml2argvdata/usb-hub.args | 3 +- .../qemuxml2argvdata/usb-ich9-autoassign.args | 3 +- .../qemuxml2argvdata/usb-ich9-companion.args | 3 +- .../qemuxml2argvdata/usb-ich9-ehci-addr.args | 3 +- .../qemuxml2argvdata/usb-long-port-path.args | 3 +- tests/qemuxml2argvdata/usb-none.args | 3 +- .../usb-piix3-controller.args | 3 +- .../qemuxml2argvdata/usb-port-autoassign.args | 3 +- tests/qemuxml2argvdata/usb-port-missing.args | 3 +- tests/qemuxml2argvdata/usb-ports.args | 3 +- tests/qemuxml2argvdata/usb-redir-boot.args | 3 +- .../usb-redir-filter-version.args | 3 +- tests/qemuxml2argvdata/usb-redir-filter.args | 3 +- .../usb-redir-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/usb-redir.args | 3 +- .../qemuxml2argvdata/usb-xhci-autoassign.args | 3 +- tests/qemuxml2argvdata/usb1-usb2.args | 3 +- tests/qemuxml2argvdata/user-aliases-usb.args | 3 +- tests/qemuxml2argvdata/user-aliases.args | 3 +- .../vcpu-placement-static.args | 3 +- ...vhost-user-fs-fd-memory.x86_64-latest.args | 3 +- ...vhost-user-fs-hugepages.x86_64-latest.args | 3 +- ...host-user-gpu-secondary.x86_64-latest.args | 3 +- .../vhost-user-vga.x86_64-latest.args | 3 +- .../vhost-vsock-auto.x86_64-latest.args | 3 +- .../vhost-vsock-ccw-auto.s390x-latest.args | 3 +- .../vhost-vsock-ccw-iommu.s390x-latest.args | 3 +- .../vhost-vsock-ccw.s390x-latest.args | 3 +- .../vhost-vsock.x86_64-latest.args | 3 +- ...eo-bochs-display-device.x86_64-latest.args | 3 +- .../video-device-pciaddr-default.args | 3 +- tests/qemuxml2argvdata/video-none-device.args | 3 +- .../video-qxl-device-vgamem.args | 3 +- ...video-qxl-device-vram64.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/video-qxl-device.args | 3 +- tests/qemuxml2argvdata/video-qxl-heads.args | 3 +- tests/qemuxml2argvdata/video-qxl-noheads.args | 3 +- .../video-qxl-resolution.args | 3 +- .../video-qxl-sec-device-vgamem.args | 3 +- ...o-qxl-sec-device-vram64.x86_64-latest.args | 3 +- .../video-qxl-sec-device.args | 3 +- ...eo-ramfb-display-device.x86_64-latest.args | 3 +- .../video-vga-device-vgamem.args | 3 +- tests/qemuxml2argvdata/video-vga-device.args | 3 +- .../qemuxml2argvdata/video-vga-qxl-heads.args | 3 +- .../video-virtio-gpu-ccw.args | 3 +- .../video-virtio-gpu-device.args | 3 +- .../video-virtio-gpu-sdl-gl.args | 3 +- .../video-virtio-gpu-secondary.args | 3 +- .../video-virtio-gpu-spice-gl.args | 3 +- .../video-virtio-gpu-virgl.args | 3 +- ...video-virtio-vga-gpu-gl.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/video-virtio-vga.args | 3 +- .../virtio-9p-createmode.x86_64-latest.args | 3 +- .../virtio-9p-multidevs.x86_64-latest.args | 3 +- .../virtio-input-passthrough.args | 3 +- tests/qemuxml2argvdata/virtio-input.args | 3 +- .../virtio-lun.x86_64-latest.args | 3 +- .../virtio-non-transitional.x86_64-3.1.0.args | 3 +- ...virtio-non-transitional.x86_64-latest.args | 3 +- ...-options-controller-ats.x86_64-latest.args | 3 +- ...ptions-controller-iommu.x86_64-latest.args | 3 +- ...tions-controller-packed.x86_64-latest.args | 3 +- ...virtio-options-disk-ats.x86_64-latest.args | 3 +- ...rtio-options-disk-iommu.x86_64-latest.args | 3 +- ...tio-options-disk-packed.x86_64-latest.args | 3 +- .../virtio-options-fs-ats.x86_64-latest.args | 3 +- ...virtio-options-fs-iommu.x86_64-latest.args | 3 +- ...irtio-options-fs-packed.x86_64-latest.args | 3 +- ...irtio-options-input-ats.x86_64-latest.args | 3 +- ...tio-options-input-iommu.x86_64-latest.args | 3 +- ...io-options-input-packed.x86_64-latest.args | 3 +- ...-options-memballoon-ats.x86_64-latest.args | 3 +- ...loon-freepage-reporting.x86_64-latest.args | 3 +- ...ptions-memballoon-iommu.x86_64-latest.args | 3 +- ...tions-memballoon-packed.x86_64-latest.args | 3 +- .../virtio-options-net-ats.x86_64-latest.args | 3 +- ...irtio-options-net-iommu.x86_64-latest.args | 3 +- ...rtio-options-net-packed.x86_64-latest.args | 3 +- .../virtio-options-rng-ats.x86_64-latest.args | 3 +- ...irtio-options-rng-iommu.x86_64-latest.args | 3 +- ...rtio-options-rng-packed.x86_64-latest.args | 3 +- ...irtio-options-video-ats.x86_64-latest.args | 3 +- ...tio-options-video-iommu.x86_64-latest.args | 3 +- ...io-options-video-packed.x86_64-latest.args | 3 +- .../virtio-options.x86_64-latest.args | 3 +- .../virtio-rng-builtin.x86_64-5.2.0.args | 3 +- .../virtio-rng-builtin.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/virtio-rng-ccw.args | 3 +- .../qemuxml2argvdata/virtio-rng-default.args | 3 +- .../virtio-rng-egd-unix.x86_64-5.2.0.args | 3 +- .../virtio-rng-egd-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/virtio-rng-egd.args | 3 +- .../qemuxml2argvdata/virtio-rng-multiple.args | 3 +- tests/qemuxml2argvdata/virtio-rng-random.args | 3 +- .../virtio-transitional.x86_64-3.1.0.args | 3 +- .../virtio-transitional.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/vmcoreinfo.args | 3 +- .../watchdog-device.x86_64-latest.args | 3 +- .../watchdog-diag288.s390x-latest.args | 3 +- .../watchdog-dump.x86_64-latest.args | 3 +- .../watchdog-injectnmi.x86_64-latest.args | 3 +- .../watchdog.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/x86-kvm-32-on-64.args | 3 +- ...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 3 +- ...default-cpu-kvm-q35-4.2.x86_64-latest.args | 3 +- ...efault-cpu-tcg-features.x86_64-latest.args | 40 +++++++++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 3 +- ...default-cpu-tcg-q35-4.2.x86_64-latest.args | 3 +- .../x86_64-pc-graphics.x86_64-latest.args | 3 +- .../x86_64-pc-headless.x86_64-latest.args | 3 +- .../x86_64-q35-graphics.x86_64-latest.args | 3 +- .../x86_64-q35-headless.x86_64-latest.args | 3 +- tests/qemuxml2argvtest.c | 1 + ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 904 files changed, 2075 insertions(+), 928 deletions(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml -- 2.32.0

The domain accelerator was validated in qemuValidateDomainDef() which calls virQEMUCapsIsVirtTypeSupported() which reports proper error if QEMU is not capable of KVM/TCG. There is no point in doing the validation again when building command line. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_command.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 483041f584..cd133cc86c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7061,15 +7061,8 @@ qemuBuildMachineCommandLine(virCommand *cmd, case VIR_DOMAIN_VIRT_BHYVE: case VIR_DOMAIN_VIRT_VZ: case VIR_DOMAIN_VIRT_NONE: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("the QEMU binary does not support %s"), - virDomainVirtTypeToString(def->virtType)); - return -1; - case VIR_DOMAIN_VIRT_LAST: - default: - virReportEnumRangeError(virDomainVirtType, def->virtType); - return -1; + break; } /* To avoid the collision of creating USB controllers when calling -- 2.32.0

On Fri, Nov 05, 2021 at 10:35:17 +0100, Michal Privoznik wrote:
The domain accelerator was validated in qemuValidateDomainDef() which calls virQEMUCapsIsVirtTypeSupported() which reports proper error if QEMU is not capable of KVM/TCG. There is no point in doing the validation again when building command line.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_command.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

We currently use -machine accel=XXX which is just a syntax sugar for -accel XXX. The former doesn't allow specifying arguments for accelerator, because all arguments passed to -machine are treated as arguments of machine itself. The -accel argument was introduced in QEMU commit v2.9.0-rc0~70^2~19 and since our minimum required version is newer (2.11.0) we can safely assume its existence and use it without any capability. Resolves: https://gitlab.com/libvirt/libvirt/-/issues/233 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- This patch was intentionally trimmed. Find full version here: https://gitlab.com/MichalPrivoznik/libvirt/-/commit/cfb25620d48e508dc7e6a72d... src/qemu/qemu_command.c | 68 +++++++++++-------- .../aarch64-aavmf-virtio-mmio.args | 3 +- tests/qemuxml2argvdata/aarch64-acpi-uefi.args | 3 +- .../aarch64-cpu-passthrough.args | 3 +- ...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 3 +- ...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 3 +- .../aarch64-features-sve.aarch64-latest.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-host.args | 3 +- .../aarch64-gic-none-tcg.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-v2.args | 3 +- tests/qemuxml2argvdata/aarch64-gic-v3.args | 3 +- .../aarch64-kvm-32-on-64.args | 3 +- .../aarch64-noacpi-nouefi.args | 3 +- .../qemuxml2argvdata/aarch64-noacpi-uefi.args | 3 +- ...arch64-os-firmware-efi.aarch64-latest.args | 3 +- .../qemuxml2argvdata/aarch64-pci-serial.args | 3 +- .../aarch64-tpm.aarch64-latest.args | 3 +- .../aarch64-traditional-pci.args | 3 +- .../aarch64-usb-controller-nec-xhci.args | 3 +- .../aarch64-usb-controller-qemu-xhci.args | 3 +- .../aarch64-video-default.args | 3 +- .../aarch64-video-virtio-gpu-pci.args | 3 +- .../aarch64-virt-2.6-virtio-pci-default.args | 3 +- .../aarch64-virt-default-nic.args | 3 +- .../aarch64-virt-graphics.aarch64-latest.args | 3 +- .../aarch64-virt-headless.aarch64-latest.args | 3 +- .../qemuxml2argvdata/aarch64-virt-virtio.args | 3 +- .../aarch64-virtio-pci-default.args | 3 +- .../aarch64-virtio-pci-manual-addresses.args | 3 +- tests/qemuxml2argvdata/acpi-table.args | 3 +- .../arm-vexpressa9-basic.args | 3 +- .../arm-vexpressa9-nodevs.args | 3 +- .../arm-vexpressa9-virtio.args | 3 +- tests/qemuxml2argvdata/arm-virt-virtio.args | 3 +- .../audio-alsa-best.x86_64-4.1.0.args | 3 +- .../audio-alsa-best.x86_64-latest.args | 3 +- .../audio-alsa-full.x86_64-latest.args | 3 +- .../audio-alsa-minimal.x86_64-4.1.0.args | 3 +- .../audio-alsa-minimal.x86_64-latest.args | 3 +- .../audio-coreaudio-best.x86_64-4.1.0.args | 3 +- .../audio-coreaudio-best.x86_64-latest.args | 3 +- .../audio-coreaudio-full.x86_64-latest.args | 3 +- .../audio-coreaudio-minimal.x86_64-4.1.0.args | 3 +- ...audio-coreaudio-minimal.x86_64-latest.args | 3 +- ...audio-default-nographics.x86_64-4.1.0.args | 3 +- ...udio-default-nographics.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/audio-default-sdl.args | 3 +- .../audio-default-sdl.x86_64-latest.args | 3 +- .../qemuxml2argvdata/audio-default-spice.args | 3 +- .../audio-default-spice.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/audio-default-vnc.args | 3 +- .../audio-default-vnc.x86_64-latest.args | 3 +- .../audio-file-best.x86_64-4.1.0.args | 3 +- .../audio-file-best.x86_64-latest.args | 3 +- .../audio-file-full.x86_64-latest.args | 3 +- .../audio-file-minimal.x86_64-4.1.0.args | 3 +- .../audio-file-minimal.x86_64-latest.args | 3 +- .../audio-jack-full.x86_64-latest.args | 3 +- .../audio-jack-minimal.x86_64-latest.args | 3 +- .../audio-many-backends.x86_64-latest.args | 3 +- .../audio-none-best.x86_64-4.1.0.args | 3 +- .../audio-none-best.x86_64-latest.args | 3 +- .../audio-none-full.x86_64-latest.args | 3 +- .../audio-none-minimal.x86_64-4.1.0.args | 3 +- .../audio-none-minimal.x86_64-latest.args | 3 +- .../audio-oss-best.x86_64-4.1.0.args | 3 +- .../audio-oss-best.x86_64-latest.args | 3 +- .../audio-oss-full.x86_64-latest.args | 3 +- .../audio-oss-minimal.x86_64-4.1.0.args | 3 +- .../audio-oss-minimal.x86_64-latest.args | 3 +- .../audio-pulseaudio-best.x86_64-4.1.0.args | 3 +- .../audio-pulseaudio-best.x86_64-latest.args | 3 +- .../audio-pulseaudio-full.x86_64-latest.args | 3 +- ...audio-pulseaudio-minimal.x86_64-4.1.0.args | 3 +- ...udio-pulseaudio-minimal.x86_64-latest.args | 3 +- .../audio-sdl-best.x86_64-4.1.0.args | 3 +- .../audio-sdl-best.x86_64-latest.args | 3 +- .../audio-sdl-full.x86_64-latest.args | 3 +- .../audio-sdl-minimal.x86_64-4.1.0.args | 3 +- .../audio-sdl-minimal.x86_64-latest.args | 3 +- .../audio-spice-best.x86_64-4.1.0.args | 3 +- .../audio-spice-best.x86_64-latest.args | 3 +- .../audio-spice-full.x86_64-latest.args | 3 +- .../audio-spice-minimal.x86_64-4.1.0.args | 3 +- .../audio-spice-minimal.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/autoindex.args | 3 +- .../qemuxml2argvdata/balloon-ccw-deflate.args | 3 +- .../qemuxml2argvdata/balloon-device-auto.args | 3 +- .../balloon-device-deflate-off.args | 3 +- .../balloon-device-deflate.args | 3 +- .../balloon-device-period.args | 3 +- tests/qemuxml2argvdata/balloon-device.args | 3 +- .../balloon-mmio-deflate.args | 3 +- tests/qemuxml2argvdata/bios-nvram-secure.args | 3 +- tests/qemuxml2argvdata/bios-nvram.args | 3 +- tests/qemuxml2argvdata/bios.args | 3 +- .../blkdeviotune-group-num.x86_64-4.1.0.args | 3 +- .../blkdeviotune-group-num.x86_64-latest.args | 3 +- .../blkdeviotune-max-length.x86_64-4.1.0.args | 3 +- ...blkdeviotune-max-length.x86_64-latest.args | 3 +- .../blkdeviotune-max.x86_64-4.1.0.args | 3 +- .../blkdeviotune-max.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/blkiotune-device.args | 3 +- tests/qemuxml2argvdata/blkiotune.args | 3 +- tests/qemuxml2argvdata/boot-cdrom.args | 3 +- tests/qemuxml2argvdata/boot-complex.args | 3 +- tests/qemuxml2argvdata/boot-floppy-q35.args | 3 +- tests/qemuxml2argvdata/boot-floppy.args | 3 +- .../boot-menu-disable-drive.args | 3 +- tests/qemuxml2argvdata/boot-menu-disable.args | 3 +- .../boot-menu-enable-with-timeout.args | 3 +- tests/qemuxml2argvdata/boot-menu-enable.args | 3 +- tests/qemuxml2argvdata/boot-multi.args | 3 +- tests/qemuxml2argvdata/boot-network.args | 3 +- tests/qemuxml2argvdata/boot-order.args | 3 +- tests/qemuxml2argvdata/channel-guestfwd.args | 3 +- tests/qemuxml2argvdata/channel-spicevmc.args | 3 +- .../channel-unix-guestfwd.x86_64-latest.args | 3 +- .../qemuxml2argvdata/channel-virtio-auto.args | 3 +- .../channel-virtio-autoadd.args | 3 +- .../channel-virtio-autoassign.args | 3 +- .../channel-virtio-default.args | 3 +- .../channel-virtio-state.args | 3 +- .../qemuxml2argvdata/channel-virtio-unix.args | 3 +- tests/qemuxml2argvdata/channel-virtio.args | 3 +- tests/qemuxml2argvdata/chardev-reconnect.args | 3 +- tests/qemuxml2argvdata/clock-catchup.args | 3 +- tests/qemuxml2argvdata/clock-france.args | 3 +- tests/qemuxml2argvdata/clock-hpet-off.args | 3 +- .../clock-localtime-basis-localtime.args | 3 +- tests/qemuxml2argvdata/clock-localtime.args | 3 +- tests/qemuxml2argvdata/clock-realtime.args | 3 +- .../clock-timer-armvtimer.aarch64-latest.args | 3 +- .../clock-timer-hyperv-rtc.args | 3 +- tests/qemuxml2argvdata/clock-utc.args | 3 +- tests/qemuxml2argvdata/clock-variable.args | 3 +- .../qemuxml2argvdata/console-compat-auto.args | 3 +- .../console-compat-chardev.args | 3 +- tests/qemuxml2argvdata/console-compat.args | 3 +- .../console-sclp.s390x-latest.args | 3 +- .../qemuxml2argvdata/console-virtio-ccw.args | 3 +- .../qemuxml2argvdata/console-virtio-many.args | 3 +- .../console-virtio-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/console-virtio.args | 3 +- tests/qemuxml2argvdata/controller-order.args | 3 +- .../controller-virtio-scsi.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell-noTSX.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell2.args | 3 +- tests/qemuxml2argvdata/cpu-Haswell3.args | 3 +- ...u-Icelake-Server-pconfig.x86_64-3.1.0.args | 3 +- ...-Icelake-Server-pconfig.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-cache-disable.args | 3 +- .../qemuxml2argvdata/cpu-cache-disable2.args | 3 +- .../qemuxml2argvdata/cpu-cache-disable3.args | 3 +- .../cpu-cache-emulate-l3.args | 3 +- .../cpu-cache-passthrough.args | 3 +- .../cpu-cache-passthrough2.args | 3 +- .../cpu-check-default-none.args | 3 +- .../cpu-check-default-none2.args | 3 +- .../cpu-check-default-partial.args | 3 +- .../cpu-check-default-partial2.args | 3 +- tests/qemuxml2argvdata/cpu-check-none.args | 3 +- tests/qemuxml2argvdata/cpu-eoi-disabled.args | 3 +- tests/qemuxml2argvdata/cpu-eoi-enabled.args | 3 +- tests/qemuxml2argvdata/cpu-exact1.args | 3 +- .../cpu-exact2-nofallback.args | 3 +- tests/qemuxml2argvdata/cpu-exact2.args | 3 +- tests/qemuxml2argvdata/cpu-fallback.args | 3 +- tests/qemuxml2argvdata/cpu-host-kvmclock.args | 3 +- .../qemuxml2argvdata/cpu-host-model-cmt.args | 3 +- .../cpu-host-model-cmt.x86_64-4.0.0.args | 3 +- .../cpu-host-model-fallback.args | 3 +- .../cpu-host-model-vendor.args | 3 +- tests/qemuxml2argvdata/cpu-host-model.args | 3 +- .../cpu-host-model.x86_64-2.11.0.args | 3 +- .../cpu-host-model.x86_64-2.12.0.args | 3 +- .../cpu-host-model.x86_64-3.0.0.args | 3 +- .../cpu-host-model.x86_64-3.1.0.args | 3 +- .../cpu-host-model.x86_64-4.0.0.args | 3 +- .../cpu-host-model.x86_64-4.1.0.args | 3 +- .../cpu-host-model.x86_64-4.2.0.args | 3 +- .../cpu-host-model.x86_64-5.0.0.args | 3 +- .../cpu-host-model.x86_64-5.1.0.args | 3 +- .../cpu-host-model.x86_64-5.2.0.args | 3 +- .../cpu-host-model.x86_64-6.0.0.args | 3 +- .../cpu-host-model.x86_64-6.1.0.args | 3 +- .../cpu-host-model.x86_64-latest.args | 3 +- .../cpu-host-passthrough-features.args | 3 +- .../cpu-host-passthrough.args | 3 +- .../qemuxml2argvdata/cpu-hotplug-startup.args | 3 +- tests/qemuxml2argvdata/cpu-kvmclock.args | 3 +- tests/qemuxml2argvdata/cpu-minimum1.args | 3 +- tests/qemuxml2argvdata/cpu-minimum2.args | 3 +- .../cpu-no-removed-features.args | 3 +- tests/qemuxml2argvdata/cpu-numa-disjoint.args | 3 +- .../qemuxml2argvdata/cpu-numa-memshared.args | 3 +- .../cpu-numa-no-memory-element.args | 3 +- tests/qemuxml2argvdata/cpu-numa1.args | 3 +- tests/qemuxml2argvdata/cpu-numa2.args | 3 +- tests/qemuxml2argvdata/cpu-s390-features.args | 3 +- tests/qemuxml2argvdata/cpu-s390-zEC12.args | 3 +- tests/qemuxml2argvdata/cpu-strict1.args | 3 +- tests/qemuxml2argvdata/cpu-topology1.args | 3 +- tests/qemuxml2argvdata/cpu-topology2.args | 3 +- tests/qemuxml2argvdata/cpu-topology3.args | 3 +- .../cpu-translation.x86_64-4.0.0.args | 3 +- .../cpu-translation.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cpu-tsc-frequency.args | 3 +- .../cpu-tsc-frequency.x86_64-4.0.0.args | 3 +- .../cputune-cpuset-big-id.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/cputune-numatune.args | 3 +- .../qemuxml2argvdata/cputune-zero-shares.args | 3 +- tests/qemuxml2argvdata/cputune.args | 3 +- .../default-kvm-host-arch.args | 3 +- .../default-qemu-host-arch.args | 3 +- ...ult-video-type-aarch64.aarch64-latest.args | 3 +- ...default-video-type-ppc64.ppc64-latest.args | 3 +- ...ult-video-type-riscv64.riscv64-latest.args | 3 +- ...default-video-type-s390x.s390x-latest.args | 3 +- .../devices-acpi-index.x86_64-latest.args | 3 +- .../disk-aio-io_uring.x86_64-latest.args | 3 +- .../disk-aio.x86_64-2.12.0.args | 3 +- .../disk-aio.x86_64-latest.args | 3 +- .../disk-arm-virtio-sd.aarch64-4.0.0.args | 3 +- .../disk-arm-virtio-sd.aarch64-latest.args | 3 +- ...-backing-chains-noindex.x86_64-2.12.0.args | 3 +- ...-backing-chains-noindex.x86_64-latest.args | 3 +- .../disk-blockio.x86_64-latest.args | 3 +- .../disk-boot-cdrom.x86_64-latest.args | 3 +- .../disk-boot-disk.x86_64-latest.args | 3 +- .../disk-cache.x86_64-2.12.0.args | 3 +- .../disk-cache.x86_64-latest.args | 3 +- .../disk-cdrom-bus-other.x86_64-latest.args | 3 +- ...m-empty-network-invalid.x86_64-latest.args | 3 +- .../disk-cdrom-network.x86_64-2.12.0.args | 3 +- .../disk-cdrom-network.x86_64-latest.args | 3 +- .../disk-cdrom-tray.x86_64-2.12.0.args | 3 +- .../disk-cdrom-tray.x86_64-latest.args | 3 +- .../disk-cdrom.x86_64-2.12.0.args | 3 +- .../disk-cdrom.x86_64-latest.args | 3 +- .../disk-copy_on_read.x86_64-2.12.0.args | 3 +- .../disk-copy_on_read.x86_64-latest.args | 3 +- .../disk-detect-zeroes.x86_64-2.12.0.args | 3 +- .../disk-detect-zeroes.x86_64-latest.args | 3 +- .../disk-discard.x86_64-4.1.0.args | 3 +- .../disk-discard.x86_64-latest.args | 3 +- .../disk-error-policy-s390x.s390x-2.12.0.args | 3 +- .../disk-error-policy-s390x.s390x-latest.args | 3 +- .../disk-error-policy.x86_64-2.12.0.args | 3 +- .../disk-error-policy.x86_64-latest.args | 3 +- .../disk-floppy-q35-2_11.x86_64-2.12.0.args | 3 +- .../disk-floppy-q35-2_11.x86_64-latest.args | 3 +- .../disk-floppy-q35-2_9.x86_64-2.12.0.args | 3 +- .../disk-floppy-q35-2_9.x86_64-latest.args | 3 +- .../disk-floppy-tray.x86_64-latest.args | 3 +- .../disk-floppy.x86_64-2.12.0.args | 3 +- .../disk-floppy.x86_64-latest.args | 3 +- .../disk-fmt-qcow.x86_64-4.1.0.args | 3 +- .../disk-fmt-qcow.x86_64-latest.args | 3 +- .../disk-geometry.x86_64-latest.args | 3 +- .../disk-ide-split.x86_64-latest.args | 3 +- .../disk-ide-wwn.x86_64-latest.args | 3 +- .../disk-ioeventfd.x86_64-latest.args | 3 +- .../disk-metadata-cache.x86_64-latest.args | 3 +- .../disk-network-gluster.x86_64-2.12.0.args | 3 +- .../disk-network-gluster.x86_64-latest.args | 3 +- .../disk-network-http.x86_64-latest.args | 3 +- .../disk-network-iscsi.x86_64-2.12.0.args | 3 +- .../disk-network-iscsi.x86_64-latest.args | 3 +- .../disk-network-nbd.x86_64-2.12.0.args | 3 +- .../disk-network-nbd.x86_64-latest.args | 3 +- .../disk-network-nfs.x86_64-latest.args | 3 +- ...-network-rbd-encryption.x86_64-latest.args | 3 +- ...sk-network-rbd-no-colon.x86_64-latest.args | 3 +- .../disk-network-rbd.x86_64-2.12.0.args | 3 +- .../disk-network-rbd.x86_64-latest.args | 3 +- .../disk-network-sheepdog.x86_64-2.12.0.args | 3 +- .../disk-network-sheepdog.x86_64-6.0.0.args | 3 +- ...isk-network-source-auth.x86_64-2.12.0.args | 3 +- ...isk-network-source-auth.x86_64-latest.args | 3 +- ...isk-network-tlsx509-nbd.x86_64-2.12.0.args | 3 +- ...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 3 +- ...isk-network-tlsx509-nbd.x86_64-latest.args | 3 +- ...sk-network-tlsx509-vxhs.x86_64-2.12.0.args | 3 +- ...isk-network-tlsx509-vxhs.x86_64-5.0.0.args | 3 +- .../disk-no-boot.x86_64-latest.args | 3 +- .../disk-nvme.x86_64-latest.args | 3 +- .../disk-order.x86_64-latest.args | 3 +- .../disk-readonly-disk.x86_64-2.12.0.args | 3 +- .../disk-readonly-disk.x86_64-latest.args | 3 +- .../disk-rotation.x86_64-latest.args | 3 +- .../disk-sata-device.x86_64-latest.args | 3 +- .../disk-scsi-device-auto.x86_64-latest.args | 3 +- .../disk-scsi-disk-split.x86_64-latest.args | 3 +- .../disk-scsi-disk-vpd.x86_64-latest.args | 3 +- .../disk-scsi-disk-wwn.x86_64-latest.args | 3 +- ...sk-scsi-lun-passthrough.x86_64-latest.args | 3 +- .../disk-scsi.x86_64-latest.args | 3 +- .../disk-serial.x86_64-latest.args | 3 +- .../disk-shared.x86_64-2.12.0.args | 3 +- .../disk-shared.x86_64-latest.args | 3 +- .../disk-slices.x86_64-latest.args | 3 +- .../disk-snapshot.x86_64-latest.args | 3 +- .../disk-source-pool-mode.x86_64-4.1.0.args | 3 +- .../disk-source-pool-mode.x86_64-latest.args | 3 +- .../disk-source-pool.x86_64-4.1.0.args | 3 +- .../disk-source-pool.x86_64-latest.args | 3 +- .../disk-transient.x86_64-latest.args | 3 +- ...sk-usb-device-removable.x86_64-latest.args | 3 +- .../disk-usb-device.x86_64-latest.args | 3 +- .../disk-vhostuser.x86_64-latest.args | 3 +- .../disk-virtio-ccw-many.s390x-latest.args | 3 +- .../disk-virtio-ccw.s390x-latest.args | 3 +- .../disk-virtio-queues.x86_64-latest.args | 3 +- .../disk-virtio-s390-zpci.s390x-latest.args | 3 +- ...irtio-scsi-reservations.x86_64-2.12.0.args | 3 +- ...virtio-scsi-reservations.x86_64-5.2.0.args | 3 +- ...irtio-scsi-reservations.x86_64-latest.args | 3 +- .../disk-virtio.x86_64-latest.args | 3 +- .../encrypted-disk-usage.x86_64-4.1.0.args | 3 +- .../encrypted-disk-usage.x86_64-latest.args | 3 +- .../encrypted-disk.x86_64-4.1.0.args | 3 +- .../encrypted-disk.x86_64-latest.args | 3 +- .../eoi-disabled.x86_64-4.0.0.args | 3 +- .../eoi-disabled.x86_64-latest.args | 3 +- .../eoi-enabled.x86_64-4.0.0.args | 3 +- .../eoi-enabled.x86_64-latest.args | 3 +- .../event_idx.x86_64-latest.args | 3 +- .../fd-memory-no-numa-topology.args | 3 +- .../fd-memory-numa-topology.args | 3 +- .../fd-memory-numa-topology2.args | 3 +- .../fd-memory-numa-topology3.args | 3 +- .../fips-enabled.x86_64-5.1.0.args | 3 +- .../fips-enabled.x86_64-latest.args | 3 +- .../floppy-drive-fat.x86_64-2.12.0.args | 3 +- .../floppy-drive-fat.x86_64-latest.args | 3 +- .../fs9p-ccw.s390x-latest.args | 3 +- .../qemuxml2argvdata/fs9p.x86_64-latest.args | 3 +- .../genid-auto.x86_64-latest.args | 3 +- .../qemuxml2argvdata/genid.x86_64-latest.args | 3 +- ...egl-headless-rendernode.x86_64-latest.args | 3 +- .../graphics-egl-headless.args | 3 +- .../graphics-egl-headless.x86_64-latest.args | 3 +- .../graphics-sdl-fullscreen.args | 3 +- tests/qemuxml2argvdata/graphics-sdl.args | 3 +- ...s-spice-agent-file-xfer.x86_64-latest.args | 3 +- ...aphics-spice-agentmouse.x86_64-latest.args | 3 +- ...s-spice-auto-socket-cfg.x86_64-latest.args | 3 +- ...phics-spice-auto-socket.x86_64-latest.args | 3 +- ...phics-spice-compression.x86_64-latest.args | 3 +- ...hics-spice-egl-headless.x86_64-latest.args | 3 +- ...pice-gl-auto-rendernode.x86_64-latest.args | 3 +- .../graphics-spice-no-args.x86_64-latest.args | 3 +- .../graphics-spice-qxl-vga.x86_64-latest.args | 3 +- .../graphics-spice-sasl.x86_64-latest.args | 3 +- .../graphics-spice-socket.x86_64-latest.args | 3 +- .../graphics-spice-timeout.x86_64-latest.args | 3 +- ...raphics-spice-usb-redir.x86_64-latest.args | 3 +- .../graphics-spice.x86_64-latest.args | 3 +- ...ics-vnc-auto-socket-cfg.x86_64-2.11.0.args | 3 +- ...ics-vnc-auto-socket-cfg.x86_64-latest.args | 3 +- ...raphics-vnc-auto-socket.x86_64-2.11.0.args | 3 +- ...raphics-vnc-auto-socket.x86_64-latest.args | 3 +- ...aphics-vnc-egl-headless.x86_64-2.11.0.args | 3 +- ...aphics-vnc-egl-headless.x86_64-latest.args | 3 +- ...hics-vnc-no-listen-attr.x86_64-2.11.0.args | 3 +- ...hics-vnc-no-listen-attr.x86_64-latest.args | 3 +- .../graphics-vnc-none.x86_64-2.11.0.args | 3 +- .../graphics-vnc-none.x86_64-latest.args | 3 +- .../graphics-vnc-policy.x86_64-2.11.0.args | 3 +- .../graphics-vnc-policy.x86_64-latest.args | 3 +- .../graphics-vnc-power.x86_64-latest.args | 3 +- ...remove-generated-socket.x86_64-2.11.0.args | 3 +- ...remove-generated-socket.x86_64-latest.args | 3 +- .../graphics-vnc-sasl.x86_64-2.11.0.args | 3 +- .../graphics-vnc-sasl.x86_64-latest.args | 3 +- ...-vnc-socket-new-cmdline.x86_64-2.11.0.args | 3 +- ...-vnc-socket-new-cmdline.x86_64-latest.args | 3 +- .../graphics-vnc-socket.x86_64-2.11.0.args | 3 +- .../graphics-vnc-socket.x86_64-latest.args | 3 +- .../graphics-vnc-tls-secret.x86_64-5.2.0.args | 3 +- ...graphics-vnc-tls-secret.x86_64-latest.args | 3 +- .../graphics-vnc-tls.x86_64-2.11.0.args | 3 +- .../graphics-vnc-tls.x86_64-latest.args | 3 +- .../graphics-vnc-websocket.x86_64-2.11.0.args | 3 +- .../graphics-vnc-websocket.x86_64-latest.args | 3 +- .../graphics-vnc.x86_64-2.11.0.args | 3 +- .../graphics-vnc.x86_64-latest.args | 3 +- ...tdev-mdev-display-ramfb.x86_64-latest.args | 3 +- ...play-spice-egl-headless.x86_64-latest.args | 3 +- ...ev-display-spice-opengl.x86_64-latest.args | 3 +- ...isplay-vnc-egl-headless.x86_64-latest.args | 3 +- ...ostdev-mdev-display-vnc.x86_64-latest.args | 3 +- .../hostdev-mdev-precreated.args | 3 +- .../hostdev-pci-address-device.args | 3 +- .../hostdev-pci-address-unassigned.args | 3 +- .../qemuxml2argvdata/hostdev-pci-address.args | 3 +- .../hostdev-pci-multifunction.args | 3 +- .../hostdev-scsi-lsi.x86_64-4.1.0.args | 3 +- .../hostdev-scsi-lsi.x86_64-latest.args | 3 +- .../hostdev-scsi-vhost-scsi-ccw.args | 3 +- .../hostdev-scsi-vhost-scsi-pci.args | 3 +- .../hostdev-scsi-vhost-scsi-pcie.args | 3 +- ...hostdev-scsi-virtio-scsi.x86_64-4.1.0.args | 3 +- ...ostdev-scsi-virtio-scsi.x86_64-latest.args | 3 +- ...tdev-subsys-mdev-vfio-ap.s390x-latest.args | 3 +- ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args | 3 +- .../hostdev-subsys-mdev-vfio-ccw.args | 3 +- .../hostdev-usb-address-device-boot.args | 3 +- .../hostdev-usb-address-device.args | 3 +- .../qemuxml2argvdata/hostdev-usb-address.args | 3 +- .../hostdev-vfio-multidomain.args | 3 +- .../hostdev-vfio-zpci-autogenerate-fids.args | 3 +- .../hostdev-vfio-zpci-autogenerate-uids.args | 3 +- .../hostdev-vfio-zpci-autogenerate.args | 3 +- .../hostdev-vfio-zpci-boundaries.args | 3 +- .../hostdev-vfio-zpci-ccw-memballoon.args | 3 +- .../hostdev-vfio-zpci-multidomain-many.args | 3 +- tests/qemuxml2argvdata/hostdev-vfio-zpci.args | 3 +- tests/qemuxml2argvdata/hostdev-vfio.args | 3 +- tests/qemuxml2argvdata/hotplug-base.args | 3 +- .../hugepages-default-2M.args | 3 +- .../hugepages-default-system-size.args | 3 +- tests/qemuxml2argvdata/hugepages-default.args | 3 +- .../qemuxml2argvdata/hugepages-memaccess.args | 3 +- .../hugepages-memaccess2.args | 3 +- .../hugepages-memaccess3.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/hugepages-nodeset.args | 3 +- .../hugepages-numa-default-2M.args | 3 +- .../hugepages-numa-default-dimm.args | 3 +- .../hugepages-numa-default.args | 3 +- .../hugepages-numa-nodeset-part.args | 3 +- .../hugepages-numa-nodeset.args | 3 +- .../hugepages-nvdimm.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/hugepages-shared.args | 3 +- .../hyperv-off.x86_64-4.0.0.args | 3 +- .../hyperv-off.x86_64-latest.args | 3 +- .../hyperv-panic.x86_64-4.0.0.args | 3 +- .../hyperv-panic.x86_64-latest.args | 3 +- .../hyperv-stimer-direct.x86_64-latest.args | 3 +- .../qemuxml2argvdata/hyperv.x86_64-4.0.0.args | 3 +- .../hyperv.x86_64-latest.args | 3 +- .../input-linux.x86_64-latest.args | 3 +- .../qemuxml2argvdata/input-usbmouse-addr.args | 3 +- tests/qemuxml2argvdata/input-usbmouse.args | 3 +- tests/qemuxml2argvdata/input-usbtablet.args | 3 +- tests/qemuxml2argvdata/input-virtio-ccw.args | 3 +- .../intel-iommu-aw-bits.x86_64-latest.args | 3 +- ...ntel-iommu-caching-mode.x86_64-latest.args | 3 +- ...ntel-iommu-device-iotlb.x86_64-latest.args | 3 +- .../intel-iommu-eim.x86_64-latest.args | 3 +- .../intel-iommu.x86_64-latest.args | 3 +- .../iommu-smmuv3.aarch64-latest.args | 3 +- .../iothreads-disk-virtio-ccw.args | 3 +- tests/qemuxml2argvdata/iothreads-disk.args | 3 +- .../iothreads-ids-partial.args | 3 +- tests/qemuxml2argvdata/iothreads-ids.args | 3 +- ...othreads-virtio-scsi-ccw.s390x-latest.args | 3 +- ...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 3 +- ...threads-virtio-scsi-pci.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/iothreads.args | 3 +- tests/qemuxml2argvdata/kvm-features-off.args | 3 +- tests/qemuxml2argvdata/kvm-features.args | 3 +- tests/qemuxml2argvdata/kvm-pit-delay.args | 3 +- tests/qemuxml2argvdata/kvm-pit-discard.args | 3 +- .../kvmclock+eoi-disabled.x86_64-4.0.0.args | 3 +- .../kvmclock+eoi-disabled.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/kvmclock.args | 3 +- .../launch-security-s390-pv.s390x-latest.args | 3 +- ...v-missing-platform-info.x86_64-2.12.0.args | 3 +- .../launch-security-sev.x86_64-2.12.0.args | 3 +- .../launch-security-sev.x86_64-6.0.0.args | 3 +- .../luks-disks-source-qcow2.x86_64-5.2.0.args | 3 +- ...luks-disks-source-qcow2.x86_64-latest.args | 3 +- .../luks-disks-source.x86_64-4.1.0.args | 3 +- .../luks-disks-source.x86_64-latest.args | 3 +- .../luks-disks.x86_64-4.1.0.args | 3 +- .../luks-disks.x86_64-latest.args | 3 +- .../mach-virt-console-virtio.args | 3 +- .../mach-virt-serial-native.args | 3 +- .../mach-virt-serial-pci.args | 3 +- .../mach-virt-serial-usb.args | 3 +- .../machine-aeskeywrap-off-cap.args | 3 +- .../machine-aeskeywrap-off-caps.args | 3 +- .../machine-aeskeywrap-on-cap.args | 3 +- .../machine-aeskeywrap-on-caps.args | 3 +- tests/qemuxml2argvdata/machine-aliases1.args | 3 +- tests/qemuxml2argvdata/machine-aliases2.args | 3 +- tests/qemuxml2argvdata/machine-core-off.args | 3 +- tests/qemuxml2argvdata/machine-core-on.args | 3 +- .../machine-deakeywrap-off-cap.args | 3 +- .../machine-deakeywrap-off-caps.args | 3 +- .../machine-deakeywrap-on-cap.args | 3 +- .../machine-deakeywrap-on-caps.args | 3 +- .../machine-keywrap-none-caps.args | 3 +- .../machine-keywrap-none.args | 3 +- ...ine-loadparm-multiple-disks-nets-s390.args | 3 +- .../machine-loadparm-net-s390.args | 3 +- .../machine-loadparm-s390.args | 3 +- tests/qemuxml2argvdata/machine-smm-opt.args | 3 +- .../qemuxml2argvdata/machine-vmport-opt.args | 3 +- tests/qemuxml2argvdata/master-key.args | 3 +- ...memory-default-hugepage.x86_64-latest.args | 3 +- .../memfd-memory-numa.x86_64-latest.args | 3 +- .../memory-hotplug-dimm-addr.args | 3 +- .../qemuxml2argvdata/memory-hotplug-dimm.args | 3 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 3 +- ...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 3 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 3 +- ...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 3 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 3 +- ...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 3 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 3 +- ...emory-hotplug-nvdimm-ppc64-abi-update.args | 3 +- .../memory-hotplug-nvdimm-ppc64.args | 3 +- ...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 3 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 3 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 3 +- ...emory-hotplug-ppc64-nonuma-abi-update.args | 3 +- .../memory-hotplug-ppc64-nonuma.args | 3 +- ...mory-hotplug-virtio-mem.x86_64-latest.args | 3 +- ...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 3 +- ...ory-hotplug-virtio-pmem.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/memory-hotplug.args | 3 +- tests/qemuxml2argvdata/memtune-unlimited.args | 3 +- tests/qemuxml2argvdata/memtune.args | 3 +- .../migrate-numa-unaligned.args | 3 +- tests/qemuxml2argvdata/migrate.args | 3 +- tests/qemuxml2argvdata/minimal.args | 3 +- tests/qemuxml2argvdata/misc-acpi.args | 3 +- tests/qemuxml2argvdata/misc-disable-s3.args | 3 +- .../misc-disable-suspends.args | 3 +- tests/qemuxml2argvdata/misc-enable-s4.args | 3 +- .../misc-no-reboot.x86_64-5.2.0.args | 3 +- .../misc-no-reboot.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/misc-uuid.args | 3 +- .../mlock-off.x86_64-3.0.0.args | 3 +- .../mlock-off.x86_64-latest.args | 3 +- .../mlock-on.x86_64-3.0.0.args | 3 +- .../mlock-on.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/monitor-json.args | 3 +- .../multifunction-pci-device.args | 3 +- .../name-escape.x86_64-2.11.0.args | 3 +- tests/qemuxml2argvdata/net-client.args | 3 +- tests/qemuxml2argvdata/net-eth-hostip.args | 3 +- tests/qemuxml2argvdata/net-eth-ifname.args | 3 +- tests/qemuxml2argvdata/net-eth-names.args | 3 +- .../net-eth-unmanaged-tap.args | 3 +- tests/qemuxml2argvdata/net-eth.args | 3 +- .../net-hostdev-bootorder.args | 3 +- .../net-hostdev-multidomain.args | 3 +- .../net-hostdev-vfio-multidomain.args | 3 +- tests/qemuxml2argvdata/net-hostdev-vfio.args | 3 +- tests/qemuxml2argvdata/net-hostdev.args | 3 +- tests/qemuxml2argvdata/net-many-models.args | 3 +- tests/qemuxml2argvdata/net-mcast.args | 3 +- tests/qemuxml2argvdata/net-server.args | 3 +- tests/qemuxml2argvdata/net-udp.args | 3 +- tests/qemuxml2argvdata/net-user-addr.args | 3 +- tests/qemuxml2argvdata/net-user.args | 3 +- .../net-user.x86_64-4.0.0.args | 3 +- .../net-vdpa.x86_64-latest.args | 3 +- .../net-vhostuser-multiq.args | 3 +- tests/qemuxml2argvdata/net-vhostuser.args | 3 +- .../net-vhostuser.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/net-virtio-ccw.args | 3 +- tests/qemuxml2argvdata/net-virtio-device.args | 3 +- .../net-virtio-disable-offloads.args | 3 +- tests/qemuxml2argvdata/net-virtio-netdev.args | 3 +- .../net-virtio-rxtxqueuesize.args | 3 +- .../net-virtio-teaming-hostdev.args | 3 +- .../qemuxml2argvdata/net-virtio-teaming.args | 3 +- tests/qemuxml2argvdata/net-virtio.args | 3 +- tests/qemuxml2argvdata/nosharepages.args | 3 +- .../numad-auto-memory-vcpu-cpuset.args | 3 +- ...o-memory-vcpu-no-cpuset-and-placement.args | 3 +- .../numad-auto-vcpu-static-numatune.args | 3 +- .../numad-static-memory-auto-vcpu.args | 3 +- tests/qemuxml2argvdata/numad.args | 3 +- .../numatune-auto-nodeset-invalid.args | 3 +- .../numatune-auto-prefer.args | 3 +- .../qemuxml2argvdata/numatune-distances.args | 3 +- .../numatune-hmat.x86_64-latest.args | 3 +- .../numatune-memnode-no-memory.args | 3 +- ...emnode-restrictive-mode.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/numatune-memnode.args | 3 +- .../numatune-memnode.x86_64-5.2.0.args | 3 +- .../numatune-memnode.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/numatune-memory.args | 3 +- tests/qemuxml2argvdata/numatune-no-vcpu.args | 3 +- .../os-firmware-bios.x86_64-latest.args | 3 +- ...re-efi-no-enrolled-keys.x86_64-latest.args | 3 +- ...os-firmware-efi-secboot.x86_64-latest.args | 3 +- .../os-firmware-efi.x86_64-latest.args | 3 +- .../qemuxml2argvdata/pages-dimm-discard.args | 3 +- .../pages-discard-hugepages.args | 3 +- tests/qemuxml2argvdata/pages-discard.args | 3 +- .../panic-double.x86_64-latest.args | 3 +- .../panic-no-address.x86_64-latest.args | 3 +- .../qemuxml2argvdata/panic.x86_64-latest.args | 3 +- .../parallel-parport-chardev.args | 3 +- .../parallel-tcp-chardev.args | 3 +- .../parallel-unix-chardev.x86_64-latest.args | 3 +- ...pi-root-hotplug-disable.x86_64-latest.args | 3 +- ...cpi-root-hotplug-enable.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/pci-autoadd-addr.args | 3 +- tests/qemuxml2argvdata/pci-autoadd-idx.args | 3 +- tests/qemuxml2argvdata/pci-autofill-addr.args | 3 +- .../pci-bridge-many-disks.args | 3 +- tests/qemuxml2argvdata/pci-bridge.args | 3 +- tests/qemuxml2argvdata/pci-expander-bus.args | 3 +- tests/qemuxml2argvdata/pci-many.args | 3 +- tests/qemuxml2argvdata/pci-rom-disabled.args | 3 +- tests/qemuxml2argvdata/pci-rom.args | 3 +- .../pci-serial-dev-chardev.args | 3 +- ...e-expander-bus-aarch64.aarch64-latest.args | 3 +- tests/qemuxml2argvdata/pcie-expander-bus.args | 3 +- .../pcie-root-port-model-generic.args | 3 +- .../pcie-root-port-model-ioh3420.args | 3 +- ...cie-root-port-nohotplug.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/pcie-root-port.args | 3 +- tests/qemuxml2argvdata/pcie-root.args | 3 +- .../pcie-switch-downstream-port.args | 3 +- .../pcie-switch-upstream-port.args | 3 +- tests/qemuxml2argvdata/pcihole64-q35.args | 3 +- tests/qemuxml2argvdata/pcihole64.args | 3 +- tests/qemuxml2argvdata/pmu-feature-off.args | 3 +- tests/qemuxml2argvdata/pmu-feature.args | 3 +- tests/qemuxml2argvdata/ppc-dtb.args | 3 +- ...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 3 +- ...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 3 +- ...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 3 +- ...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 3 +- .../ppc64-pseries-graphics.ppc64-latest.args | 3 +- .../ppc64-pseries-headless.ppc64-latest.args | 3 +- .../ppc64-tpmproxy-single.ppc64-latest.args | 3 +- .../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 3 +- .../ppc64-usb-controller-legacy.args | 3 +- .../ppc64-usb-controller-qemu-xhci.args | 3 +- .../ppc64-usb-controller.args | 3 +- tests/qemuxml2argvdata/ppce500-serial.args | 3 +- tests/qemuxml2argvdata/pseries-basic.args | 3 +- .../pseries-console-virtio.args | 3 +- .../pseries-cpu-compat-power9.args | 3 +- .../qemuxml2argvdata/pseries-cpu-compat.args | 3 +- tests/qemuxml2argvdata/pseries-cpu-exact.args | 3 +- tests/qemuxml2argvdata/pseries-cpu-le.args | 3 +- tests/qemuxml2argvdata/pseries-features.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-1.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-2.args | 3 +- .../qemuxml2argvdata/pseries-hostdevs-3.args | 3 +- .../pseries-machine-max-cpu-compat.args | 3 +- .../pseries-many-buses-1.args | 3 +- .../pseries-many-buses-2.args | 3 +- .../pseries-many-devices.args | 3 +- tests/qemuxml2argvdata/pseries-nvram.args | 3 +- .../pseries-panic-missing.args | 3 +- .../pseries-panic-no-address.args | 3 +- .../pseries-phb-default-missing.args | 3 +- .../pseries-phb-numa-node.args | 3 +- .../qemuxml2argvdata/pseries-phb-simple.args | 3 +- .../pseries-serial-native.args | 3 +- .../qemuxml2argvdata/pseries-serial-pci.args | 3 +- .../qemuxml2argvdata/pseries-serial-usb.args | 3 +- .../qemuxml2argvdata/pseries-usb-default.args | 3 +- tests/qemuxml2argvdata/pseries-usb-kbd.args | 3 +- tests/qemuxml2argvdata/pseries-usb-multi.args | 3 +- .../pseries-vio-user-assigned.args | 3 +- tests/qemuxml2argvdata/pseries-vio.args | 3 +- .../pv-spinlock-disabled.x86_64-4.0.0.args | 3 +- .../pv-spinlock-disabled.x86_64-latest.args | 3 +- .../pv-spinlock-enabled.x86_64-4.0.0.args | 3 +- .../pv-spinlock-enabled.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/q35-acpi-nouefi.args | 3 +- tests/qemuxml2argvdata/q35-acpi-uefi.args | 3 +- .../q35-default-devices-only.args | 3 +- tests/qemuxml2argvdata/q35-multifunction.args | 3 +- tests/qemuxml2argvdata/q35-noacpi-nouefi.args | 3 +- .../q35-pci-force-address.args | 3 +- tests/qemuxml2argvdata/q35-pcie-autoadd.args | 3 +- tests/qemuxml2argvdata/q35-pcie.args | 3 +- .../q35-pm-disable-fallback.args | 3 +- tests/qemuxml2argvdata/q35-pm-disable.args | 3 +- tests/qemuxml2argvdata/q35-usb2-multi.args | 3 +- tests/qemuxml2argvdata/q35-usb2-reorder.args | 3 +- tests/qemuxml2argvdata/q35-usb2.args | 3 +- .../q35-virt-manager-basic.args | 3 +- tests/qemuxml2argvdata/q35-virtio-pci.args | 3 +- tests/qemuxml2argvdata/q35.args | 3 +- tests/qemuxml2argvdata/qemu-ns-alt.args | 3 +- .../qemu-ns-commandline-ns0.args | 3 +- .../qemu-ns-commandline-ns1.args | 3 +- .../qemuxml2argvdata/qemu-ns-commandline.args | 3 +- .../qemu-ns-domain-commandline-ns0.args | 3 +- .../qemu-ns-domain-commandline.args | 3 +- .../qemuxml2argvdata/qemu-ns-domain-ns0.args | 3 +- tests/qemuxml2argvdata/qemu-ns-no-env.args | 3 +- .../qemu-ns.x86_64-4.0.0.args | 3 +- .../qemu-ns.x86_64-latest.args | 3 +- .../reboot-timeout-disabled.args | 3 +- .../reboot-timeout-enabled.args | 3 +- tests/qemuxml2argvdata/restore-v2-fd.args | 3 +- tests/qemuxml2argvdata/restore-v2.args | 3 +- .../riscv64-virt-graphics.riscv64-latest.args | 3 +- .../riscv64-virt-headless.riscv64-latest.args | 3 +- tests/qemuxml2argvdata/riscv64-virt-pci.args | 3 +- tests/qemuxml2argvdata/riscv64-virt.args | 3 +- ...low-bogus-usb-controller.s390x-latest.args | 3 +- ...390-allow-bogus-usb-none.s390x-latest.args | 3 +- ...t-cpu-kvm-ccw-virtio-2.7.s390x-latest.args | 3 +- ...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 3 +- ...t-cpu-tcg-ccw-virtio-2.7.s390x-latest.args | 3 +- ...t-cpu-tcg-ccw-virtio-4.2.s390x-latest.args | 3 +- .../qemuxml2argvdata/s390-panic-missing.args | 3 +- .../s390-panic-no-address.args | 3 +- tests/qemuxml2argvdata/s390-serial-2.args | 3 +- .../qemuxml2argvdata/s390-serial-console.args | 3 +- tests/qemuxml2argvdata/s390-serial.args | 3 +- .../s390x-ccw-graphics.s390x-latest.args | 3 +- .../s390x-ccw-headless.s390x-latest.args | 3 +- tests/qemuxml2argvdata/seclabel-dac-none.args | 3 +- .../seclabel-dynamic-baselabel.args | 3 +- .../seclabel-dynamic-labelskip.args | 3 +- .../seclabel-dynamic-override.args | 3 +- .../seclabel-dynamic-relabel.args | 3 +- tests/qemuxml2argvdata/seclabel-dynamic.args | 3 +- tests/qemuxml2argvdata/seclabel-none.args | 3 +- .../seclabel-static-labelskip.args | 3 +- .../seclabel-static-relabel.args | 3 +- tests/qemuxml2argvdata/seclabel-static.args | 3 +- .../serial-dev-chardev-iobase.args | 3 +- .../qemuxml2argvdata/serial-dev-chardev.args | 3 +- .../qemuxml2argvdata/serial-file-chardev.args | 3 +- tests/qemuxml2argvdata/serial-file-log.args | 3 +- .../qemuxml2argvdata/serial-many-chardev.args | 3 +- .../qemuxml2argvdata/serial-pty-chardev.args | 3 +- .../serial-spiceport-nospice.args | 3 +- tests/qemuxml2argvdata/serial-spiceport.args | 3 +- .../qemuxml2argvdata/serial-tcp-chardev.args | 3 +- .../serial-tcp-telnet-chardev.args | 3 +- .../serial-tcp-tlsx509-chardev-notls.args | 3 +- .../serial-tcp-tlsx509-chardev-verify.args | 3 +- .../serial-tcp-tlsx509-chardev.args | 3 +- .../serial-tcp-tlsx509-secret-chardev.args | 3 +- .../qemuxml2argvdata/serial-udp-chardev.args | 3 +- .../qemuxml2argvdata/serial-unix-chardev.args | 3 +- .../serial-unix-chardev.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/serial-vc-chardev.args | 3 +- .../shmem-plain-doorbell.args | 3 +- tests/qemuxml2argvdata/shmem.args | 3 +- .../smartcard-controller.args | 3 +- .../smartcard-host-certificates-database.args | 3 +- .../smartcard-host-certificates.args | 3 +- tests/qemuxml2argvdata/smartcard-host.args | 3 +- .../smartcard-passthrough-spicevmc.args | 3 +- .../smartcard-passthrough-tcp.args | 3 +- ...rtcard-passthrough-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/smbios-type-fwcfg.args | 3 +- tests/qemuxml2argvdata/smbios.args | 3 +- tests/qemuxml2argvdata/smp-dies.args | 3 +- tests/qemuxml2argvdata/smp.args | 3 +- tests/qemuxml2argvdata/sound-device.args | 3 +- tests/qemuxml2argvdata/sound.args | 3 +- tests/qemuxml2argvdata/sparc-minimal.args | 3 +- .../tpm-emulator-spapr.ppc64-latest.args | 3 +- .../tpm-emulator-tpm2-enc.x86_64-latest.args | 3 +- ...pm-emulator-tpm2-pstate.x86_64-latest.args | 3 +- .../tpm-emulator-tpm2.x86_64-latest.args | 3 +- .../tpm-emulator.x86_64-latest.args | 3 +- .../tpm-passthrough-crb.x86_64-latest.args | 3 +- .../tpm-passthrough.x86_64-latest.args | 3 +- .../tseg-explicit-size.x86_64-latest.args | 3 +- .../usb-controller-default-q35.args | 3 +- .../usb-controller-explicit-q35.args | 3 +- .../usb-controller-qemu-xhci.args | 3 +- .../qemuxml2argvdata/usb-controller-xhci.args | 3 +- tests/qemuxml2argvdata/usb-controller.args | 3 +- .../usb-hub-autoadd-deluxe.args | 3 +- tests/qemuxml2argvdata/usb-hub-autoadd.args | 3 +- tests/qemuxml2argvdata/usb-hub.args | 3 +- .../qemuxml2argvdata/usb-ich9-autoassign.args | 3 +- .../qemuxml2argvdata/usb-ich9-companion.args | 3 +- .../qemuxml2argvdata/usb-ich9-ehci-addr.args | 3 +- .../qemuxml2argvdata/usb-long-port-path.args | 3 +- tests/qemuxml2argvdata/usb-none.args | 3 +- .../usb-piix3-controller.args | 3 +- .../qemuxml2argvdata/usb-port-autoassign.args | 3 +- tests/qemuxml2argvdata/usb-port-missing.args | 3 +- tests/qemuxml2argvdata/usb-ports.args | 3 +- tests/qemuxml2argvdata/usb-redir-boot.args | 3 +- .../usb-redir-filter-version.args | 3 +- tests/qemuxml2argvdata/usb-redir-filter.args | 3 +- .../usb-redir-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/usb-redir.args | 3 +- .../qemuxml2argvdata/usb-xhci-autoassign.args | 3 +- tests/qemuxml2argvdata/usb1-usb2.args | 3 +- tests/qemuxml2argvdata/user-aliases-usb.args | 3 +- tests/qemuxml2argvdata/user-aliases.args | 3 +- .../vcpu-placement-static.args | 3 +- ...vhost-user-fs-fd-memory.x86_64-latest.args | 3 +- ...vhost-user-fs-hugepages.x86_64-latest.args | 3 +- ...host-user-gpu-secondary.x86_64-latest.args | 3 +- .../vhost-user-vga.x86_64-latest.args | 3 +- .../vhost-vsock-auto.x86_64-latest.args | 3 +- .../vhost-vsock-ccw-auto.s390x-latest.args | 3 +- .../vhost-vsock-ccw-iommu.s390x-latest.args | 3 +- .../vhost-vsock-ccw.s390x-latest.args | 3 +- .../vhost-vsock.x86_64-latest.args | 3 +- ...eo-bochs-display-device.x86_64-latest.args | 3 +- .../video-device-pciaddr-default.args | 3 +- tests/qemuxml2argvdata/video-none-device.args | 3 +- .../video-qxl-device-vgamem.args | 3 +- ...video-qxl-device-vram64.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/video-qxl-device.args | 3 +- tests/qemuxml2argvdata/video-qxl-heads.args | 3 +- tests/qemuxml2argvdata/video-qxl-noheads.args | 3 +- .../video-qxl-resolution.args | 3 +- .../video-qxl-sec-device-vgamem.args | 3 +- ...o-qxl-sec-device-vram64.x86_64-latest.args | 3 +- .../video-qxl-sec-device.args | 3 +- ...eo-ramfb-display-device.x86_64-latest.args | 3 +- .../video-vga-device-vgamem.args | 3 +- tests/qemuxml2argvdata/video-vga-device.args | 3 +- .../qemuxml2argvdata/video-vga-qxl-heads.args | 3 +- .../video-virtio-gpu-ccw.args | 3 +- .../video-virtio-gpu-device.args | 3 +- .../video-virtio-gpu-sdl-gl.args | 3 +- .../video-virtio-gpu-secondary.args | 3 +- .../video-virtio-gpu-spice-gl.args | 3 +- .../video-virtio-gpu-virgl.args | 3 +- ...video-virtio-vga-gpu-gl.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/video-virtio-vga.args | 3 +- .../virtio-9p-createmode.x86_64-latest.args | 3 +- .../virtio-9p-multidevs.x86_64-latest.args | 3 +- .../virtio-input-passthrough.args | 3 +- tests/qemuxml2argvdata/virtio-input.args | 3 +- .../virtio-lun.x86_64-latest.args | 3 +- .../virtio-non-transitional.x86_64-3.1.0.args | 3 +- ...virtio-non-transitional.x86_64-latest.args | 3 +- ...-options-controller-ats.x86_64-latest.args | 3 +- ...ptions-controller-iommu.x86_64-latest.args | 3 +- ...tions-controller-packed.x86_64-latest.args | 3 +- ...virtio-options-disk-ats.x86_64-latest.args | 3 +- ...rtio-options-disk-iommu.x86_64-latest.args | 3 +- ...tio-options-disk-packed.x86_64-latest.args | 3 +- .../virtio-options-fs-ats.x86_64-latest.args | 3 +- ...virtio-options-fs-iommu.x86_64-latest.args | 3 +- ...irtio-options-fs-packed.x86_64-latest.args | 3 +- ...irtio-options-input-ats.x86_64-latest.args | 3 +- ...tio-options-input-iommu.x86_64-latest.args | 3 +- ...io-options-input-packed.x86_64-latest.args | 3 +- ...-options-memballoon-ats.x86_64-latest.args | 3 +- ...loon-freepage-reporting.x86_64-latest.args | 3 +- ...ptions-memballoon-iommu.x86_64-latest.args | 3 +- ...tions-memballoon-packed.x86_64-latest.args | 3 +- .../virtio-options-net-ats.x86_64-latest.args | 3 +- ...irtio-options-net-iommu.x86_64-latest.args | 3 +- ...rtio-options-net-packed.x86_64-latest.args | 3 +- .../virtio-options-rng-ats.x86_64-latest.args | 3 +- ...irtio-options-rng-iommu.x86_64-latest.args | 3 +- ...rtio-options-rng-packed.x86_64-latest.args | 3 +- ...irtio-options-video-ats.x86_64-latest.args | 3 +- ...tio-options-video-iommu.x86_64-latest.args | 3 +- ...io-options-video-packed.x86_64-latest.args | 3 +- .../virtio-options.x86_64-latest.args | 3 +- .../virtio-rng-builtin.x86_64-5.2.0.args | 3 +- .../virtio-rng-builtin.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/virtio-rng-ccw.args | 3 +- .../qemuxml2argvdata/virtio-rng-default.args | 3 +- .../virtio-rng-egd-unix.x86_64-5.2.0.args | 3 +- .../virtio-rng-egd-unix.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/virtio-rng-egd.args | 3 +- .../qemuxml2argvdata/virtio-rng-multiple.args | 3 +- tests/qemuxml2argvdata/virtio-rng-random.args | 3 +- .../virtio-transitional.x86_64-3.1.0.args | 3 +- .../virtio-transitional.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/vmcoreinfo.args | 3 +- .../watchdog-device.x86_64-latest.args | 3 +- .../watchdog-diag288.s390x-latest.args | 3 +- .../watchdog-dump.x86_64-latest.args | 3 +- .../watchdog-injectnmi.x86_64-latest.args | 3 +- .../watchdog.x86_64-latest.args | 3 +- tests/qemuxml2argvdata/x86-kvm-32-on-64.args | 3 +- ...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 3 +- ...default-cpu-kvm-q35-4.2.x86_64-latest.args | 3 +- ...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 3 +- ...default-cpu-tcg-q35-4.2.x86_64-latest.args | 3 +- .../x86_64-pc-graphics.x86_64-latest.args | 3 +- .../x86_64-pc-headless.x86_64-latest.args | 3 +- .../x86_64-q35-graphics.x86_64-latest.args | 3 +- .../x86_64-q35-headless.x86_64-latest.args | 3 +- 894 files changed, 1827 insertions(+), 920 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index cd133cc86c..0257b86a0d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7038,33 +7038,6 @@ qemuBuildMachineCommandLine(virCommand *cmd, virCommandAddArg(cmd, "-machine"); virBufferAdd(&buf, def->os.machine, -1); - switch ((virDomainVirtType)def->virtType) { - case VIR_DOMAIN_VIRT_QEMU: - virBufferAddLit(&buf, ",accel=tcg"); - break; - - case VIR_DOMAIN_VIRT_KVM: - virBufferAddLit(&buf, ",accel=kvm"); - break; - - case VIR_DOMAIN_VIRT_KQEMU: - case VIR_DOMAIN_VIRT_XEN: - case VIR_DOMAIN_VIRT_LXC: - case VIR_DOMAIN_VIRT_UML: - case VIR_DOMAIN_VIRT_OPENVZ: - case VIR_DOMAIN_VIRT_TEST: - case VIR_DOMAIN_VIRT_VMWARE: - case VIR_DOMAIN_VIRT_HYPERV: - case VIR_DOMAIN_VIRT_VBOX: - case VIR_DOMAIN_VIRT_PHYP: - case VIR_DOMAIN_VIRT_PARALLELS: - case VIR_DOMAIN_VIRT_BHYVE: - case VIR_DOMAIN_VIRT_VZ: - case VIR_DOMAIN_VIRT_NONE: - case VIR_DOMAIN_VIRT_LAST: - break; - } - /* To avoid the collision of creating USB controllers when calling * machine->init in QEMU, it needs to set usb=off */ @@ -7287,6 +7260,45 @@ qemuBuildMachineCommandLine(virCommand *cmd, } +static void +qemuBuildAccelCommandLine(virCommand *cmd, + const virDomainDef *def) +{ + g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; + + virCommandAddArg(cmd, "-accel"); + + switch ((virDomainVirtType)def->virtType) { + case VIR_DOMAIN_VIRT_QEMU: + virBufferAddLit(&buf, "tcg"); + break; + + case VIR_DOMAIN_VIRT_KVM: + virBufferAddLit(&buf, "kvm"); + break; + + case VIR_DOMAIN_VIRT_KQEMU: + case VIR_DOMAIN_VIRT_XEN: + case VIR_DOMAIN_VIRT_LXC: + case VIR_DOMAIN_VIRT_UML: + case VIR_DOMAIN_VIRT_OPENVZ: + case VIR_DOMAIN_VIRT_TEST: + case VIR_DOMAIN_VIRT_VMWARE: + case VIR_DOMAIN_VIRT_HYPERV: + case VIR_DOMAIN_VIRT_VBOX: + case VIR_DOMAIN_VIRT_PHYP: + case VIR_DOMAIN_VIRT_PARALLELS: + case VIR_DOMAIN_VIRT_BHYVE: + case VIR_DOMAIN_VIRT_VZ: + case VIR_DOMAIN_VIRT_NONE: + case VIR_DOMAIN_VIRT_LAST: + break; + } + + virCommandAddArgBuffer(cmd, &buf); +} + + static void qemuBuildTSEGCommandLine(virCommand *cmd, const virDomainDef *def) @@ -10663,6 +10675,8 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildMachineCommandLine(cmd, cfg, def, qemuCaps, priv) < 0) return NULL; + qemuBuildAccelCommandLine(cmd, def); + qemuBuildTSEGCommandLine(cmd, def); if (qemuBuildCpuCommandLine(cmd, driver, def, qemuCaps) < 0) diff --git a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args index 311b1be558..4be6cc308b 100644 --- a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args +++ b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args @@ -11,7 +11,8 @@ QEMU_AUDIO_DRV=none \ -name guest=aarch64test,debug-threads=on \ -S \ -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-aarch64test/master-key.aes \ --machine virt,accel=tcg,usb=off,dump-guest-core=off,gic-version=2 \ +-machine virt,usb=off,dump-guest-core=off,gic-version=2 \ +-accel tcg \ -cpu cortex-a53 \ -m 1024 \ -realtime mlock=off \

On Fri, Nov 05, 2021 at 10:35:18 +0100, Michal Privoznik wrote:
We currently use -machine accel=XXX which is just a syntax sugar for -accel XXX. The former doesn't allow specifying arguments for accelerator, because all arguments passed to -machine are treated as arguments of machine itself.
The -accel argument was introduced in QEMU commit v2.9.0-rc0~70^2~19 and since our minimum required version is newer (2.11.0) we can safely assume its existence and use it without any capability.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/233 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
Reviewed-by: Peter Krempa <pkrempa@redhat.com>

It may come handy to be able to tweak TCG options, in this specific case the size of translation block cache size (tb-size). Since we can expect more knobs to tweak let's put them under common element, like this: <domain> <features> <tcg> <tb-cache unit='MiB'>128</tb-cache> </tcg> </features> </domain> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_validate.c | 11 +++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index eb8c973cf1..1b7e92b3ba 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -1864,6 +1864,9 @@ Hypervisors may allow certain CPU / machine features to be toggled on/off. <cfpc value='workaround'/> <sbbc value='workaround'/> <ibs value='fixed-na'/> + <tcg> + <tb-cache unit='MiB'>128</tb-cache> + </tcg> </features> ... @@ -2065,6 +2068,14 @@ are: ``fixed-na (fixed in hardware - no longer applicable)``. If the attribute is not defined, the hypervisor default will be used. :since:`Since 6.3.0` (QEMU/KVM only) +``tcg`` + Various features to change the behavior of the TCG accelerator. + + =========== ============================================== =================================================== ============== + Feature Description Value Since + =========== ============================================== =================================================== ============== + tb-cache The size of translation block cache size an integer :since:`7.10.0` + =========== ============================================== =================================================== ============== :anchor:`<a id="elementsTime"/>` diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index f01b7a6470..ce51e95895 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -6092,7 +6092,7 @@ </element> </define> <!-- - A set of optional features: PAE, APIC, ACPI, GIC, + A set of optional features: PAE, APIC, ACPI, GIC, TCG, HyperV Enlightenment, KVM features, paravirtual spinlocks and HAP support --> <define name="features"> @@ -6232,6 +6232,9 @@ <optional> <ref name="ibs"/> </optional> + <optional> + <ref name="tcgfeatures"/> + </optional> </interleave> </element> </optional> @@ -6520,6 +6523,16 @@ </element> </define> + <define name="tcgfeatures"> + <element name="tcg"> + <optional> + <element name="tb-cache"> + <ref name="scaledInteger"/> + </element> + </optional> + </element> + </define> + <define name="address"> <element name="address"> <choice> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index da0c64b460..496e43dc02 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -172,6 +172,7 @@ VIR_ENUM_IMPL(virDomainFeature, "cfpc", "sbbc", "ibs", + "tcg", ); VIR_ENUM_IMPL(virDomainCapabilitiesPolicy, @@ -17679,6 +17680,30 @@ virDomainFeaturesCapabilitiesDefParse(virDomainDef *def, } +static int +virDomainFeaturesTCGDefParse(virDomainDef *def, + xmlXPathContextPtr ctxt, + xmlNodePtr node) +{ + g_autofree virDomainFeatureTCG *tcg = NULL; + VIR_XPATH_NODE_AUTORESTORE(ctxt); + + tcg = g_new0(virDomainFeatureTCG, 1); + ctxt->node = node; + + if (virDomainParseMemory("./tb-cache", "./tb-cache/@unit", + ctxt, &tcg->tb_cache, false, false) < 0) + return -1; + + if (tcg->tb_cache == 0) + return 0; + + def->features[VIR_DOMAIN_FEATURE_TCG] = VIR_TRISTATE_SWITCH_ON; + def->tcg_features = g_steal_pointer(&tcg); + return 0; +} + + static int virDomainFeaturesDefParse(virDomainDef *def, xmlXPathContextPtr ctxt) @@ -17887,6 +17912,11 @@ virDomainFeaturesDefParse(virDomainDef *def, break; } + case VIR_DOMAIN_FEATURE_TCG: + if (virDomainFeaturesTCGDefParse(def, ctxt, nodes[i]) < 0) + return -1; + break; + case VIR_DOMAIN_FEATURE_LAST: break; } @@ -21555,6 +21585,39 @@ virDomainRedirFilterDefCheckABIStability(virDomainRedirFilterDef *src, } +static bool +virDomainFeatureTCGCheckABIStability(const virDomainDef *src, + const virDomainDef *dst) +{ + const int srcF = src->features[VIR_DOMAIN_FEATURE_TCG]; + const int dstF = dst->features[VIR_DOMAIN_FEATURE_TCG]; + + if (srcF != dstF || + !!src->tcg_features != !!dst->tcg_features) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("State of feature '%s' differs: " + "source: '%s', destination: '%s'"), + virDomainFeatureTypeToString(VIR_DOMAIN_FEATURE_TCG), + virTristateSwitchTypeToString(srcF), + virTristateSwitchTypeToString(dstF)); + return false; + } + + if (!src->tcg_features && !dst->tcg_features) + return true; + + if (src->tcg_features->tb_cache != dst->tcg_features->tb_cache) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG tb-cache mismatch: source %llu, destination: %llu"), + src->tcg_features->tb_cache, + dst->tcg_features->tb_cache); + return false; + } + + return true; +} + + static bool virDomainDefFeaturesCheckABIStability(virDomainDef *src, virDomainDef *dst) @@ -21705,6 +21768,11 @@ virDomainDefFeaturesCheckABIStability(virDomainDef *src, case VIR_DOMAIN_FEATURE_MSRS: break; + case VIR_DOMAIN_FEATURE_TCG: + if (!virDomainFeatureTCGCheckABIStability(src, dst)) + return false; + break; + case VIR_DOMAIN_FEATURE_LAST: break; } @@ -27691,6 +27759,24 @@ virDomainDefFormatBlkiotune(virBuffer *buf, } +static void +virDomainFeatureTCGFormat(virBuffer *buf, + const virDomainDef *def) +{ + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + if (!def->tcg_features || + def->features[VIR_DOMAIN_FEATURE_TCG] != VIR_TRISTATE_SWITCH_ON) + return; + + virBufferAsprintf(&childBuf, + "<tb-cache unit='KiB'>%lld</tb-cache>\n", + def->tcg_features->tb_cache); + + virXMLFormatElement(buf, "tcg", NULL, &childBuf); +} + + static int virDomainDefFormatFeatures(virBuffer *buf, virDomainDef *def) @@ -28011,6 +28097,10 @@ virDomainDefFormatFeatures(virBuffer *buf, virDomainIBSTypeToString(def->features[i])); break; + case VIR_DOMAIN_FEATURE_TCG: + virDomainFeatureTCGFormat(&childBuf, def); + break; + case VIR_DOMAIN_FEATURE_LAST: break; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ab9a7d66f8..9c66e26ccf 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2054,6 +2054,7 @@ typedef enum { VIR_DOMAIN_FEATURE_CFPC, VIR_DOMAIN_FEATURE_SBBC, VIR_DOMAIN_FEATURE_IBS, + VIR_DOMAIN_FEATURE_TCG, VIR_DOMAIN_FEATURE_LAST } virDomainFeature; @@ -2262,6 +2263,11 @@ typedef enum { VIR_ENUM_DECL(virDomainIBS); +typedef struct _virDomainFeatureTCG virDomainFeatureTCG; +struct _virDomainFeatureTCG { + unsigned long long tb_cache; /* Stored in KiB */ +}; + /* Operating system configuration data & machine / arch */ struct _virDomainOSEnv { char *name; @@ -2824,6 +2830,7 @@ struct _virDomainDef { unsigned long long hpt_maxpagesize; /* Stored in KiB */ char *hyperv_vendor_id; virTristateSwitch apic_eoi; + virDomainFeatureTCG *tcg_features; bool tseg_specified; unsigned long long tseg_size; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 397eea5ede..bd33c9a800 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -294,6 +294,17 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break; + case VIR_DOMAIN_FEATURE_TCG: + if (def->features[i] == VIR_TRISTATE_SWITCH_ON) { + if (def->virtType != VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG features are incompatible with domain type '%s'"), + virDomainVirtTypeToString(def->virtType)); + return -1; + } + } + break; + case VIR_DOMAIN_FEATURE_SMM: case VIR_DOMAIN_FEATURE_KVM: case VIR_DOMAIN_FEATURE_XEN: diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml new file mode 100644 index 0000000000..e2058487b2 --- /dev/null +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml @@ -0,0 +1,67 @@ +<domain type='qemu'> + <name>guest</name> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid> + <memory unit='KiB'>4194304</memory> + <currentMemory unit='KiB'>4194304</currentMemory> + <vcpu placement='static'>4</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-6.2'>hvm</type> + <boot dev='hd'/> + </os> + <features> + <acpi/> + <apic/> + <tcg> + <tb-cache unit='KiB'>102400</tb-cache> + </tcg> + </features> + <cpu mode='custom' match='exact' check='none'> + <model fallback='forbid'>qemu64</model> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2'/> + <source file='/var/lib/libvirt/images/guest.qcow2'/> + <target dev='vda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> + </disk> + <controller type='usb' index='0' model='qemu-xhci'> + <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> + </controller> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> + </controller> + <controller type='pci' index='0' model='pcie-root'/> + <controller type='pci' index='1' model='pcie-root-port'> + <model name='pcie-root-port'/> + <target chassis='1' port='0x8'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> + </controller> + <controller type='pci' index='2' model='pcie-root-port'> + <model name='pcie-root-port'/> + <target chassis='2' port='0x9'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> + </controller> + <controller type='pci' index='3' model='pcie-root-port'> + <model name='pcie-root-port'/> + <target chassis='3' port='0xa'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> + </controller> + <controller type='pci' index='4' model='pcie-root-port'> + <model name='pcie-root-port'/> + <target chassis='4' port='0xb'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> + </controller> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <audio id='1' type='none'/> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml b/tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml new file mode 120000 index 0000000000..8226a54027 --- /dev/null +++ b/tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml @@ -0,0 +1 @@ +../qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml \ No newline at end of file diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 7ea066fcda..500386fd00 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -1386,6 +1386,7 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-pc-4.2", "x86_64"); DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-kvm-q35-4.2", "x86_64"); DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-q35-4.2", "x86_64"); + DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-features", "x86_64"); DO_TEST_CAPS_LATEST("virtio-9p-multidevs"); DO_TEST_CAPS_LATEST("virtio-9p-createmode"); -- 2.32.0

On 11/5/21 10:35 AM, Michal Privoznik wrote:
It may come handy to be able to tweak TCG options, in this specific case the size of translation block cache size (tb-size). Since we can expect more knobs to tweak let's put them under common element, like this:
<domain> <features> <tcg> <tb-cache unit='MiB'>128</tb-cache> </tcg> </features> </domain>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_validate.c | 11 +++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml
Oops, consider this squashed in: diff --git i/src/conf/domain_conf.c w/src/conf/domain_conf.c index 496e43dc02..678a434f04 100644 --- i/src/conf/domain_conf.c +++ w/src/conf/domain_conf.c @@ -3714,6 +3714,7 @@ void virDomainDefFree(virDomainDef *def) g_free(def->description); g_free(def->title); g_free(def->hyperv_vendor_id); + g_free(def->tcg_features); virBlkioDeviceArrayClear(def->blkio.devices, def->blkio.ndevices); Michal

On Fri, Nov 05, 2021 at 10:35:19 +0100, Michal Privoznik wrote:
It may come handy to be able to tweak TCG options, in this specific case the size of translation block cache size (tb-size). Since we can expect more knobs to tweak let's put them under common element, like this:
<domain> <features> <tcg> <tb-cache unit='MiB'>128</tb-cache> </tcg> </features> </domain>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_validate.c | 11 +++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml
[...]
@@ -21555,6 +21585,39 @@ virDomainRedirFilterDefCheckABIStability(virDomainRedirFilterDef *src, }
+static bool +virDomainFeatureTCGCheckABIStability(const virDomainDef *src, + const virDomainDef *dst) +{ + const int srcF = src->features[VIR_DOMAIN_FEATURE_TCG]; + const int dstF = dst->features[VIR_DOMAIN_FEATURE_TCG]; + + if (srcF != dstF || + !!src->tcg_features != !!dst->tcg_features) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("State of feature '%s' differs: " + "source: '%s', destination: '%s'"), + virDomainFeatureTypeToString(VIR_DOMAIN_FEATURE_TCG), + virTristateSwitchTypeToString(srcF), + virTristateSwitchTypeToString(dstF)); + return false; + } + + if (!src->tcg_features && !dst->tcg_features) + return true;
This check is either questionable (e.g. if just one of them is non-NULL, this doesn't trigger and the subsequent condition dereferences NULL in the other one), or unnecessary.
+ if (src->tcg_features->tb_cache != dst->tcg_features->tb_cache) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG tb-cache mismatch: source %llu, destination: %llu"), + src->tcg_features->tb_cache, + dst->tcg_features->tb_cache);
I don't think this is ABI, do you have any supporting evidence? If yes, put it into the commnet for the next person questioning this.
+ return false; + } + + return true; +} + + static bool virDomainDefFeaturesCheckABIStability(virDomainDef *src, virDomainDef *dst)
[...]
@@ -27691,6 +27759,24 @@ virDomainDefFormatBlkiotune(virBuffer *buf, }
+static void +virDomainFeatureTCGFormat(virBuffer *buf, + const virDomainDef *def) +{ + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + if (!def->tcg_features || + def->features[VIR_DOMAIN_FEATURE_TCG] != VIR_TRISTATE_SWITCH_ON) + return; + + virBufferAsprintf(&childBuf, + "<tb-cache unit='KiB'>%lld</tb-cache>\n", + def->tcg_features->tb_cache);
This is not very extensible and similarly the parser as setting the cache to 0 is considered as not being present.
+ + virXMLFormatElement(buf, "tcg", NULL, &childBuf); +} + + static int virDomainDefFormatFeatures(virBuffer *buf, virDomainDef *def)
[...]
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 397eea5ede..bd33c9a800 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -294,6 +294,17 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break;
+ case VIR_DOMAIN_FEATURE_TCG: + if (def->features[i] == VIR_TRISTATE_SWITCH_ON) { + if (def->virtType != VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG features are incompatible with domain type '%s'"), + virDomainVirtTypeToString(def->virtType)); + return -1; + } + } + break; +
Preferably, implement the qemu logic in the patch adding the qemu bits.
case VIR_DOMAIN_FEATURE_SMM: case VIR_DOMAIN_FEATURE_KVM: case VIR_DOMAIN_FEATURE_XEN: diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml new file mode 100644 index 0000000000..e2058487b2 --- /dev/null +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml @@ -0,0 +1,67 @@ +<domain type='qemu'> + <name>guest</name> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid> + <memory unit='KiB'>4194304</memory> + <currentMemory unit='KiB'>4194304</currentMemory> + <vcpu placement='static'>4</vcpu> + <os> + <type arch='x86_64' machine='pc-q35-6.2'>hvm</type> + <boot dev='hd'/> + </os> + <features> + <acpi/> + <apic/> + <tcg> + <tb-cache unit='KiB'>102400</tb-cache> + </tcg> + </features> + <cpu mode='custom' match='exact' check='none'> + <model fallback='forbid'>qemu64</model> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2'/> + <source file='/var/lib/libvirt/images/guest.qcow2'/> + <target dev='vda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> + </disk>
Storage is not relevant to the test. Please remove the disk from this definition.

On 11/22/21 10:30, Peter Krempa wrote:
On Fri, Nov 05, 2021 at 10:35:19 +0100, Michal Privoznik wrote:
It may come handy to be able to tweak TCG options, in this specific case the size of translation block cache size (tb-size). Since we can expect more knobs to tweak let's put them under common element, like this:
<domain> <features> <tcg> <tb-cache unit='MiB'>128</tb-cache> </tcg> </features> </domain>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_validate.c | 11 +++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml
[...]
@@ -21555,6 +21585,39 @@ virDomainRedirFilterDefCheckABIStability(virDomainRedirFilterDef *src, }
+static bool +virDomainFeatureTCGCheckABIStability(const virDomainDef *src, + const virDomainDef *dst) +{ + const int srcF = src->features[VIR_DOMAIN_FEATURE_TCG]; + const int dstF = dst->features[VIR_DOMAIN_FEATURE_TCG]; + + if (srcF != dstF || + !!src->tcg_features != !!dst->tcg_features) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("State of feature '%s' differs: " + "source: '%s', destination: '%s'"), + virDomainFeatureTypeToString(VIR_DOMAIN_FEATURE_TCG), + virTristateSwitchTypeToString(srcF), + virTristateSwitchTypeToString(dstF)); + return false; + } + + if (!src->tcg_features && !dst->tcg_features) + return true;
This check is either questionable (e.g. if just one of them is non-NULL, this doesn't trigger and the subsequent condition dereferences NULL in the other one), or unnecessary.
+ if (src->tcg_features->tb_cache != dst->tcg_features->tb_cache) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG tb-cache mismatch: source %llu, destination: %llu"), + src->tcg_features->tb_cache, + dst->tcg_features->tb_cache);
I don't think this is ABI, do you have any supporting evidence? If yes, put it into the commnet for the next person questioning this.
Fair enough. I don't have any evidence. Let me remove the whole function.
+ return false; + } + + return true; +} + + static bool virDomainDefFeaturesCheckABIStability(virDomainDef *src, virDomainDef *dst)
[...]
@@ -27691,6 +27759,24 @@ virDomainDefFormatBlkiotune(virBuffer *buf, }
+static void +virDomainFeatureTCGFormat(virBuffer *buf, + const virDomainDef *def) +{ + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + if (!def->tcg_features || + def->features[VIR_DOMAIN_FEATURE_TCG] != VIR_TRISTATE_SWITCH_ON) + return; + + virBufferAsprintf(&childBuf, + "<tb-cache unit='KiB'>%lld</tb-cache>\n", + def->tcg_features->tb_cache);
This is not very extensible and similarly the parser as setting the cache to 0 is considered as not being present.
I'm not sure what you mean. If value 0 is passed then the parser won't set def->features[VIR_DOMAIN_FEATURE_TCG] so this function exits early. Do you want me to put if (val > 0) check here or something different?
+ + virXMLFormatElement(buf, "tcg", NULL, &childBuf); +} + + static int virDomainDefFormatFeatures(virBuffer *buf, virDomainDef *def)
[...]
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 397eea5ede..bd33c9a800 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -294,6 +294,17 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break;
+ case VIR_DOMAIN_FEATURE_TCG: + if (def->features[i] == VIR_TRISTATE_SWITCH_ON) { + if (def->virtType != VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG features are incompatible with domain type '%s'"), + virDomainVirtTypeToString(def->virtType)); + return -1; + } + } + break; +
Preferably, implement the qemu logic in the patch adding the qemu bits.
Fair enough. I thought that in this case it borderline okay, but I don't care that much really. Michal

On Mon, Nov 22, 2021 at 13:24:02 +0100, Michal Prívozník wrote:
On 11/22/21 10:30, Peter Krempa wrote:
On Fri, Nov 05, 2021 at 10:35:19 +0100, Michal Privoznik wrote:
It may come handy to be able to tweak TCG options, in this specific case the size of translation block cache size (tb-size). Since we can expect more knobs to tweak let's put them under common element, like this:
<domain> <features> <tcg> <tb-cache unit='MiB'>128</tb-cache> </tcg> </features> </domain>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- docs/formatdomain.rst | 11 +++ docs/schemas/domaincommon.rng | 15 +++- src/conf/domain_conf.c | 90 +++++++++++++++++++ src/conf/domain_conf.h | 7 ++ src/qemu/qemu_validate.c | 11 +++ .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ ...default-cpu-tcg-features.x86_64-latest.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml
[...]
+static void +virDomainFeatureTCGFormat(virBuffer *buf, + const virDomainDef *def) +{ + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + if (!def->tcg_features || + def->features[VIR_DOMAIN_FEATURE_TCG] != VIR_TRISTATE_SWITCH_ON) + return; + + virBufferAsprintf(&childBuf, + "<tb-cache unit='KiB'>%lld</tb-cache>\n", + def->tcg_features->tb_cache);
This is not very extensible and similarly the parser as setting the cache to 0 is considered as not being present.
I'm not sure what you mean. If value 0 is passed then the parser won't set def->features[VIR_DOMAIN_FEATURE_TCG] so this function exits early.
That's one of the problems actually. You've designed it such that it looks very extensible. Separate functions for formatting, parsing etc, separate structs. But once another thing is added, everything will need to be refactored, because the parser will no longer skip setting VIR_DOMAIN_FEATURE_TCG since the new field will be populated, but not the tb-cache. This means that everything would need to be refactored anyways.
Do you want me to put if (val > 0) check here or something different?
Yes, exactly. Same way when you'd be the one adding another field into this struct. [...]
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 397eea5ede..bd33c9a800 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -294,6 +294,17 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break;
+ case VIR_DOMAIN_FEATURE_TCG: + if (def->features[i] == VIR_TRISTATE_SWITCH_ON) { + if (def->virtType != VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TCG features are incompatible with domain type '%s'"), + virDomainVirtTypeToString(def->virtType)); + return -1; + } + } + break; +
Preferably, implement the qemu logic in the patch adding the qemu bits.
Fair enough. I thought that in this case it borderline okay, but I don't care that much really.
Well, it's borderline and I don't care that much either.

Alright, here's the deal: to enable tb-cache one has to use '-accel tcg,tb-size=' which then conflicts with '-machine accel=tcg'. But sure, we can use the old -accel in this specific case. But because of how the tb-size argument is defined in QEMU there's no way for us to have a capability check. The feature was introduced in QEMU commit of v5.0.0-rc0~175^2~62 and is tied to TCG only. Therefore, I think we can live without capability check. Worst case scenario, QEMU fails to start. Resolves: https://gitlab.com/libvirt/libvirt/-/issues/229 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- src/qemu/qemu_command.c | 5 +++ ...efault-cpu-tcg-features.x86_64-latest.args | 40 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 3 files changed, 46 insertions(+) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0257b86a0d..17ee3c5d3a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7271,6 +7271,11 @@ qemuBuildAccelCommandLine(virCommand *cmd, switch ((virDomainVirtType)def->virtType) { case VIR_DOMAIN_VIRT_QEMU: virBufferAddLit(&buf, "tcg"); + + if (def->features[VIR_DOMAIN_FEATURE_TCG] == VIR_TRISTATE_SWITCH_ON) { + virBufferAsprintf(&buf, ",tb-size=%llu", + def->tcg_features->tb_cache >> 10); + } break; case VIR_DOMAIN_VIRT_KVM: diff --git a/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args new file mode 100644 index 0000000000..0800ea4294 --- /dev/null +++ b/tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args @@ -0,0 +1,40 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-guest \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-guest/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-guest/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=guest,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-guest/master-key.aes"}' \ +-machine pc-q35-6.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \ +-accel tcg,tb-size=100 \ +-cpu qemu64 \ +-m 4096 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \ +-overcommit mem-lock=off \ +-smp 4,sockets=4,cores=1,threads=1 \ +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}' \ +-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}' \ +-device '{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x1.0x2"}' \ +-device '{"driver":"pcie-root-port","port":11,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x1.0x3"}' \ +-device '{"driver":"qemu-xhci","id":"usb","bus":"pci.1","addr":"0x0"}' \ +-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/guest.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \ +-device '{"driver":"virtio-blk-pci","bus":"pci.2","addr":"0x0","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}' \ +-audiodev id=audio1,driver=none \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.3","addr":"0x0"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index a0498a0d92..b6c21caac7 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3375,6 +3375,7 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-pc-4.2", "x86_64"); DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-kvm-q35-4.2", "x86_64"); DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-q35-4.2", "x86_64"); + DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-features", "x86_64"); DO_TEST_CAPS_LATEST("virtio-9p-multidevs"); DO_TEST_CAPS_LATEST("virtio-9p-createmode"); -- 2.32.0

On Fri, Nov 05, 2021 at 10:35:20 +0100, Michal Privoznik wrote:
Alright, here's the deal: to enable tb-cache one has to use '-accel tcg,tb-size=' which then conflicts with '-machine accel=tcg'. But sure, we can use the old -accel in this specific case.
The above is all wrong after the refactors.
But because of how the tb-size argument is defined in QEMU there's no way for us to have a capability check. The feature was introduced in QEMU commit of v5.0.0-rc0~175^2~62 and is tied to TCG only. Therefore, I think we can live without capability check. Worst case scenario, QEMU fails to start.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/229 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> --- src/qemu/qemu_command.c | 5 +++ ...efault-cpu-tcg-features.x86_64-latest.args | 40 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 3 files changed, 46 insertions(+) create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0257b86a0d..17ee3c5d3a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7271,6 +7271,11 @@ qemuBuildAccelCommandLine(virCommand *cmd, switch ((virDomainVirtType)def->virtType) { case VIR_DOMAIN_VIRT_QEMU: virBufferAddLit(&buf, "tcg"); + + if (def->features[VIR_DOMAIN_FEATURE_TCG] == VIR_TRISTATE_SWITCH_ON) {
Similarly to previous commit. It's not extensible when adding new tcg features. This would set the cache to 0 if a new feature is added and tb-cache is not used.
+ virBufferAsprintf(&buf, ",tb-size=%llu", + def->tcg_features->tb_cache >> 10);
Okay, so input in libvirt is kiB, output is MiB. This means we are truncating precision. In this case I don't think it's worth adding checks, but at least the docs should mention what's going on.
+ } break;

On Fri, Nov 05, 2021 at 10:35:16AM +0100, Michal Privoznik wrote:
v2 of:
https://listman.redhat.com/archives/libvir-list/2021-November/msg00143.html
diff to v1: - Patches 1/4 and 2/4 are new, per Dan's suggestion - Patch 4/4 was reworked, since after 2/4 we are using -accel unconditionally
I've built from your branch: https://gitlab.com/MichalPrivoznik/libvirt.git / tcg_tb_size_alt_v2. (I also needed the other patch when testing from your branch: "remote_daemon: Validate tcp_min_ssf value only if found in config"). So compiled with: $> git describe v7.9.0-94-gc39356148c Still works fine for me. Two quick tests: (1) With only <domain type='qemu'>, libvirt now uses `-accel tcg` unconditionally. (As opposed to `-machine accel`) (2) And adding the `tb-cache` bit: <features> <tcg> <tb-cache unit='KiB'>65536</tb-cache> </tcg> </features> ... results in QEMU command-line: `-accel tcg,tb-size=64` Series: Tested-by: Kashyap Chamarthy <kchamart@redhat.com> Thanks for the quick work! -- /kashyap
participants (4)
-
Kashyap Chamarthy
-
Michal Privoznik
-
Michal Prívozník
-
Peter Krempa