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

[Xen-devel] save/restore race

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] save/restore race
From: John Levon <levon@xxxxxxxxxxxxxxxxx>
Date: Tue, 23 Jan 2007 22:01:45 +0000
Delivery-date: Tue, 23 Jan 2007 13:59:29 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
save requires a valid arch.pfn_to_mfn_frame_list_list MFN. However,
there is no guarantee that this is up to date, since a previous
restore is considered complete as soon as the domain is unpaused:

        if not paused:
            dominfo.unpause()

        dominfo.completeRestore(handler.store_mfn, handler.console_mfn)

It seems that Linux is being lucky here, in that rebuilding the MFNs is
the first thing it does after suspend(). On Solaris, it occurs somewhat
later in the resume process due to constraints on locking within our MMU
code.

This doesn't seem specific to migration either, a save just after a
restore has completed can hit this race as far as I can see. I'm short
on ideas that don't involve a new interface (like the domain writing
back a xenstore value when it's done resuming). Suggestions?

regards
john

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel