]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Clarify QEMU_CAPS_KVM
authorAndrea Bolognani <abologna@redhat.com>
Thu, 13 Sep 2018 14:56:55 +0000 (16:56 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Mon, 17 Sep 2018 12:52:41 +0000 (14:52 +0200)
This capability is documented as having one meaning (whether
KVM is enabled by default) but is actually assigned two other
meanings over its life: whether the query-kvm QMP command is
available at first, and later on whether KVM is usable / was
used during probing.

Since the query-kvm QMP command was available in 1.5.0, we
can avoid probing for it; additionally, we can simplify the
logic by setting the flag when it applies instead of initially
setting it and then clearing it when it doesn't.

The flag's description is also updated to reflect reality.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h

index b1825534c9519b2ed4779703dedb7957d2d6774d..94fb062d01c1c681bd1d69efbbf54feb27c82d89 100644 (file)
@@ -1004,7 +1004,6 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
     { "block-stream", QEMU_CAPS_BLOCKJOB_ASYNC },
     { "dump-guest-memory", QEMU_CAPS_DUMP_GUEST_MEMORY },
     { "query-spice", QEMU_CAPS_SPICE },
-    { "query-kvm", QEMU_CAPS_KVM },
     { "block-commit", QEMU_CAPS_BLOCK_COMMIT },
     { "query-vnc", QEMU_CAPS_VNC },
     { "drive-mirror", QEMU_CAPS_DRIVE_MIRROR },
@@ -2621,25 +2620,11 @@ virQEMUCapsProbeQMPKVMState(virQEMUCapsPtr qemuCaps,
     bool enabled = false;
     bool present = false;
 
-    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
-        return 0;
-
     if (qemuMonitorGetKVMState(mon, &enabled, &present) < 0)
         return -1;
 
-    /* The QEMU_CAPS_KVM flag was initially set according to the QEMU
-     * reporting the recognition of 'query-kvm' QMP command. That merely
-     * indicates existence of the command though, not whether KVM support
-     * is actually available, nor whether it is enabled by default.
-     *
-     * If it is not present we need to clear the flag, and if it is
-     * not enabled by default we need to change the flag.
-     */
-    if (!present) {
-        virQEMUCapsClear(qemuCaps, QEMU_CAPS_KVM);
-    } else if (!enabled) {
-        virQEMUCapsClear(qemuCaps, QEMU_CAPS_KVM);
-    }
+    if (present && enabled)
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_KVM);
 
     return 0;
 }
index f00d790542b46429023d91647109b4e1aa9c1a02..e671f74ebb170152ec79721b4c6512b76926e395 100644 (file)
@@ -65,7 +65,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     X_QEMU_CAPS_MIGRATE_QEMU_TCP, /* have qemu tcp migration */
     X_QEMU_CAPS_MIGRATE_QEMU_EXEC, /* have qemu exec migration */
     X_QEMU_CAPS_DRIVE_CACHE_V2, /* cache= flag wanting new v2 values */
-    QEMU_CAPS_KVM, /* Whether KVM is enabled by default */
+    QEMU_CAPS_KVM, /* Whether KVM is usable / was used during probing */
     X_QEMU_CAPS_DRIVE_FORMAT, /* Is -drive format= avail */
 
     /* 15 */