TL;DR: We've historically made selection of the specific virtio frontend
device based on qemu capabilities but didn't record the choice.
Migrations break if your qemu deployment differs.

For more in-depth analysis see 16/20.

This series conists of:
 -- refactor of removing detected qemu capabilities via config or the
    QMEU namespace
 -- fix to capability detection if host has no qemu
 -- addition of testing covering various possibilities for the virtio
    video devices which show specifics
 -- addition of XML infra for the new property holding the data
 -- refactors of the virtio selection code
 -- selecting the model in post parse callbacks
 -- fixing of validation code
 -- fixing of commandline generator

Peter Krempa (20):
  qemu: capabilities: Apply 'capability_filters' configration option on
    all capabilities
  qemu: capabilities: Export 'virQEMUCapsNewCopy' outside of
    'qemu_capspriv'
  qemu: Allow reuse of 'qemuProcessStartUpdateCustomCaps'
  qemu: validate: Validate VM config with qemuCaps influenced by
    <qemu:capabilities>
  qemu: postparse: Process VM config with qemuCaps influenced by
    <qemu:capabilities>
  virQEMUCapsCacheLookupDefault: Fix error message when no emulators are
    installed
  qemuxmlconfdata: un-symlink 'video-virtio-vga-gpu-gl' output
  qemuxmlconftest: Add 'video-virtio-vga' invocation with
    QEMU_CAPS_DEVICE_VIRTIO_VGA disabled
  qemuxmlconftest: Add test cases for configs asking for 'virtio-gpu-gl'
    or 'virtio-vga-gl' without the capability
  qemuxmlconftest: Add invocation of 'video-virtio-vga-gpu-gl' with
    missing caps and VIR_DOMAIN_DEF_PARSE_ABI_UPDATE
  qemustatusxml2xml: Add test case capturing virtio video device
  virDomainVideoDefFormat: Use 'virXMLFormatElement' instead of custom
    formatter
  conf: Add fields for recording actually-selected virtio video device
  qemuxmlconftest: Add test case for specifying 'virtio-gpu' where
    'virtio-vga' would be picked
  qemuDeviceVideoGetModel: Directly return picked model
  qemu: postparse: Fill in selected virtio video frondend device in the
    XML
  qemuValidateDomainDeviceDefVideo: Fix checks of virtio video devices
  qemuDeviceVideoGetModel: Remove logic for selecting 'virtio' devices
  qemuDeviceVideoGetModel: Simplify by relying on checks from
    'qemuValidateDomainDeviceDefVideo'
  qemu: Remove 'qemuDomainSupportsVideoVga'

 docs/formatdomain.rst                         |   8 +
 src/conf/domain_conf.c                        | 114 +++--
 src/conf/domain_conf.h                        |  15 +
 src/conf/schemas/domaincommon.rng             |  18 +-
 src/libvirt_private.syms                      |   1 +
 src/qemu/qemu_capabilities.c                  |  26 +-
 src/qemu/qemu_capabilities.h                  |   5 +-
 src/qemu/qemu_capspriv.h                      |   5 +-
 src/qemu/qemu_command.c                       | 163 +++---
 src/qemu/qemu_domain.c                        |  96 +++-
 src/qemu/qemu_domain.h                        |   9 +-
 src/qemu/qemu_driver.c                        |  23 +-
 src/qemu/qemu_postparse.c                     | 108 +++-
 src/qemu/qemu_process.c                       |  55 +--
 src/qemu/qemu_validate.c                      | 110 +++--
 tests/qemucapsprobe.c                         |   3 +-
 .../virtio-vga-upgrade-in.xml                 | 466 ++++++++++++++++++
 .../virtio-vga-upgrade-missing-in.xml         | 464 +++++++++++++++++
 .../virtio-vga-upgrade-missing-out.xml        | 457 +++++++++++++++++
 .../virtio-vga-upgrade-out.xml                | 459 +++++++++++++++++
 tests/qemuxmlactivetest.c                     |   6 +
 .../aarch64-video-default.aarch64-latest.xml  |   2 +-
 ...64-video-virtio-gpu-pci.aarch64-latest.xml |   2 +-
 ...fault-models.aarch64-latest.abi-update.xml |   2 +-
 ...h64-virt-default-models.aarch64-latest.xml |   2 +-
 .../aarch64-virt-graphics.aarch64-latest.xml  |   2 +-
 ...ault-video-type-aarch64.aarch64-latest.xml |   2 +-
 ...eo-type-loongarch64.loongarch64-latest.xml |   2 +-
 ...ault-video-type-riscv64.riscv64-latest.xml |   2 +-
 .../default-video-type-s390x.s390x-latest.xml |   2 +-
 ...t-models.loongarch64-latest.abi-update.xml |   2 +-
 ...virt-default-models.loongarch64-latest.xml |   2 +-
 ...rch64-virt-graphics.loongarch64-latest.xml |   2 +-
 .../q35-pcie-autoadd.x86_64-latest.xml        |   2 +-
 .../q35-pcie.x86_64-latest.xml                |   2 +-
 ...fault-models.riscv64-latest.abi-update.xml |   2 +-
 ...v64-virt-default-models.riscv64-latest.xml |   2 +-
 .../riscv64-virt-graphics.riscv64-latest.xml  |   2 +-
 ...default-models.s390x-latest.abi-update.xml |   2 +-
 .../s390x-ccw-default-models.s390x-latest.xml |   2 +-
 .../s390x-ccw-graphics.s390x-latest.xml       |   2 +-
 ...vhost-user-gpu-secondary.x86_64-latest.xml |   4 +-
 .../vhost-user-vga.x86_64-latest.xml          |   2 +-
 .../video-virtio-blob-off.x86_64-latest.xml   |   4 +-
 .../video-virtio-blob-on.x86_64-latest.xml    |   4 +-
 .../video-virtio-edid-none.x86_64-latest.xml  |   2 +-
 .../video-virtio-edid-off.x86_64-latest.xml   |   2 +-
 .../video-virtio-edid-on.x86_64-latest.xml    |   2 +-
 ...video-virtio-gpu-ccw-auto.s390x-latest.xml |   2 +-
 .../video-virtio-gpu-ccw.s390x-latest.xml     |   4 +-
 .../video-virtio-gpu-device.x86_64-latest.xml |   2 +-
 .../video-virtio-gpu-sdl-gl.x86_64-latest.xml |   2 +-
 ...deo-virtio-gpu-secondary.x86_64-latest.xml |   4 +-
 ...ideo-virtio-gpu-spice-gl.x86_64-latest.xml |   2 +-
 .../video-virtio-gpu-virgl.x86_64-latest.xml  |   2 +-
 ...io-vga-device-downgrade.x86_64-latest.args |  37 ++
 ...tio-vga-device-downgrade.x86_64-latest.xml |  44 ++
 .../video-virtio-vga-device-downgrade.xml     |  33 ++
 ..._VIRTIO_GPU_GL_PCI-disabled-ABI_UPDATE.err |   1 +
 ....QEMU_CAPS_VIRTIO_GPU_GL_PCI-disabled.args |  35 ++
 ...t.QEMU_CAPS_VIRTIO_GPU_GL_PCI-disabled.xml |  46 ++
 ...APS_VIRTIO_VGA_GL-disabled-ABI_UPDATE.args |  35 ++
 ...CAPS_VIRTIO_VGA_GL-disabled-ABI_UPDATE.xml |  46 ++
 ...test.QEMU_CAPS_VIRTIO_VGA_GL-disabled.args |  35 ++
 ...atest.QEMU_CAPS_VIRTIO_VGA_GL-disabled.xml |  46 ++
 .../video-virtio-vga-gpu-gl.x86_64-latest.xml |  47 +-
 ....QEMU_CAPS_DEVICE_VIRTIO_VGA-disabled.args |  37 ++
 ...t.QEMU_CAPS_DEVICE_VIRTIO_VGA-disabled.xml |  44 ++
 .../video-virtio-vga.x86_64-latest.xml        |   2 +-
 ...virtio-options-video-ats.x86_64-latest.xml |   4 +-
 ...rtio-options-video-iommu.x86_64-latest.xml |   4 +-
 ...tio-options-video-packed.x86_64-latest.xml |   4 +-
 tests/qemuxmlconfdata/virtio-options.xml      |   2 +-
 tests/qemuxmlconftest.c                       |  29 ++
 tests/testutilsqemu.c                         |   3 +-
 75 files changed, 2908 insertions(+), 315 deletions(-)
 create mode 100644 tests/qemustatusxml2xmldata/virtio-vga-upgrade-in.xml
 create mode 100644 
tests/qemustatusxml2xmldata/virtio-vga-upgrade-missing-in.xml
 create mode 100644 
tests/qemustatusxml2xmldata/virtio-vga-upgrade-missing-out.xml
 create mode 100644 tests/qemustatusxml2xmldata/virtio-vga-upgrade-out.xml
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-device-downgrade.x86_64-latest.args
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-device-downgrade.x86_64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/video-virtio-vga-device-downgrade.xml
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_GPU_GL_PCI-disabled-ABI_UPDATE.err
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_GPU_GL_PCI-disabled.args
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_GPU_GL_PCI-disabled.xml
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_VGA_GL-disabled-ABI_UPDATE.args
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_VGA_GL-disabled-ABI_UPDATE.xml
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_VGA_GL-disabled.args
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.QEMU_CAPS_VIRTIO_VGA_GL-disabled.xml
 mode change 120000 => 100644 
tests/qemuxmlconfdata/video-virtio-vga-gpu-gl.x86_64-latest.xml
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga.x86_64-latest.QEMU_CAPS_DEVICE_VIRTIO_VGA-disabled.args
 create mode 100644 
tests/qemuxmlconfdata/video-virtio-vga.x86_64-latest.QEMU_CAPS_DEVICE_VIRTIO_VGA-disabled.xml

-- 
2.54.0

Reply via email to