[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [HVM] Save/Restore: don't clobber page types in shadow code



# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
# Date 1169138892 0
# Node ID f78cca1e57a27305e54b636e92cc25666ebfd9c3
# Parent  5859be20111093146d54e6820545f7a36eafab78
[HVM] Save/Restore: don't clobber page types in shadow code
Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm/shadow/common.c |    7 ++++---
 xen/arch/x86/mm/shadow/multi.c  |    8 --------
 2 files changed, 4 insertions(+), 11 deletions(-)

diff -r 5859be201110 -r f78cca1e57a2 xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c   Thu Jan 18 16:48:11 2007 +0000
+++ b/xen/arch/x86/mm/shadow/common.c   Thu Jan 18 16:48:12 2007 +0000
@@ -2184,10 +2184,11 @@ int sh_remove_all_mappings(struct vcpu *
     expected_count = (page->count_info & PGC_allocated) ? 1 : 0;
     if ( (page->count_info & PGC_count_mask) != expected_count )
     {
-        /* Don't complain if we're in HVM and there's one extra mapping: 
-         * The qemu helper process has an untyped mapping of this dom's RAM */
+        /* Don't complain if we're in HVM and there are some extra mappings: 
+         * The qemu helper process has an untyped mapping of this dom's RAM 
+         * and the HVM restore program takes another. */
         if ( !(shadow_mode_external(v->domain)
-               && (page->count_info & PGC_count_mask) <= 3 /* vmx restore add 
one extra mapping*/
+               && (page->count_info & PGC_count_mask) <= 3
                && (page->u.inuse.type_info & PGT_count_mask) == 0) )
         {
             SHADOW_ERROR("can't find all mappings of mfn %lx: "
diff -r 5859be201110 -r f78cca1e57a2 xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Thu Jan 18 16:48:11 2007 +0000
+++ b/xen/arch/x86/mm/shadow/multi.c    Thu Jan 18 16:48:12 2007 +0000
@@ -1627,14 +1627,6 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf
         default: /* Do nothing */ break;
         }
     }
-    
-    {
-        struct page_info *page = mfn_to_page(gmfn);
-        /* XXX: add it to emulate a touched page */
-        if ((page->u.inuse.type_info & PGT_type_mask) == PGT_none){
-            page->u.inuse.type_info |= (PGT_writable_page | PGT_validated);
-        }
-    }
 
     shadow_promote(v, gmfn, shadow_type);
     set_shadow_status(v, gmfn, shadow_type, smfn);

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.