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/
Home Products Support Community News


Re: [Xen-devel] Stale mfns in update_queue in XenoLinux, and suspend/res

To: Jacob Gorm Hansen <jacob@xxxxxxxx>
Subject: Re: [Xen-devel] Stale mfns in update_queue in XenoLinux, and suspend/resume
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Mon, 05 Apr 2004 07:48:47 +0100
Cc: Xen list <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 05 Apr 2004 07:50:56 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
In-reply-to: Your message of "Sun, 04 Apr 2004 18:02:28 +0200." <1081094548.877.54.camel@paleface>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
> it seems the suspend code in arch/xen/kernel/setup.c does not flush to
> mmu_update queue prior to suspend, and that as a result it may crash
> after resumption as a result of stale machine page frame references in
> the queue. Is this correct/should this behaviour be fixed? I am
> currently investigating a crash in my own migration code, and though I
> do flush the queue prior to obtaining a checkpoint, I still seem to be
> hit occasionally by stale references somewhere. 
> If suspension is going to be safe, I guess all uses of machine addresses
> should be treated as critical regions, to make sure a suspend/resume
> does not happen while they are still in scope? I know this will be
> problematic because of the batching of mmu-updates, perhaps it would be
> wise to revert to the old behavior of specifying them as virtual
> addresses, or maybe they should be converted on the fly, in a cli()
> context right before the hypercall?

Suspend/resume occurs in a process context. Since Xenolinux is
uniprocessor, I think that this should mean that there are no
outstanding page-update requests. Thinking about it, though, it's
possible that interrupt handlers and softirqs may add stuff to teh
update queue. For safety you might want to flush it immediately after

 -- Keir

This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
Xen-devel mailing list

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