]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: probe for "-cpu max" support
authorDaniel P. Berrangé <berrange@redhat.com>
Fri, 5 Feb 2021 18:21:14 +0000 (18:21 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Wed, 10 Feb 2021 11:44:48 +0000 (11:44 +0000)
This is a special CPU model similar to "-cpu host", so won't use our
normal CPU model detection logic.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h

index fb302c8e0c59fa19ca88c1edbeca7aed2344a68c..a61a2616c74bfd90dc32b4ae3c07758304504701 100644 (file)
@@ -614,6 +614,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
 
               /* 390 */
               "vhost-user-blk",
+              "cpu-max",
     );
 
 
@@ -2984,12 +2985,23 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps,
                                   virQEMUCapsAccelPtr accel,
                                   qemuMonitorPtr mon)
 {
+    qemuMonitorCPUDefsPtr defs;
+    size_t i;
+
     if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS))
         return 0;
 
     if (virQEMUCapsFetchCPUDefinitions(mon, qemuCaps->arch, &accel->cpuModels) < 0)
         return -1;
 
+    defs = accel->cpuModels;
+    for (i = 0; i < defs->ncpus; i++) {
+        if (STREQ_NULLABLE(defs->cpus[i].name, "max")) {
+            virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_MAX);
+            break;
+        }
+    }
+
     return 0;
 }
 
index 8cb56730428f5b21409cd13c925a73fcc1ed3c28..79d443adfb3407a1066768e236cf909dce9e968a 100644 (file)
@@ -594,6 +594,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 390 */
     QEMU_CAPS_DEVICE_VHOST_USER_BLK, /* -device vhost-user-blk */
+    QEMU_CAPS_CPU_MAX, /* -cpu max */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;