[libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities

Claudio Fontana posted 27 patches 1 month, 2 weeks ago
[libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Claudio Fontana 1 month, 2 weeks ago
Signed-off-by: Claudio Fontana <cfontana@suse.de>
---
 src/qemu/qemu_capabilities.c                      | 4 ++++
 src/qemu/qemu_capabilities.h                      | 3 +++
 tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 +
 tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 +
 tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 +
 tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml   | 1 +
 tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 +
 tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml   | 1 +
 tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml  | 1 +
 34 files changed, 39 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 1ed4cda7f0..581b6a40df 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -672,6 +672,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "virtio-iommu-pci", /* QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI */
               "virtio-iommu.boot-bypass", /* QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS */
               "virtio-net.rss", /* QEMU_CAPS_VIRTIO_NET_RSS */
+
+              /* 430 */
+              "migrate-multifd", /* QEMU_CAPS_MIGRATE_MULTIFD */
     );
 
 
@@ -1230,6 +1233,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
 
 struct virQEMUCapsStringFlags virQEMUCapsMigration[] = {
     { "rdma-pin-all", QEMU_CAPS_MIGRATE_RDMA },
+    { "multifd", QEMU_CAPS_MIGRATE_MULTIFD },
 };
 
 /* Use virQEMUCapsQMPSchemaQueries for querying parameters of events */
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 9b240e47fb..b089f83da1 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -648,6 +648,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS, /* virtio-iommu.boot-bypass */
     QEMU_CAPS_VIRTIO_NET_RSS, /* virtio-net rss feature */
 
+    /* 430 */
+    QEMU_CAPS_MIGRATE_MULTIFD, /* migrate can set multifd parameter */
+
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
 
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
index 5adf904fc4..4ca2cfa81c 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
@@ -148,6 +148,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700240</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
index a84adc2610..1db978eb4c 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
@@ -153,6 +153,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900240</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
index c494254c4d..251d4dfd29 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
@@ -145,6 +145,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
index d2582fa297..a4af47c6a4 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
@@ -145,6 +145,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
index 4f36186044..2bab764867 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
@@ -115,6 +115,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100240</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
index 18e5ebd4f4..aa8a9812e5 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
@@ -188,6 +188,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
index 12c5ebe6f3..bd89f0c6b2 100644
--- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
@@ -195,6 +195,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
index ee536b7b63..369ef707b9 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
@@ -163,6 +163,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
index 10f5a9e2c5..16c867a46b 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
@@ -160,6 +160,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
index 069777a49b..b584ba7352 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
@@ -128,6 +128,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
index 6b61214a0b..5023028678 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
@@ -206,6 +206,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='migrate-multifd'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
index 4fd02e786d..c45b2e6cf6 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
@@ -175,6 +175,7 @@
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
+  <flag name='migrate-multifd'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
index f2f3558fdc..a3ad743d70 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
@@ -181,6 +181,7 @@
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
+  <flag name='migrate-multifd'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
index 557949d6d6..e1b5cac26b 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
@@ -167,6 +167,7 @@
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
+  <flag name='migrate-multifd'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
index f301d8a926..796adb9066 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
@@ -215,6 +215,7 @@
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
+  <flag name='migrate-multifd'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
index 3a330ebdc0..cb203df125 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
@@ -87,6 +87,7 @@
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='migrate-multifd'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
index 53fcbf3417..7479d942a2 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
@@ -219,6 +219,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
index 824224302c..268d1444ad 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
@@ -182,6 +182,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
index b949f88b5a..eabf4b600c 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
@@ -186,6 +186,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
index 873923992d..0dbaf5a5ec 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
@@ -172,6 +172,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
index 5e9560d7b7..b0fbab9cb5 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
@@ -140,6 +140,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
index 3998da9253..1a1717bf2a 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
@@ -223,6 +223,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
index 51d3628eeb..1c18d122e2 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
@@ -190,6 +190,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
index 2e5d0f197a..8fa4cb2307 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
@@ -148,6 +148,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
index 3498d6255b..70c67202b1 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
@@ -232,6 +232,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
index ddeca62290..a5ec77878f 100644
--- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
@@ -236,6 +236,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
index 5538940372..92d8ceff7e 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
@@ -201,6 +201,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700244</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
index 9c9d9aa08e..f219912927 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
@@ -197,6 +197,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900244</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
index dba5ecaf87..38fd3878ea 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
@@ -238,6 +238,7 @@
   <flag name='memory-backend-file.prealloc-threads'/>
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100244</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
index 257b0f625d..522e225c8f 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
@@ -209,6 +209,7 @@
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-iommu.boot-bypass'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6002092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
index 1ddca7d767..1eb43799c0 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
@@ -210,6 +210,7 @@
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-iommu.boot-bypass'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>6002092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
index 8074c97ecd..e5023c4219 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
@@ -242,6 +242,7 @@
   <flag name='virtio-iommu-pci'/>
   <flag name='virtio-iommu.boot-bypass'/>
   <flag name='virtio-net.rss'/>
+  <flag name='migrate-multifd'/>
   <version>7000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
-- 
2.35.3
Re: [libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Claudio Fontana 1 month, 2 weeks ago
Hi Daniel,

is this patch specifically controversial?

I ask because this is likely to be painful to maintain.

Thanks,

Claudio

On 5/7/22 3:43 PM, Claudio Fontana wrote:
> Signed-off-by: Claudio Fontana <cfontana@suse.de>
> ---
>  src/qemu/qemu_capabilities.c                      | 4 ++++
>  src/qemu/qemu_capabilities.h                      | 3 +++
>  tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml  | 1 +
>  34 files changed, 39 insertions(+)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 1ed4cda7f0..581b6a40df 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -672,6 +672,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
>                "virtio-iommu-pci", /* QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI */
>                "virtio-iommu.boot-bypass", /* QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS */
>                "virtio-net.rss", /* QEMU_CAPS_VIRTIO_NET_RSS */
> +
> +              /* 430 */
> +              "migrate-multifd", /* QEMU_CAPS_MIGRATE_MULTIFD */
>      );
>  
>  
> @@ -1230,6 +1233,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
>  
>  struct virQEMUCapsStringFlags virQEMUCapsMigration[] = {
>      { "rdma-pin-all", QEMU_CAPS_MIGRATE_RDMA },
> +    { "multifd", QEMU_CAPS_MIGRATE_MULTIFD },
>  };
>  
>  /* Use virQEMUCapsQMPSchemaQueries for querying parameters of events */
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 9b240e47fb..b089f83da1 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -648,6 +648,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
>      QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS, /* virtio-iommu.boot-bypass */
>      QEMU_CAPS_VIRTIO_NET_RSS, /* virtio-net rss feature */
>  
> +    /* 430 */
> +    QEMU_CAPS_MIGRATE_MULTIFD, /* migrate can set multifd parameter */
> +
>      QEMU_CAPS_LAST /* this must always be the last item */
>  } virQEMUCapsFlags;
>  
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> index 5adf904fc4..4ca2cfa81c 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> @@ -148,6 +148,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> index a84adc2610..1db978eb4c 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> @@ -153,6 +153,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> index c494254c4d..251d4dfd29 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> @@ -145,6 +145,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> index d2582fa297..a4af47c6a4 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> @@ -145,6 +145,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> index 4f36186044..2bab764867 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> @@ -115,6 +115,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> index 18e5ebd4f4..aa8a9812e5 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> @@ -188,6 +188,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> index 12c5ebe6f3..bd89f0c6b2 100644
> --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> @@ -195,6 +195,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> index ee536b7b63..369ef707b9 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> @@ -163,6 +163,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> index 10f5a9e2c5..16c867a46b 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> @@ -160,6 +160,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> index 069777a49b..b584ba7352 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> @@ -128,6 +128,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> index 6b61214a0b..5023028678 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> @@ -206,6 +206,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> index 4fd02e786d..c45b2e6cf6 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> @@ -175,6 +175,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> index f2f3558fdc..a3ad743d70 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> @@ -181,6 +181,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> index 557949d6d6..e1b5cac26b 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> @@ -167,6 +167,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> index f301d8a926..796adb9066 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> @@ -215,6 +215,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> index 3a330ebdc0..cb203df125 100644
> --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> @@ -87,6 +87,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
> +  <flag name='migrate-multifd'/>
>    <version>5001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> index 53fcbf3417..7479d942a2 100644
> --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> @@ -219,6 +219,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> index 824224302c..268d1444ad 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> @@ -182,6 +182,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> index b949f88b5a..eabf4b600c 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> @@ -186,6 +186,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> index 873923992d..0dbaf5a5ec 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> @@ -172,6 +172,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> index 5e9560d7b7..b0fbab9cb5 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> @@ -140,6 +140,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> index 3998da9253..1a1717bf2a 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> @@ -223,6 +223,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> index 51d3628eeb..1c18d122e2 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> @@ -190,6 +190,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> index 2e5d0f197a..8fa4cb2307 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> @@ -148,6 +148,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> index 3498d6255b..70c67202b1 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> @@ -232,6 +232,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> index ddeca62290..a5ec77878f 100644
> --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> @@ -236,6 +236,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> index 5538940372..92d8ceff7e 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> @@ -201,6 +201,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> index 9c9d9aa08e..f219912927 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> @@ -197,6 +197,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> index dba5ecaf87..38fd3878ea 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> @@ -238,6 +238,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> index 257b0f625d..522e225c8f 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> @@ -209,6 +209,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002092</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> index 1ddca7d767..1eb43799c0 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> @@ -210,6 +210,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002092</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> index 8074c97ecd..e5023c4219 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> @@ -242,6 +242,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>7000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
>
Re: [libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Peter Krempa 1 month, 2 weeks ago
On Wed, May 11, 2022 at 14:56:35 +0200, Claudio Fontana wrote:
> Hi Daniel,
> 
> is this patch specifically controversial?
> 
> I ask because this is likely to be painful to maintain.

Note that in August of this year it will become obsolete. In august
we'll be dropping support for debian-10 old qemu and thus bumping the
minimum supported qemu to at least qemu-4.2.

Additionally we have a whole separate machinery for probing the
migration capabilities via the migration parameters, so you can
theoreticaly replace it by that code, especially since you'll need to
set the multifd capability when attempting the migration anyways.
Re: [libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Claudio Fontana 1 month, 2 weeks ago
On 5/11/22 3:17 PM, Peter Krempa wrote:
> On Wed, May 11, 2022 at 14:56:35 +0200, Claudio Fontana wrote:
>> Hi Daniel,
>>
>> is this patch specifically controversial?
>>
>> I ask because this is likely to be painful to maintain.
> 
> Note that in August of this year it will become obsolete. In august
> we'll be dropping support for debian-10 old qemu and thus bumping the
> minimum supported qemu to at least qemu-4.2.
> 
> Additionally we have a whole separate machinery for probing the
> migration capabilities via the migration parameters, so you can
> theoreticaly replace it by that code, especially since you'll need to
> set the multifd capability when attempting the migration anyways.
> 

Thanks for the information, is the whole separate machinery the part I am
doing in this series in patch 20/27 with the multifd-compression parameter?

Or something else entirely? Could you point me at the ropes so to speak?

Thanks,

C
Re: [libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Peter Krempa 1 month, 2 weeks ago
On Wed, May 11, 2022 at 15:25:49 +0200, Claudio Fontana wrote:
> On 5/11/22 3:17 PM, Peter Krempa wrote:
> > On Wed, May 11, 2022 at 14:56:35 +0200, Claudio Fontana wrote:
> >> Hi Daniel,
> >>
> >> is this patch specifically controversial?
> >>
> >> I ask because this is likely to be painful to maintain.
> > 
> > Note that in August of this year it will become obsolete. In august
> > we'll be dropping support for debian-10 old qemu and thus bumping the
> > minimum supported qemu to at least qemu-4.2.
> > 
> > Additionally we have a whole separate machinery for probing the
> > migration capabilities via the migration parameters, so you can
> > theoreticaly replace it by that code, especially since you'll need to
> > set the multifd capability when attempting the migration anyways.
> > 
> 
> Thanks for the information, is the whole separate machinery the part I am
> doing in this series in patch 20/27 with the multifd-compression parameter?
> 
> Or something else entirely? Could you point me at the ropes so to speak?

Basically yes. You should be able to use 'qemuMigrationCapsGet' with
'QEMU_MIGRATION_CAP_MULTIFD' to probe whether qemu supports it instead
of having to add the detection yourself via qemuCaps.
Re: [libvirt RFCv8 12/27] qemu: capabilities: add multifd to the probed migration capabilities
Posted by Ani Sinha 1 month, 2 weeks ago
Qemu folks,
It seems we do officially support multifd from version 4.0 :

commit cbfd6c957a4437d4759ca660e621daa381bf2898
Author: Juan Quintela <quintela@redhat.com>
Date:   Wed Feb 6 13:54:06 2019 +0100

    multifd: Drop x-

    We make it supported from now on.

    Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Reviewed-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>

$ git tag --contains cbfd6c957a4437d4759ca660e621daa381bf2898 | sort
-V | grep -v list | head -1
v4.0.0

Yet it seems we continue to prefix the migration property with "x-"
(x-multifd). This prop was added here and we have continued to use it
as is:

commit 30126bbf1f7fcad0bf4c65b01a21ff22a36a9759
Author: Juan Quintela <quintela@redhat.com>
Date:   Thu Jan 14 12:23:00 2016 +0100

    migration: Add multifd capability

    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Daniel P. Berrange <berrange@redhat.com>

Can anyone explain why?

On Sat, May 7, 2022 at 7:13 PM Claudio Fontana <cfontana@suse.de> wrote:
>
> Signed-off-by: Claudio Fontana <cfontana@suse.de>

other than the question above,

Reviewed-by: Ani Sinha <ani@anisinha.ca>

> ---
>  src/qemu/qemu_capabilities.c                      | 4 ++++
>  src/qemu/qemu_capabilities.h                      | 3 +++
>  tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml   | 1 +
>  tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml  | 1 +
>  34 files changed, 39 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 1ed4cda7f0..581b6a40df 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -672,6 +672,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
>                "virtio-iommu-pci", /* QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI */
>                "virtio-iommu.boot-bypass", /* QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS */
>                "virtio-net.rss", /* QEMU_CAPS_VIRTIO_NET_RSS */
> +
> +              /* 430 */
> +              "migrate-multifd", /* QEMU_CAPS_MIGRATE_MULTIFD */
>      );
>
>
> @@ -1230,6 +1233,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
>
>  struct virQEMUCapsStringFlags virQEMUCapsMigration[] = {
>      { "rdma-pin-all", QEMU_CAPS_MIGRATE_RDMA },
> +    { "multifd", QEMU_CAPS_MIGRATE_MULTIFD },
>  };
>
>  /* Use virQEMUCapsQMPSchemaQueries for querying parameters of events */
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 9b240e47fb..b089f83da1 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -648,6 +648,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
>      QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS, /* virtio-iommu.boot-bypass */
>      QEMU_CAPS_VIRTIO_NET_RSS, /* virtio-net rss feature */
>
> +    /* 430 */
> +    QEMU_CAPS_MIGRATE_MULTIFD, /* migrate can set multifd parameter */
> +
>      QEMU_CAPS_LAST /* this must always be the last item */
>  } virQEMUCapsFlags;
>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> index 5adf904fc4..4ca2cfa81c 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
> @@ -148,6 +148,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> index a84adc2610..1db978eb4c 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
> @@ -153,6 +153,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> index c494254c4d..251d4dfd29 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
> @@ -145,6 +145,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> index d2582fa297..a4af47c6a4 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
> @@ -145,6 +145,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> index 4f36186044..2bab764867 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
> @@ -115,6 +115,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> index 18e5ebd4f4..aa8a9812e5 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> @@ -188,6 +188,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> index 12c5ebe6f3..bd89f0c6b2 100644
> --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> @@ -195,6 +195,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> index ee536b7b63..369ef707b9 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
> @@ -163,6 +163,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> index 10f5a9e2c5..16c867a46b 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
> @@ -160,6 +160,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> index 069777a49b..b584ba7352 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
> @@ -128,6 +128,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> index 6b61214a0b..5023028678 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> @@ -206,6 +206,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='migrate-multifd'/>
>    <version>4002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> index 4fd02e786d..c45b2e6cf6 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
> @@ -175,6 +175,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> index f2f3558fdc..a3ad743d70 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
> @@ -181,6 +181,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> index 557949d6d6..e1b5cac26b 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
> @@ -167,6 +167,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> index f301d8a926..796adb9066 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> @@ -215,6 +215,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
> +  <flag name='migrate-multifd'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> index 3a330ebdc0..cb203df125 100644
> --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
> @@ -87,6 +87,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='memory-backend-file.prealloc-threads'/>
> +  <flag name='migrate-multifd'/>
>    <version>5001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> index 53fcbf3417..7479d942a2 100644
> --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> @@ -219,6 +219,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> index 824224302c..268d1444ad 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
> @@ -182,6 +182,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> index b949f88b5a..eabf4b600c 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
> @@ -186,6 +186,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> index 873923992d..0dbaf5a5ec 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
> @@ -172,6 +172,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>0</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> index 5e9560d7b7..b0fbab9cb5 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
> @@ -140,6 +140,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> index 3998da9253..1a1717bf2a 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> @@ -223,6 +223,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> index 51d3628eeb..1c18d122e2 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
> @@ -190,6 +190,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> index 2e5d0f197a..8fa4cb2307 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
> @@ -148,6 +148,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>39100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> index 3498d6255b..70c67202b1 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> @@ -232,6 +232,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> index ddeca62290..a5ec77878f 100644
> --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> @@ -236,6 +236,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> index 5538940372..92d8ceff7e 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
> @@ -201,6 +201,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6001050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> index 9c9d9aa08e..f219912927 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
> @@ -197,6 +197,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> index dba5ecaf87..38fd3878ea 100644
> --- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
> @@ -238,6 +238,7 @@
>    <flag name='memory-backend-file.prealloc-threads'/>
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100244</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> index 257b0f625d..522e225c8f 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
> @@ -209,6 +209,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002092</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>61700243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> index 1ddca7d767..1eb43799c0 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
> @@ -210,6 +210,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>6002092</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>42900243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> index 8074c97ecd..e5023c4219 100644
> --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
> @@ -242,6 +242,7 @@
>    <flag name='virtio-iommu-pci'/>
>    <flag name='virtio-iommu.boot-bypass'/>
>    <flag name='virtio-net.rss'/>
> +  <flag name='migrate-multifd'/>
>    <version>7000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> --
> 2.35.3
>