[libvirt] [PATCH] qemu: capabilities: Don't partially reprope caps on process reconnect

Jiri Denemark jdenemar at redhat.com
Fri Nov 25 18:04:20 UTC 2016


On Fri, Nov 25, 2016 at 17:14:48 +0100, Peter Krempa wrote:
> Thanks to the complex capability caching code virQEMUCapsProbeQMP was
> never called when we were starting a new qemu VM. On the other hand,
> when we are reconnecting to the qemu process we reload the capability
> list from the status XML file. This means that the flag preventing the
> function being called was not set and thus we partially reprobed some of
> the capabilities.
> 
> The recent addition of CPU hotplug clears the
> QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS if the machine does not support it.
> The partial re-probe on reconnect results into attempting to call the
> unsupported command and then killing the VM.
> 
> Remove the partial reprobe and depend on the stored capabilities. If it
> will be necessary to reprobe the capabilities in the future, we should
> do a full reprobe rather than this partial one.
> ---
>  src/qemu/qemu_capabilities.c | 17 -----------------
>  src/qemu/qemu_capabilities.h |  3 ---
>  src/qemu/qemu_process.c      |  4 ----
>  3 files changed, 24 deletions(-)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 8901e7b..37e5302 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -2937,23 +2937,6 @@ virQEMUCapsProbeQMPGICCapabilities(virQEMUCapsPtr qemuCaps,
>      return 0;
>  }
> 
> -int virQEMUCapsProbeQMP(virQEMUCapsPtr qemuCaps,
> -                        qemuMonitorPtr mon)
> -{
> -    VIR_DEBUG("qemuCaps=%p mon=%p", qemuCaps, mon);
> -
> -    if (qemuCaps->usedQMP)
> -        return 0;
> -
> -    if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
> -        return -1;
> -
> -    if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
> -        return -1;
> -
> -    return 0;
> -}
> -

Oh, that's some seriously ancient piece of code which should have been
removed ages ago.

ACK

Jirka




More information about the libvir-list mailing list