]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Introduce QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI
authorAndrea Bolognani <abologna@redhat.com>
Wed, 22 Sep 2021 17:15:01 +0000 (19:15 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Fri, 1 Apr 2022 17:30:59 +0000 (19:30 +0200)
This capability detects the availability of the virtio-iommu-pci
device.

Note that, while this device is present even in somewhat old
versions of QEMU, it's only some recent changes that made it
actually usable for our purposes.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
22 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml

index 25d029d0cc8f9756b8c733ec17182cc4df23d0c5..95aedee824a33c64004105651d721413853dba6d 100644 (file)
@@ -669,6 +669,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               /* 425 */
               "blockdev.nbd.tls-hostname", /* QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME */
               "memory-backend-file.prealloc-threads", /* QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS */
+              "virtio-iommu-pci", /* QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI */
     );
 
 
@@ -1393,6 +1394,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
     { "virtio-vga-gl", QEMU_CAPS_VIRTIO_VGA_GL },
     { "s390-pv-guest", QEMU_CAPS_S390_PV_GUEST },
     { "virtio-mem-pci", QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI },
+    { "virtio-iommu-pci", QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI },
 };
 
 
index b2426a6d25b00fa48e783a5b616602fa0aa3279a..cc634544304812d8b12903a1db6fa3ee33f70c64 100644 (file)
@@ -644,6 +644,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     /* 425 */
     QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME, /* tls hostname can be overridden for NBD clients */
     QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS, /* -object memory-backend-*.prealloc-threads */
+    QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI, /* -device virtio-iommu-pci */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index d188eab3fedbb77a3b47c0d322fc5223e1086fa0..4d85bb41dd367b3ba338f5bd0c26f9efd977b75c 100644 (file)
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700241</microcodeVersion>
index 12592f457a0ab826e0c3ff4b9643a9d4469ebae4..d302db4461ed7677d1fd4263d8d10cdd048431c8 100644 (file)
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>
index 75c3a9b4fcaf4616598499b8fc7b239ab3fa2055..961940e5368cfbcf70369a0402c6c4d7882d2365 100644 (file)
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index 5927c48ee4b1c43881444d0960c08a667e4f2aac..4dc2312182f7c69211fed9fd0d95696b949e02e4 100644 (file)
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index e0291268b3490505664ed478efa8f471e4d9f68a..d1859659ac2c52f6dea17394d9365026cb4b407b 100644 (file)
   <flag name='virtio-blk.queue-size'/>
   <flag name='virtio-mem-pci'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 20a1a8154bda6b9967ec88c0ea70012062c28151..3611b06e49c5883987f2d3967e37fffe2f1f13bc 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
index add2ded00ad154d6a8976f1118e358f680a3d8d7..01b976aa6fa761a6e208fc1ada6e0671277f9761 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
index 237d043e5dc9d5921779187128ff6903cca2bcab..70517a3199ceb88ada0dcd594828eadd98b3b9cc 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index 57e40f8f86377ccb0f858880ffcbc488d974e6ca..60370ad434f40493cf0d04267e35282e434b1ea7 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100243</microcodeVersion>
index 7c65648c0630e38dfc5e3ae2a5d2f8affa056e96..7bb5cf5f42d042c6b37f3ee44b773bdf96a3271a 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
index 7557e6ad71ac3a93b53b1d8c70b059fa4d6af343..64e0efc89af3df1424c5ac92101f33c9aee51706 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
index 00009be3dcc3727b07ac0ae2ef1b71b6787e7e1d..8f1212ec622d7eff8855a60ef15b85fc691f1e5f 100644 (file)
   <flag name='query-dirty-rate'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100242</microcodeVersion>
index 61d561dc691b6796f60851acef06144e76f9d8df..6bd8b8856f75ae75a27cf7c4591294e31e9de5f6 100644 (file)
   <flag name='sev-inject-launch-secret'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 0b58210335fcd14c2593f652337ce1af22bf8450..390aaeab67d254bf7f52ff1c18702075d013f5be 100644 (file)
   <flag name='sev-inject-launch-secret'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>
index d08b2c02133434af5e5e559741838b701af06547..884fdd738da4e60439776cd115b679fdb45b90e7 100644 (file)
   <flag name='rbd-encryption'/>
   <flag name='calc-dirty-rate'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700244</microcodeVersion>
index 8c52964ec048b93ab5fcdc2df13cb1d2b3addf21..f93221774978745c6549ec6aac633f1f06f66e65 100644 (file)
   <flag name='calc-dirty-rate'/>
   <flag name='dirtyrate-param.mode'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900244</microcodeVersion>
index cdf72b9ebffafef4c62252d63e60d77427427f37..c24c0dc797c3ed86362c9c4be61c2d12fe69c7f6 100644 (file)
   <flag name='calc-dirty-rate'/>
   <flag name='dirtyrate-param.mode'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100244</microcodeVersion>
index 53dea889df3ff38094a84026cf38ce8ca38ec592..73d16e9dfe25ed0a00b8e35adb01b17582334bb2 100644 (file)
   <flag name='dirtyrate-param.mode'/>
   <flag name='blockdev.nbd.tls-hostname'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6002092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
index 766e6c866cdc72ec27377bd3a6ee7843c0727b41..51f5dac464b69ad1545a7cc4fc4cbbf99b631461 100644 (file)
   <flag name='dirtyrate-param.mode'/>
   <flag name='blockdev.nbd.tls-hostname'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6002092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
index 3f42e67d0b43aed09fa1ea67fa20768e201e2d4d..1c05085a2ff9c998fdcfbdb6ee1636a1d45393aa 100644 (file)
   <flag name='dirtyrate-param.mode'/>
   <flag name='blockdev.nbd.tls-hostname'/>
   <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
   <version>6002092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100243</microcodeVersion>