"Michael S. Tsirkin" <m...@redhat.com> writes: > On Mon, Jul 07, 2025 at 07:19:54PM +0200, Philippe Mathieu-Daudé wrote: >> Rather than re-spinning the whole "single-binary: Make hw/arm/ >> common" series, restrict to the API additions, but include >> examples of their usefulness (hundreds of virtio objects >> removed from default Linux build). >> Time passed since I context-switched out of this work so I'm >> not sure the DEFINE_MACHINE_WITH_INTERFACES() implementation >> is in the form Zoltan asked. > > I think I'd prefer to defer cleanups to post 10.1 - already > too much on my plate as I was out sick. Unless there's a reason > I'm missing to rush this in? Is there a feature we want in > 10.1 that depends on it?
This is all part of reducing the number of duplicate builds of device models which after the stubs VirtIO is the main remaining sub-system due for clean-up: ➜ ./.gitlab-ci.d/check-units.py ./builds/system/compile_commands.json -n 80 Total source files: 3595 Total build units: 5658 Most rebuilt units: ../../dump/win_dump.c built 29 times ../../cpu-target.c built 29 times ../../system/arch_init.c built 29 times ../../system/globals-target.c built 29 times ../../page-target.c built 29 times ../../page-vary-target.c built 29 times ../../target-info-stub.c built 29 times ../../migration/ram.c built 29 times ../../migration/target.c built 29 times ../../monitor/hmp-cmds-target.c built 29 times ../../monitor/hmp-target.c built 29 times ../../accel/accel-target.c built 29 times ../../accel/stubs/hvf-stub.c built 29 times ../../accel/stubs/nvmm-stub.c built 29 times ../../accel/stubs/whpx-stub.c built 29 times ../../accel/qtest/qtest.c built 29 times ../../system/main.c built 29 times ../../hw/i386/kvm/xen-stubs.c built 27 times ../../accel/stubs/xen-stub.c built 27 times ../../accel/stubs/kvm-stub.c built 27 times ../../hw/9pfs/virtio-9p-device.c built 23 times ../../hw/block/virtio-blk.c built 23 times ../../hw/block/virtio-blk-common.c built 23 times ../../hw/char/virtio-serial-bus.c built 23 times ../../hw/net/virtio-net.c built 23 times ../../hw/scsi/virtio-scsi.c built 23 times ../../hw/scsi/vhost-scsi-common.c built 23 times ../../hw/virtio/virtio.c built 23 times ../../hw/virtio/virtio-config-io.c built 23 times ../../hw/virtio/virtio-qmp.c built 23 times ../../hw/virtio/vhost-backend.c built 23 times ../../hw/virtio/vhost-iova-tree.c built 23 times ../../hw/virtio/vhost-user.c built 23 times ../../hw/virtio/vhost-shadow-virtqueue.c built 23 times ../../hw/virtio/virtio-balloon.c built 23 times ../../hw/virtio/vhost-user-fs.c built 23 times ../../hw/virtio/vhost-vsock.c built 23 times ../../hw/virtio/vhost-user-vsock.c built 23 times ../../hw/virtio/virtio-rng.c built 23 times ../../hw/block/vhost-user-blk.c built 22 times ../../hw/vfio/listener.c built 22 times ../../hw/vfio/container-base.c built 22 times ../../hw/vfio/container.c built 22 times ../../hw/vfio/helpers.c built 22 times ../../hw/vfio/pci-quirks.c built 22 times ../../hw/vfio/pci.c built 22 times ../../hw/virtio/vhost-vsock-pci.c built 22 times ../../hw/virtio/vhost-user-vsock-pci.c built 22 times ../../hw/virtio/vhost-user-blk-pci.c built 22 times ../../hw/virtio/vhost-user-scsi-pci.c built 22 times ../../hw/virtio/vhost-scsi-pci.c built 22 times ../../hw/virtio/vhost-user-fs-pci.c built 22 times ../../hw/virtio/virtio-crypto-pci.c built 22 times ../../hw/virtio/virtio-input-host-pci.c built 22 times ../../hw/virtio/virtio-input-pci.c built 22 times ../../hw/virtio/virtio-rng-pci.c built 22 times ../../hw/virtio/virtio-balloon-pci.c built 22 times ../../hw/virtio/virtio-9p-pci.c built 22 times ../../hw/virtio/virtio-scsi-pci.c built 22 times ../../hw/virtio/virtio-blk-pci.c built 22 times ../../hw/virtio/virtio-net-pci.c built 22 times ../../hw/virtio/virtio-serial-pci.c built 22 times ../../hw/virtio/virtio-iommu-pci.c built 22 times ../../hw/virtio/vdpa-dev-pci.c built 22 times ../../tests/unit/iothread.c built 16 times ../../hw/nvram/fw_cfg-acpi.c built 13 times ../../semihosting/guestfd.c built 11 times ../../semihosting/syscalls.c built 11 times ../../tests/qtest/tpm-emu.c built 8 times ../../hw/vfio/platform.c built 7 times ../../tests/qtest/tpm-util.c built 7 times ../../tests/qtest/tpm-tests.c built 7 times ../../hw/virtio/virtio-mem.c built 5 times ../../hw/virtio/virtio-mem-pci.c built 5 times ../../hw/virtio/virtio-md-pci.c built 5 times ../../tests/unit/socket-helpers.c built 5 times ../../tests/unit/io-channel-helpers.c built 5 times ../../fpu/softfloat.c built 4 times ../../semihosting/arm-compat-semi.c built 4 times ../../target/mips/system/addr.c built 4 times Aside from reducing build times and overall load on the CI systems its required to advance the single-binary QEMU build and get us closer to being able to do proper heterogeneous emulation. I don't think missing 10.1 would be critical for the single binary proof of concept but obviously as with all changes that touch the whole code base the longer the review takes the more time they spend in re-base hell. -- Alex Bennée Virtualisation Tech Lead @ Linaro