cc1d1db qemuDomainPMSuspendForDuration: check for wake-up support

1 file Authored by Daniel Henrique Barboza 4 years ago, Committed by mprivozn 4 years ago,
    qemuDomainPMSuspendForDuration: check for wake-up support
    
    If the current QEMU guest can't wake up from suspend properly,
    and we are able to determine that, avoid suspending the guest
    at all. To be able to determine this support, QEMU needs to
    implement the 'query-current-machine' QMP call. This is reflected
    by the QEMU_CAPS_QUERY_CURRENT_MACHINE cap.
    
    If the cap is enabled, a new function qemuDomainProbeQMPCurrentMachine
    is called. This is wrapper for qemuMonitorGetCurrentMachineInfo,
    where the 'wakeup-suspend-support' flag is retrieved from
    'query-current-machine'. If wakeupSuspendSupport is true,
    proceed with the regular flow of qemuDomainPMSuspendForDuration.
    
    The absence of QEMU_CAPS_QUERY_CURRENT_MACHINE indicates that
    we're dealing with a QEMU version older than 4.0 (which implements
    the required QMP API). In this case, proceed as usual with the
    suspend logic of qemuDomainPMSuspendForDuration, since we can't
    assume whether the guest has support or not.
    
    Fixes: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1759509
    Reported-by: Balamuruhan S <bala24@linux.vnet.ibm.com>
    Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
    
        
file modified
+53 -2