]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: capabilities: Introduce QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO
authorPeter Krempa <pkrempa@redhat.com>
Tue, 17 Mar 2026 09:43:52 +0000 (10:43 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 24 Mar 2026 16:59:16 +0000 (17:59 +0100)
The 'target-is-zero' option of 'blockdev-mirror' allows telling qemu to
skip zeroing the mirror target if the user certifies that it's empty. It
was introduced in qemu-10.1.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_10.1.0_s390x.xml
tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml
tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml
tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_11.0.0_x86_64.xml

index d4804833170e4fcbc92dd722f61da242289fbae4..f01288205139549cd94f5fcf7a95565f81c5b43b 100644 (file)
@@ -764,6 +764,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "uefi-vars", /* QEMU_CAPS_DEVICE_UEFI_VARS */
               "query-block-flat", /* QEMU_CAPS_QUERY_BLOCK_FLAT */
               "amd-iommu.xtsup", /* QEMU_CAPS_AMD_IOMMU_XTSUP */
+
+              /* 495 */
+              "blockdev-mirror.target-is-zero", /* QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO */
     );
 
 
@@ -1648,6 +1651,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-add/arg-type/+nbd/tls-hostname", QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME },
     { "blockdev-add/arg-type/+qcow2/discard-no-unref", QEMU_CAPS_QCOW2_DISCARD_NO_UNREF },
     { "blockdev-add/arg-type/+virtio-blk-vhost-vdpa/$fdset", QEMU_CAPS_DEVICE_VIRTIO_BLK_VHOST_VDPA},
+    { "blockdev-mirror/arg-type/target-is-zero", QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO },
     { "calc-dirty-rate/arg-type/mode", QEMU_CAPS_DIRTYRATE_MODE },
     { "chardev-add/arg-type/backend/+socket/data/reconnect-ms", QEMU_CAPS_CHARDEV_RECONNECT_MILISECONDS },
     { "chardev-add/arg-type/backend/+qemu-vdagent", QEMU_CAPS_CHARDEV_QEMU_VDAGENT },
index b93d1532ff7fdd269bf61dcf98b8e82b8d253f46..c26e06104d72f88ce931596a2a904a43b978e8c5 100644 (file)
@@ -739,6 +739,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_QUERY_BLOCK_FLAT, /* 'query-block' command supports 'flat' */
     QEMU_CAPS_AMD_IOMMU_XTSUP, /* amd-iommu.xtsup */
 
+    /* 495 */
+    QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO, /* 'blockdev-mirror' supports 'target-is-zero' */
+
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
 
index f33b366db83c974f7906e7943a85835df42b4472..584a1b304c3f1f1019678cb1a872c60e7a97960a 100644 (file)
   <flag name='virtio-iommu.aw-bits'/>
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10001000</version>
   <microcodeVersion>39100286</microcodeVersion>
   <package>v10.1.0</package>
index 05de2069877b10eb8fa9b3fcd1057ed26a0deab9..6dd00c360f28f2b220d7454ea86ba4173194e16e 100644 (file)
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
   <flag name='amd-iommu.xtsup'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10001000</version>
   <microcodeVersion>43100286</microcodeVersion>
   <package>v10.1.0</package>
index 5a2bc0d66ff36683b02884b624161e0f5691f299..e7a08186972556f62bbde211e4346b3bee90d52e 100644 (file)
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
   <flag name='amd-iommu.xtsup'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10001000</version>
   <microcodeVersion>43100286</microcodeVersion>
   <package>v10.1.0</package>
index ac8f50b9848cba17468a4ab41f3faaa934c8738e..df3e2a82756e7e17ed5eb50fcee0aaeb6045f67b 100644 (file)
   <flag name='virtio-iommu.aw-bits'/>
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10002000</version>
   <microcodeVersion>61700287</microcodeVersion>
   <package>v10.2.0</package>
index 05a28f6ddca1d48995a30daa7c972c72cff40baa..54018639adba8c3a99bc0978fd18367c76015893 100644 (file)
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
   <flag name='amd-iommu.xtsup'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10002000</version>
   <microcodeVersion>43100287</microcodeVersion>
   <package>v10.2.0</package>
index 29ca620345dc3685f3b7df0d84527e072101c5a5..d5cc279e13e00e9b351e975a983e111f1ab36557 100644 (file)
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
   <flag name='amd-iommu.xtsup'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10002000</version>
   <microcodeVersion>43100287</microcodeVersion>
   <package>v10.2.0</package>
index bca13980ced1d2ad45499c30a4d86e0923c10cdd..28cd421f12bf6ed2cbfd33fe32f8139d430077e8 100644 (file)
   <flag name='iommufd'/>
   <flag name='uefi-vars'/>
   <flag name='query-block-flat'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10002050</version>
   <microcodeVersion>61700286</microcodeVersion>
   <package>v10.2.0-2062-g084a6c6e73</package>
index 2e20a6f3b275b75ab50a9756674b5f2d712e179e..d8c39368d2e977358f6b62be9fb3ce8d6a3424f4 100644 (file)
   <flag name='uefi-vars'/>
   <flag name='query-block-flat'/>
   <flag name='amd-iommu.xtsup'/>
+  <flag name='blockdev-mirror.target-is-zero'/>
   <version>10002050</version>
   <microcodeVersion>43100286</microcodeVersion>
   <package>v10.2.0-2062-g084a6c6e73</package>