From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: question about suspending the guest Date: Fri, 27 Mar 2015 10:31:52 +0000 Message-ID: <1427452312.13935.99.camel@citrix.com> References: <5514F304.8020105@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5514F304.8020105@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Wen Congyang Cc: xen devel List-Id: xen-devel@lists.xenproject.org On Fri, 2015-03-27 at 14:04 +0800, Wen Congyang wrote: > When I test COLO, I find that suspending the primay guest will fail. > > static void domain_suspend_common_wait_guest(libxl__egc *egc, > libxl__domain_suspend_state2 *dss2) > { > STATE_AO_GC(dss2->ao); > int rc; > > LOG(DEBUG, "wait for the guest to suspend"); > > rc = libxl__ev_xswatch_register(gc, &dss2->guest_watch, > suspend_common_wait_guest_watch, > "@releaseDomain"); > if (rc) goto err; > > rc = libxl__ev_time_register_rel(gc, &dss2->guest_timeout, > suspend_common_wait_guest_timeout, > 60*1000); > if (rc) goto err; > return; > > err: > domain_suspend_common_failed(egc, dss2); > } > > suspend_common_wait_guest_watch() is not called and timeout. I don't know > who will wake up this watch. Any watch on @releaseDomain should be fired by xenstored whenever a domain is destroyed. xenstored is notified of such events by the hypervisor via VIRQ_DOM_EXC. If the watch is not firing then either the domain is not suspending in a timely manner (i.e. it takes longer than 60 seconds, or never happens at all) or something else is wrong with your configuration. Ian.