[PATCH v3 00/13] Prepare for -object QAPIfication

Peter Krempa pkrempa at redhat.com
Fri Mar 12 17:20:43 UTC 2021


v3 now uses JSON to configure objects which is possible with the
following qemu patch:

https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg04436.html

The use of JSON completely avoids problems with conversion of the JSON
definition which we create regardless (especially bitmaps/arrays for the
host-nodes property) to command line arguments which was lossy with the
traditional arguments.

Peter Krempa (13):
  qemuxml2argvdata: Remove unused output file
    'disk-network-tlsx509.x86_64-latest.args'
  virQEMUQAPISchemaTraverse: Fix quoting in comment
  qemu: capabilities: Introduce QEMU_CAPS_OBJECT_QAPIFIED
  qemu: monitor: Make wrapping of 'props' of 'object-add' optional
  qemuMonitorCreateObjectPropsWrap: Open-code in
    qemuBuildMemoryBackendProps
  qemu: monitor: Don't add 'props' wrapper if qemu has
    QEMU_CAPS_OBJECT_QAPIFIED
  qemu: command: Use JSON for QAPIfied -object directly
  tests: qemuxml2argv: Validate generation of JSON props for object-add
  qemumonitorjsontest: Remove tripwire guarding object-add QAPIfication
  tests: qemucapabilities: Update qemu caps for object-add qapification
  qemuxml2argvtest: Add DO_CAPS_LATEST variant of 'numatune-memnode'
  qemuxml2argvtest: Pin examples of -object usage to qemu-5.2 caps
  qemu: capabilities: Enable detection of QEMU_CAPS_OBJECT_QAPIFIED

 src/libvirt_private.syms                      |    1 -
 src/qemu/qemu_capabilities.c                  |    2 +
 src/qemu/qemu_capabilities.h                  |    1 +
 src/qemu/qemu_command.c                       |   98 +-
 src/qemu/qemu_monitor.c                       |   78 +-
 src/qemu/qemu_monitor.h                       |    4 -
 src/qemu/qemu_qapi.c                          |    2 +-
 src/util/virqemu.c                            |   38 -
 src/util/virqemu.h                            |    3 -
 .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml  |    1 +
 .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml  |    1 +
 tests/domaincapsdata/qemu_6.0.0.x86_64.xml    |    1 +
 .../caps_6.0.0.x86_64.replies                 | 3262 ++++++++++++-----
 .../caps_6.0.0.x86_64.xml                     |   89 +-
 tests/qemumonitorjsontest.c                   |   14 -
 .../audio-alsa-best.x86_64-latest.args        |    6 +-
 .../audio-alsa-full.x86_64-latest.args        |    6 +-
 .../audio-alsa-minimal.x86_64-latest.args     |    6 +-
 .../audio-coreaudio-best.x86_64-latest.args   |    6 +-
 .../audio-coreaudio-full.x86_64-latest.args   |    6 +-
 ...audio-coreaudio-minimal.x86_64-latest.args |    6 +-
 ...udio-default-nographics.x86_64-latest.args |    6 +-
 .../audio-default-sdl.x86_64-latest.args      |    6 +-
 .../audio-default-spice.x86_64-latest.args    |    6 +-
 .../audio-default-vnc.x86_64-latest.args      |    6 +-
 .../audio-file-best.x86_64-latest.args        |    6 +-
 .../audio-file-full.x86_64-latest.args        |    6 +-
 .../audio-file-minimal.x86_64-latest.args     |    6 +-
 .../audio-jack-full.x86_64-latest.args        |    6 +-
 .../audio-jack-minimal.x86_64-latest.args     |    6 +-
 .../audio-many-backends.x86_64-latest.args    |    6 +-
 .../audio-none-best.x86_64-latest.args        |    6 +-
 .../audio-none-full.x86_64-latest.args        |    6 +-
 .../audio-none-minimal.x86_64-latest.args     |    6 +-
 .../audio-oss-best.x86_64-latest.args         |    6 +-
 .../audio-oss-full.x86_64-latest.args         |    6 +-
 .../audio-oss-minimal.x86_64-latest.args      |    6 +-
 .../audio-pulseaudio-best.x86_64-latest.args  |    6 +-
 .../audio-pulseaudio-full.x86_64-latest.args  |    6 +-
 ...udio-pulseaudio-minimal.x86_64-latest.args |    6 +-
 .../audio-sdl-best.x86_64-latest.args         |    6 +-
 .../audio-sdl-full.x86_64-latest.args         |    6 +-
 .../audio-sdl-minimal.x86_64-latest.args      |    6 +-
 .../audio-spice-best.x86_64-latest.args       |    6 +-
 .../audio-spice-full.x86_64-latest.args       |    6 +-
 .../audio-spice-minimal.x86_64-latest.args    |    6 +-
 .../blkdeviotune-group-num.x86_64-latest.args |    6 +-
 ...blkdeviotune-max-length.x86_64-latest.args |    6 +-
 .../blkdeviotune-max.x86_64-latest.args       |    6 +-
 .../channel-unix-guestfwd.x86_64-latest.args  |    6 +-
 .../console-virtio-unix.x86_64-latest.args    |    6 +-
 .../controller-virtio-scsi.x86_64-latest.args |    6 +-
 ...-Icelake-Server-pconfig.x86_64-latest.args |    6 +-
 .../cpu-translation.x86_64-latest.args        |    6 +-
 .../cpu-tsc-high-frequency.x86_64-latest.args |    6 +-
 .../cputune-cpuset-big-id.x86_64-latest.args  |    6 +-
 .../disk-aio-io_uring.x86_64-latest.args      |    6 +-
 .../disk-aio.x86_64-latest.args               |    6 +-
 ...-backing-chains-noindex.x86_64-latest.args |   12 +-
 .../disk-cache.x86_64-latest.args             |    6 +-
 .../disk-cdrom-bus-other.x86_64-latest.args   |    6 +-
 ...m-empty-network-invalid.x86_64-latest.args |    6 +-
 .../disk-cdrom-network.x86_64-latest.args     |    6 +-
 .../disk-cdrom-tray.x86_64-latest.args        |    6 +-
 .../disk-cdrom.x86_64-latest.args             |    6 +-
 .../disk-copy_on_read.x86_64-latest.args      |    6 +-
 .../disk-detect-zeroes.x86_64-latest.args     |    6 +-
 .../disk-discard.x86_64-latest.args           |    6 +-
 .../disk-error-policy.x86_64-latest.args      |    6 +-
 .../disk-floppy-q35-2_11.x86_64-latest.args   |    6 +-
 .../disk-floppy-q35-2_9.x86_64-latest.args    |    6 +-
 .../disk-floppy.x86_64-latest.args            |    6 +-
 .../disk-metadata-cache.x86_64-latest.args    |    6 +-
 .../disk-network-gluster.x86_64-latest.args   |    6 +-
 .../disk-network-http.x86_64-latest.args      |   18 +-
 .../disk-network-iscsi.x86_64-latest.args     |   18 +-
 .../disk-network-nbd.x86_64-latest.args       |    6 +-
 .../disk-network-nfs.x86_64-latest.args       |    6 +-
 .../disk-network-rbd.x86_64-latest.args       |   12 +-
 .../disk-network-sheepdog.x86_64-latest.args  |    6 +-
 ...isk-network-source-auth.x86_64-latest.args |   24 +-
 ...disk-network-tlsx509-nbd.x86_64-5.2.0.args |   50 +
 ...isk-network-tlsx509-nbd.x86_64-latest.args |   18 +-
 .../disk-network-tlsx509.x86_64-latest.args   |   90 -
 .../disk-nvme.x86_64-latest.args              |   12 +-
 .../disk-readonly-disk.x86_64-latest.args     |    6 +-
 .../disk-scsi-device-auto.x86_64-latest.args  |    6 +-
 .../disk-scsi.x86_64-latest.args              |    6 +-
 .../disk-shared.x86_64-latest.args            |    6 +-
 .../disk-slices.x86_64-latest.args            |   18 +-
 .../disk-transient.x86_64-latest.args         |    6 +-
 .../disk-vhostuser.x86_64-latest.args         |    8 +-
 ...virtio-scsi-reservations.x86_64-5.2.0.args |   55 +
 ...irtio-scsi-reservations.x86_64-latest.args |   14 +-
 .../eoi-disabled.x86_64-latest.args           |    6 +-
 .../eoi-enabled.x86_64-latest.args            |    6 +-
 .../fips-enabled.x86_64-latest.args           |    6 +-
 .../floppy-drive-fat.x86_64-latest.args       |    6 +-
 .../qemuxml2argvdata/fs9p.x86_64-latest.args  |    6 +-
 .../genid-auto.x86_64-latest.args             |    6 +-
 .../qemuxml2argvdata/genid.x86_64-latest.args |    6 +-
 ...egl-headless-rendernode.x86_64-latest.args |    6 +-
 .../graphics-egl-headless.x86_64-latest.args  |    6 +-
 ...pice-gl-auto-rendernode.x86_64-latest.args |    6 +-
 .../graphics-vnc-power.x86_64-latest.args     |    6 +-
 .../graphics-vnc-tls-secret.x86_64-5.2.0.args |   42 +
 ...graphics-vnc-tls-secret.x86_64-latest.args |   17 +-
 .../graphics-vnc-tls.x86_64-latest.args       |   10 +-
 ...tdev-mdev-display-ramfb.x86_64-latest.args |    6 +-
 ...play-spice-egl-headless.x86_64-latest.args |    6 +-
 ...ev-display-spice-opengl.x86_64-latest.args |    6 +-
 ...isplay-vnc-egl-headless.x86_64-latest.args |    6 +-
 ...ostdev-mdev-display-vnc.x86_64-latest.args |    6 +-
 .../hostdev-scsi-lsi.x86_64-latest.args       |   18 +-
 ...ostdev-scsi-virtio-scsi.x86_64-latest.args |   18 +-
 .../hugepages-memaccess3.x86_64-latest.args   |   11 +-
 .../hugepages-nvdimm.x86_64-latest.args       |   14 +-
 .../hyperv-off.x86_64-latest.args             |    6 +-
 .../hyperv-panic.x86_64-latest.args           |    6 +-
 .../hyperv-stimer-direct.x86_64-latest.args   |    6 +-
 .../hyperv.x86_64-latest.args                 |    6 +-
 .../intel-iommu-aw-bits.x86_64-latest.args    |    6 +-
 ...ntel-iommu-caching-mode.x86_64-latest.args |    6 +-
 ...ntel-iommu-device-iotlb.x86_64-latest.args |    6 +-
 .../intel-iommu-eim.x86_64-latest.args        |    6 +-
 .../intel-iommu.x86_64-latest.args            |    6 +-
 ...othreads-virtio-scsi-pci.x86_64-5.2.0.args |   57 +
 ...threads-virtio-scsi-pci.x86_64-latest.args |   10 +-
 .../kvmclock+eoi-disabled.x86_64-latest.args  |    6 +-
 .../luks-disks-source-qcow2.x86_64-5.2.0.args |  112 +
 ...luks-disks-source-qcow2.x86_64-latest.args |   54 +-
 ...memory-default-hugepage.x86_64-latest.args |    9 +-
 .../memfd-memory-numa.x86_64-latest.args      |    9 +-
 ...y-hotplug-nvdimm-access.x86_64-latest.args |   10 +-
 ...ory-hotplug-nvdimm-align.x86_64-5.2.0.args |   44 +
 ...ry-hotplug-nvdimm-align.x86_64-latest.args |   11 +-
 ...ory-hotplug-nvdimm-label.x86_64-5.2.0.args |   44 +
 ...ry-hotplug-nvdimm-label.x86_64-latest.args |   10 +-
 ...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args |   44 +
 ...ory-hotplug-nvdimm-pmem.x86_64-latest.args |   10 +-
 ...-hotplug-nvdimm-readonly.x86_64-5.2.0.args |   44 +
 ...hotplug-nvdimm-readonly.x86_64-latest.args |   10 +-
 .../memory-hotplug-nvdimm.x86_64-latest.args  |   10 +-
 ...mory-hotplug-virtio-pmem.x86_64-5.2.0.args |   45 +
 ...ory-hotplug-virtio-pmem.x86_64-latest.args |   10 +-
 .../mlock-off.x86_64-latest.args              |    6 +-
 .../mlock-on.x86_64-latest.args               |    6 +-
 .../net-vdpa.x86_64-latest.args               |    6 +-
 .../net-vhostuser.x86_64-latest.args          |    6 +-
 .../numatune-hmat.x86_64-latest.args          |   16 +-
 .../numatune-memnode.x86_64-5.2.0.args        |   43 +
 .../numatune-memnode.x86_64-latest.args       |   43 +
 .../os-firmware-bios.x86_64-latest.args       |    6 +-
 ...os-firmware-efi-secboot.x86_64-latest.args |    6 +-
 .../os-firmware-efi.x86_64-latest.args        |    6 +-
 .../parallel-unix-chardev.x86_64-latest.args  |    6 +-
 ...cie-root-port-nohotplug.x86_64-latest.args |    6 +-
 .../pv-spinlock-disabled.x86_64-latest.args   |    6 +-
 .../pv-spinlock-enabled.x86_64-latest.args    |    6 +-
 .../qemu-ns.x86_64-latest.args                |    6 +-
 .../serial-unix-chardev.x86_64-latest.args    |    6 +-
 ...rtcard-passthrough-unix.x86_64-latest.args |    6 +-
 .../tpm-emulator-tpm2-enc.x86_64-latest.args  |    6 +-
 ...pm-emulator-tpm2-pstate.x86_64-latest.args |    6 +-
 .../tpm-emulator-tpm2.x86_64-latest.args      |    6 +-
 .../tpm-emulator.x86_64-latest.args           |    6 +-
 .../tpm-passthrough-crb.x86_64-latest.args    |    6 +-
 .../tpm-passthrough.x86_64-latest.args        |    6 +-
 .../tseg-explicit-size.x86_64-latest.args     |    6 +-
 .../usb-redir-unix.x86_64-latest.args         |    6 +-
 ...vhost-user-fs-fd-memory.x86_64-latest.args |   10 +-
 ...vhost-user-fs-hugepages.x86_64-latest.args |   10 +-
 ...host-user-gpu-secondary.x86_64-latest.args |    7 +-
 .../vhost-user-vga.x86_64-latest.args         |    7 +-
 .../vhost-vsock-auto.x86_64-latest.args       |    6 +-
 .../vhost-vsock.x86_64-latest.args            |    6 +-
 ...eo-bochs-display-device.x86_64-latest.args |    6 +-
 ...video-qxl-device-vram64.x86_64-latest.args |    6 +-
 ...o-qxl-sec-device-vram64.x86_64-latest.args |    6 +-
 ...eo-ramfb-display-device.x86_64-latest.args |    6 +-
 .../virtio-9p-createmode.x86_64-latest.args   |    6 +-
 .../virtio-9p-multidevs.x86_64-latest.args    |    6 +-
 ...virtio-non-transitional.x86_64-latest.args |    8 +-
 ...-options-controller-ats.x86_64-latest.args |    6 +-
 ...ptions-controller-iommu.x86_64-latest.args |    6 +-
 ...tions-controller-packed.x86_64-latest.args |    6 +-
 ...virtio-options-disk-ats.x86_64-latest.args |    6 +-
 ...rtio-options-disk-iommu.x86_64-latest.args |    6 +-
 ...tio-options-disk-packed.x86_64-latest.args |    6 +-
 .../virtio-options-fs-ats.x86_64-latest.args  |    6 +-
 ...virtio-options-fs-iommu.x86_64-latest.args |    6 +-
 ...irtio-options-fs-packed.x86_64-latest.args |    6 +-
 ...irtio-options-input-ats.x86_64-latest.args |    6 +-
 ...tio-options-input-iommu.x86_64-latest.args |    6 +-
 ...io-options-input-packed.x86_64-latest.args |    6 +-
 ...-options-memballoon-ats.x86_64-latest.args |    6 +-
 ...loon-freepage-reporting.x86_64-latest.args |    6 +-
 ...ptions-memballoon-iommu.x86_64-latest.args |    6 +-
 ...tions-memballoon-packed.x86_64-latest.args |    6 +-
 .../virtio-options-net-ats.x86_64-latest.args |    6 +-
 ...irtio-options-net-iommu.x86_64-latest.args |    6 +-
 ...rtio-options-net-packed.x86_64-latest.args |    6 +-
 .../virtio-options-rng-ats.x86_64-latest.args |   10 +-
 ...irtio-options-rng-iommu.x86_64-latest.args |   10 +-
 ...rtio-options-rng-packed.x86_64-latest.args |   10 +-
 ...irtio-options-video-ats.x86_64-latest.args |    6 +-
 ...tio-options-video-iommu.x86_64-latest.args |    6 +-
 ...io-options-video-packed.x86_64-latest.args |    6 +-
 .../virtio-options.x86_64-latest.args         |    8 +-
 .../virtio-rng-builtin.x86_64-5.2.0.args      |   38 +
 .../virtio-rng-builtin.x86_64-latest.args     |    8 +-
 .../virtio-rng-egd-unix.x86_64-5.2.0.args     |   39 +
 .../virtio-rng-egd-unix.x86_64-latest.args    |    8 +-
 .../virtio-transitional.x86_64-latest.args    |    8 +-
 ...-default-cpu-kvm-pc-4.2.x86_64-latest.args |    6 +-
 ...default-cpu-kvm-q35-4.2.x86_64-latest.args |    6 +-
 ...-default-cpu-tcg-pc-4.2.x86_64-latest.args |    6 +-
 ...default-cpu-tcg-q35-4.2.x86_64-latest.args |    6 +-
 .../x86_64-pc-graphics.x86_64-latest.args     |    8 +-
 .../x86_64-pc-headless.x86_64-latest.args     |    8 +-
 .../x86_64-q35-graphics.x86_64-latest.args    |    8 +-
 .../x86_64-q35-headless.x86_64-latest.args    |    8 +-
 tests/qemuxml2argvtest.c                      |   32 +
 223 files changed, 4071 insertions(+), 1781 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/disk-network-tlsx509-nbd.x86_64-5.2.0.args
 delete mode 100644 tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/iothreads-virtio-scsi-pci.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/numatune-memnode.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/numatune-memnode.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/virtio-rng-builtin.x86_64-5.2.0.args
 create mode 100644 tests/qemuxml2argvdata/virtio-rng-egd-unix.x86_64-5.2.0.args

-- 
2.29.2




More information about the libvir-list mailing list