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-changelog

[Xen-changelog] [xen-unstable] [XEN][SHADOW] Fix early-unshadow logic.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [XEN][SHADOW] Fix early-unshadow logic.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 28 Feb 2007 12:20:31 -0800
Delivery-date: Wed, 28 Feb 2007 12:21:59 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User George Dunlap <gdunlap@xxxxxxxxxxxxx>
# Date 1172679082 18000
# Node ID 7b35a9682d81319553353f767b35d9c98c12ae19
# Parent  d39dcdb9cca36d27d0c509640a15c03800bf706e
[XEN][SHADOW] Fix early-unshadow logic.

Make sure to reset the early-unshadow logic when we
do a fast-path propagate or when we emulate a non-zero
write.

Signed-off-by: George Dunlap <gdunlap@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm/shadow/multi.c |    7 +++++++
 1 files changed, 7 insertions(+)

diff -r d39dcdb9cca3 -r 7b35a9682d81 xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Wed Feb 28 14:44:52 2007 +0000
+++ b/xen/arch/x86/mm/shadow/multi.c    Wed Feb 28 11:11:22 2007 -0500
@@ -2667,6 +2667,7 @@ static int sh_page_fault(struct vcpu *v,
                      * a not-present fault (by flipping two bits). */
                     ASSERT(regs->error_code & PFEC_page_present);
                     regs->error_code ^= (PFEC_reserved_bit|PFEC_page_present);
+                    reset_early_unshadow(v);
                     perfc_incrc(shadow_fault_fast_gnp);
                     SHADOW_PRINTK("fast path not-present\n");
                     return 0;
@@ -3961,6 +3962,8 @@ sh_x86_emulate_write(struct vcpu *v, uns
     /* If we are writing zeros to this page, might want to unshadow */
     if ( likely(bytes >= 4) && (*(u32 *)addr == 0) && is_lo_pte(vaddr) )
         check_for_early_unshadow(v, mfn);
+    else
+        reset_early_unshadow(v);
     
     sh_mark_dirty(v->domain, mfn);
 
@@ -4015,6 +4018,8 @@ sh_x86_emulate_cmpxchg(struct vcpu *v, u
     /* If we are writing zeros to this page, might want to unshadow */
     if ( likely(bytes >= 4) && (*(u32 *)addr == 0) && is_lo_pte(vaddr) )
         check_for_early_unshadow(v, mfn);
+    else
+        reset_early_unshadow(v);
 
     sh_mark_dirty(v->domain, mfn);
 
@@ -4057,6 +4062,8 @@ sh_x86_emulate_cmpxchg8b(struct vcpu *v,
     /* If we are writing zeros to this page, might want to unshadow */
     if ( *(u32 *)addr == 0 )
         check_for_early_unshadow(v, mfn);
+    else
+        reset_early_unshadow(v);
 
     sh_mark_dirty(v->domain, mfn);
 

_______________________________________________
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] [XEN][SHADOW] Fix early-unshadow logic., Xen patchbot-unstable <=