From: Keir Fraser Date: Fri, 5 Dec 2008 15:54:22 +0000 (+0000) Subject: Fix domain save when guest is in S3. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14026^2~60 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a046a6dc893165068ee4e6692b152da828dc1970;p=xen.git Fix domain save when guest is in S3. Signed-off-by: Keir Fraser --- diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index c91a577b2a..7a8349d035 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -517,7 +517,8 @@ class XendDomainInfo: # HVM domain shuts itself down only if it has PV drivers if self.info.is_hvm(): hvm_pvdrv = xc.hvm_get_param(self.domid, HVM_PARAM_CALLBACK_IRQ) - if not hvm_pvdrv: + hvm_s_state = xc.hvm_get_param(self.domid, HVM_PARAM_ACPI_S_STATE) + if not hvm_pvdrv or hvm_s_state != 0: code = REVERSE_DOMAIN_SHUTDOWN_REASONS[reason] log.info("HVM save:remote shutdown dom %d!", self.domid) xc.domain_shutdown(self.domid, code) diff --git a/tools/xcutils/xc_save.c b/tools/xcutils/xc_save.c index 9ece499f04..d11543e08d 100644 --- a/tools/xcutils/xc_save.c +++ b/tools/xcutils/xc_save.c @@ -166,18 +166,12 @@ static int suspend(void) { unsigned long sx_state = 0; - /* Nothing to do if the guest is in an ACPI sleep state. */ + /* Cannot notify guest to shut itself down if it's in ACPI sleep state. */ if (si.flags & XCFLAGS_HVM) xc_get_hvm_param(si.xc_fd, si.domid, HVM_PARAM_ACPI_S_STATE, &sx_state); - if (sx_state != 0) { - /* notify xend that it can do device migration */ - printf("suspended\n"); - fflush(stdout); - return 1; - } - if (si.suspend_evtchn >= 0) + if ((sx_state == 0) && (si.suspend_evtchn >= 0)) return evtchn_suspend(); return compat_suspend();