WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] suspend operation in XEND

> when the domainU is being suspended I see "shutdown_suspend_t" message
> sent to the domain thru the event channel by XEND.
>
> what does the domainU do on receiving this message ??

There's various other stuff a domain does do when suspending.  See 
linux-2.6.10-xen-sparse/arch/xen/kernel/reboot.c.  In particular, the 
function __do_suspend() calls various subsystems, creates a "suspend record" 
and then hypercalls into Xen with HYPERVISOR_suspend(), telling it where the 
suspend record actually is.

When the domain sees the hypercall return, it has been resumed, so this 
function runs through and resumes various kernel subsystems.

> is the DISCONNECTED message sent by XEND as a part of suspend_domain
> or as a part of destroy_domain??

OK, looking at the code, this doesn't work quite how I thought it did - sorry.

* A DISCONNECTED message on a CONNECTED interface means "your backend has 
disappeared because of failure  - please reconnect to the new backend".  So 
Xend sends it on resume to notify the domain that it needs to reconnect when 
a driver domain is restarted.  This only occurs on driver domain reboots.
* A DISCONNECTED message on a CLOSED interface means "this interface (which 
was in the process is tear down) has now gone".  This would only occur when 
an interface is torn down and I'm not sure that actually happens in practice 
(?)

I originally thought suspend / resume was now treated exactly like a backend 
failure but apparently that's not quite right:

__do_suspend() (as mentioned above) notifies the drivers when a suspend will 
occur.  They can use this to tear down some stuff (the block driver doesn't 
appear to need to do anything, it seems).  When the domain is restored, the 
second half of __do_suspend() notifies the drivers that a resume has occurred 
and they send messages to the domain controller requesting a reconnect.

After that, they just requeue pending requests, as they would also do in the 
case of a backend restart.

Any DISCONNECTED messages that occur will be during the resume as part of the 
reconnection protocol but it's too late at night to figure out exactly what's 
involved.  They won't happen during the suspend AFAIK.

HTH,
Mark


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel

<Prev in Thread] Current Thread [Next in Thread>