|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [TOOLS] Fix PAE save/restore/migrate: we
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID b0ba792f393520a4262aa06f5ab2395efa1a32c2
# Parent a734745bf058c775140e5d86c4e11128ef866ec1
[TOOLS] Fix PAE save/restore/migrate: we must flush
all pending 'mmu updates' before moving page directories
below 4GB.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
tools/libxc/xc_linux_restore.c | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 deletions(-)
diff -r a734745bf058 -r b0ba792f3935 tools/libxc/xc_linux_restore.c
--- a/tools/libxc/xc_linux_restore.c Tue Jun 13 16:07:16 2006 +0100
+++ b/tools/libxc/xc_linux_restore.c Tue Jun 13 17:30:30 2006 +0100
@@ -456,6 +456,15 @@ int xc_linux_restore(int xc_handle, int
n+= j; /* crude stats */
}
+ /*
+ * Ensure we flush all machphys updates before potential PAE-specific
+ * reallocations below.
+ */
+ if (xc_finish_mmu_updates(xc_handle, mmu)) {
+ ERR("Error doing finish_mmu_updates()");
+ goto out;
+ }
+
DPRINTF("Received all pages (%d races)\n", nraces);
if ((pt_levels == 3) && !pae_extended_cr3) {
@@ -550,14 +559,11 @@ int xc_linux_restore(int xc_handle, int
}
}
- }
-
-
- if (xc_finish_mmu_updates(xc_handle, mmu)) {
- ERR("Error doing finish_mmu_updates()");
- goto out;
- }
-
+ if (xc_finish_mmu_updates(xc_handle, mmu)) {
+ ERR("Error doing finish_mmu_updates()");
+ goto out;
+ }
+ }
/*
* Pin page tables. Do this after writing to them as otherwise Xen
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [TOOLS] Fix PAE save/restore/migrate: we must flush,
Xen patchbot-unstable <=
|
|
|
|
|