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] x86: Only unshadow on failed emulation, n

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Only unshadow on failed emulation, not when an exception is raised.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Feb 2007 18:00:28 -0800
Delivery-date: Wed, 21 Feb 2007 18:00:14 -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 kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1172089837 0
# Node ID eb190b1faa527370ac520f3611670664f54ef28d
# Parent  4e50678c364c779bfa3972d30952acd0d9c7a655
x86: Only unshadow on failed emulation, not when an exception is raised.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm/shadow/multi.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff -r 4e50678c364c -r eb190b1faa52 xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Wed Feb 21 20:03:56 2007 +0000
+++ b/xen/arch/x86/mm/shadow/multi.c    Wed Feb 21 20:30:37 2007 +0000
@@ -2915,7 +2915,12 @@ static int sh_page_fault(struct vcpu *v,
     if ( !(regs->error_code & PFEC_user_mode) )
         r = x86_emulate(&emul_ctxt.ctxt, emul_ops);
 
-    if ( (r == X86EMUL_UNHANDLEABLE) || (r == X86EMUL_EXCEPTION) )
+    /*
+     * NB. We do not unshadow on X86EMUL_EXCEPTION. It's not clear that it
+     * would be a good unshadow hint. If we *do* decide to unshadow-on-fault
+     * then it must be 'failable': we cannot require the unshadow to succeed.
+     */
+    if ( r == X86EMUL_UNHANDLEABLE )
     {
         SHADOW_PRINTK("emulator failure, unshadowing mfn %#lx\n", 
                        mfn_x(gmfn));

_______________________________________________
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] x86: Only unshadow on failed emulation, not when an exception is raised., Xen patchbot-unstable <=