]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Detect whether iothread polling is supported
authorJohn Ferlan <jferlan@redhat.com>
Fri, 5 Oct 2018 19:59:49 +0000 (15:59 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Mon, 19 Nov 2018 12:26:40 +0000 (07:26 -0500)
Add a capability check for IOThread polling (all were added at the
same time, so only one check is necessary).

Based on code originally posted by Pavel Hrdina <phrdina@redhat.com>
with the only changes to include the more recent QEMU releases.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
20 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml
tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml

index e4984c03a55ebb74e18fd10c9d847514001bdd6c..fde27010e4874673bf7cf0cc331939c0e294c763 100644 (file)
@@ -514,6 +514,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
 
               /* 320 */
               "memory-backend-memfd.hugetlb",
+              "iothread.poll-max-ns",
     );
 
 
@@ -1246,6 +1247,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "nbd-server-start/arg-type/tls-creds", QEMU_CAPS_NBD_TLS },
     { "screendump/arg-type/device", QEMU_CAPS_SCREENDUMP_DEVICE },
     { "block-commit/arg-type/*top",  QEMU_CAPS_ACTIVE_COMMIT },
+    { "query-iothreads/ret-type/poll-max-ns", QEMU_CAPS_IOTHREAD_POLLING },
 };
 
 typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
index 0635eb4fc860349e8008ae126b6f0a35a782317a..c2caaf6fe14280e5d4a3f1de222f6e6100141c69 100644 (file)
@@ -498,6 +498,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 320 */
     QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB, /* -object memory-backend-memfd.hugetlb */
+    QEMU_CAPS_IOTHREAD_POLLING, /* -object iothread.poll-max-ns */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index b9c4182a669e3e577b07f4b8398b669dfce48938..7061ba8f7e8de659894f9a0750a534570dc2dfcb 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>305067</microcodeVersion>
index 66b25601e7a14810d8df1d950495044ad7ee7fb9..2a48b63efe7f1c67fc5a1542c30338a90117e518 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>384412</microcodeVersion>
index 3c311042f3cae506b341951b9891ad50b9183da9..180a688ba247ae3c8bcf75380997fc8390d82607 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='zpci'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>306247</microcodeVersion>
index ebc5e771d97b7329daf950c5439f3422d389b197..a8d787f99a61ece7fa0be105320c3b5feabaa98e 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='mch'/>
   <flag name='egl-headless'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>364386</microcodeVersion>
index 48db1dbf2d2329fe63f3f57de0099dfe6ebf8aae..7dc643d9a3547793ac34b5f3b7385a442bfad4a8 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='zpci'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>345099</microcodeVersion>
index 857a9a9f9a7208c9158e4decfa84600f6f633e53..4ba2a82b6031314079f7a1196ed120fba6c23398 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>368875</microcodeVersion>
index 4254018d4c1f83948403815858b415bc7051fb87..8dd90f5e72af54eb02e3ff550d9557aebe9a2996 100644 (file)
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>345725</microcodeVersion>
index 0cbc6e31199cd409efbdaa7f8d1d1cb560304464..e64610340f98a8d50628eed3a24419f4093a2946 100644 (file)
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>426509</microcodeVersion>
index 535107912e7ecf1c3ffcc1f3872cf3067762038a..b18bd74dee7ac9959a5b7d27327b46f98ba4556b 100644 (file)
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2012000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>375102</microcodeVersion>
index 73df166bc786b9f9e10ad60ef82c381cb37b874d..ac97e168f142c4bf6bc53dbe6b36f8ab6bd47d97 100644 (file)
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>414371</microcodeVersion>
index f97ebdb9d4c2dc749c0c36863c88954f7bf5bfb7..d9ca8f3d2b1da631b667ec5fd12dd2076789ebc3 100644 (file)
   <flag name='hda-output'/>
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>349056</microcodeVersion>
index f1e05ab1c4a5043d2530f014de2e981ceeccef6f..4bb61f09f049d10192529ab562134e79cbf49497 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='zpci'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>267973</microcodeVersion>
index 7bf31d9fd55dea780a2d1a8113d37b0eb167702d..3c26b381da8425bfe78ed36f1320b72f627874b7 100644 (file)
   <flag name='vmgenid'/>
   <flag name='vhost-vsock'/>
   <flag name='mch'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>340375</microcodeVersion>
index 7a8a4c782d47accdcc006b6241d0dad4964ac474..f11d860efb786ff24fd812c6e8020f66d1b2bb4b 100644 (file)
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>444946</microcodeVersion>
index 634d76ef267668418f6c379749b4b5e6f9810ee2..552b31979160b9393cbd1fdeb3e7d3a5b32eb62e 100644 (file)
   <flag name='egl-headless'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index d042eda06c57e97fccffa083bebe0c95a6602883..4f9832dc09c34a8b1ad4b2a69331d83711f328b4 100644 (file)
   <flag name='egl-headless'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index 697c8d51b869a4d4d090c4acecb2b98ba4b29a1a..1c4177c9f4181e449e00bd07dc24319c38cb2279 100644 (file)
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>388416</microcodeVersion>
index ffe3e06236ad45375e7d302afb437225d31e5df6..b2d98a6afa69d804f8a281ae07b0c8ca15ba3edc 100644 (file)
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='iothread.poll-max-ns'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>425972</microcodeVersion>