[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] question about suspending the guest



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.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.