]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Probe for migrtability support in CPU expansion
authorJiri Denemark <jdenemar@redhat.com>
Tue, 2 Jun 2020 23:05:36 +0000 (01:05 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 9 Jun 2020 18:32:50 +0000 (20:32 +0200)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
13 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml

index 3f5ddbd34e96f26113d3e3b0e4182ed21cff0963..dab3665f073c5749d9678626b29cd297e1221e03 100644 (file)
@@ -585,6 +585,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
 
               /* 370 */
               "cpu.migratable",
+              "query-cpu-model-expansion.migratable",
     );
 
 
@@ -5041,9 +5042,18 @@ virQEMUCapsInitProcessCaps(virQEMUCapsPtr qemuCaps)
         virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM);
 
     if (ARCH_IS_X86(qemuCaps->arch) &&
-        virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION))
+        virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION)) {
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_CACHE);
 
+        /* Old x86 QEMU supported migratable:false property in
+         * query-cpu-model-expansion arguments even though it was not properly
+         * advertised as a CPU property.
+         */
+        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MIGRATABLE) ||
+            qemuCaps->version < 2012000)
+            virQEMUCapsSet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_MIGRATABLE);
+    }
+
     if (ARCH_IS_S390(qemuCaps->arch)) {
         /* Legacy assurance for QEMU_CAPS_CCW */
         if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCW) &&
index c07b3e6f08c9054d7793a3bb373af77bc9a53e7b..f085e67e11b471e3cb1c3a7b357491409d1b0867 100644 (file)
@@ -566,6 +566,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 370 */
     QEMU_CAPS_CPU_MIGRATABLE, /* -cpu ...,migratable=on|off */
+    QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_MIGRATABLE, /* query-cpu-model-expansion supports migratable:false */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index cb02723adaab46d2d9ef7283e104c3ac07f9c5b5..8030de8b5f71bccb08a7fa634aabdbac4a600458 100644 (file)
   <flag name='i8042'/>
   <flag name='tcg'/>
   <flag name='pvscsi'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100287</microcodeVersion>
index 5245fc77dcfe7c12c1e5ed9489b315071e6692b6..cf927c0bd6752d9e77371a1a0198f36b13a9c7bd 100644 (file)
   <flag name='i8042'/>
   <flag name='tcg'/>
   <flag name='pvscsi'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100288</microcodeVersion>
index 1cb0957ed7c2012dcc2c3d8c764b92abf789eb82..d9de98eca4a73918d259b304e5cc4fef190f5f68 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100289</microcodeVersion>
index 122d9509f15a8d2c29b0b15e438f0de6e8697f46..866d1062bfbad549b0fd28b83ae67f7181379b85 100644 (file)
   <flag name='i8042'/>
   <flag name='tcg'/>
   <flag name='pvscsi'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100247</microcodeVersion>
index 10b2661fe325cb0b7e035b81a4b0483fad8f2f28..ac8db37399b08e999915b5294a155c6371ea8fb8 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100239</microcodeVersion>
index 7ff47aa3485721338ff8a3f1ca4f89dc46efdac5..bc013ecc081a106f5191a88bf21338197bb7edf7 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>3000092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index e9fdf9cb1e1d8ef8f33519ee1b6fa4a20d67d186..d7fb3c2a148dfe18c9756e31b7ce297354c7e0db 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index d57cedd0dbd8b330bd07d9969d523d481a8c063b..6f904b6ff45e4cfe2dc9e21d70658f92f0f227b5 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>4001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index 2685c3219f936cea3fcc31c3c51c3026941daeff..f0bb23d5077125d19a030c3f61bf214df2195135 100644 (file)
   <flag name='tcg'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 0355518cbeca15046b75951273d14a97fdc25cfd..e4bf738cb554e457446a7fbb18a74b18e171e1f9 100644 (file)
   <flag name='virtio-blk-pci.scsi.default.disabled'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index 906fec41eedd8449a587f93f5399bac545bf9123..cec503308f1cc3499dfb304b55d7e349fc54590f 100644 (file)
   <flag name='virtio-blk-pci.scsi.default.disabled'/>
   <flag name='pvscsi'/>
   <flag name='cpu.migratable'/>
+  <flag name='query-cpu-model-expansion.migratable'/>
   <version>5000050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>