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


[Xen-devel] Stale mfns in update_queue in XenoLinux, and suspend/resume

To: Xen list <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Stale mfns in update_queue in XenoLinux, and suspend/resume
From: Jacob Gorm Hansen <jacob@xxxxxxxx>
Date: Sun, 04 Apr 2004 18:02:28 +0200
Delivery-date: Sun, 04 Apr 2004 17:05:05 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
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?


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>