From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: PV driver domains and S3 sleep Date: Fri, 24 Sep 2010 11:06:53 -0700 Message-ID: <4C9CE8BD.9090705@goop.org> References: <4C926A3C.6090409@invisiblethingslab.com> <4C92B4DA.1090103@goop.org> <20100924143033.GC867@email> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100924143033.GC867@email> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Rafal Wojtczuk Cc: "xen-devel@lists.xensource.com" , Keir Fraser , Joanna Rutkowska List-Id: xen-devel@lists.xenproject.org On 09/24/2010 07:30 AM, Rafal Wojtczuk wrote: > On Thu, Sep 16, 2010 at 05:22:50PM -0700, Jeremy Fitzhardinge wrote: >>>>> The topic is self-explanatory: how to ensure that a PV driver domain correctly >>>>> prepares its PCI devices for S3 sleep? > [cut] >> I think the simplest thing to do is just do a regular PV save/restore on >> the domains, but without needing to save their pages to disk. That way > I suspect suspend/resume of the driver domain will kill established net backend/frontend > connections ? So we also would have to network-detach all VMs interfaces, and > reattach. It does not look pretty. > Not generally. The blkfront and netfront drivers don't really do anything on a save; they certainly don't change the xenbus connection state. The normal mode of operation for save/restore or migration is that after resuming the frontends suddenly find their backends are no longer connected and will quietly attempt to reconnect before doing on, resulting in just a little IO hiccup. In this case, the backends will still be there and will remain in a connected state, so the frontends won't even notice after resuming. However, the pcifront driver would implement the suspend method and make sure the pci bus does its normal suspend operation. My main concern is that I'm not sure how the handshake with dom0 would work, so that it knows the suspend is finished - oh I guess the normal way, waiting for the domain to suspend itself (or timeout mysteriously). But it might just be better to add a pciback xenstore key to tell pcifront to do whatever's required for an ACPI suspend (S3, S5 or whatever), and have a corresponding pcifront xenstore key to handshake that the suspend has completed (or failed). At least that way you could get some useful diagnostics on failure. J