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: Clarify early_page_fault() handler i

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Clarify early_page_fault() handler intent, and improve debug tracing.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 26 Jan 2008 03:30:17 -0800
Delivery-date: Sat, 26 Jan 2008 03:30:50 -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 Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1201268556 0
# Node ID 923f2f7365079861e0e2341de22839376183208e
# Parent  7f9646fcffe8075a75ba831832773ace485a8608
x86: Clarify early_page_fault() handler intent, and improve debug tracing.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/arch/x86/traps.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff -r 7f9646fcffe8 -r 923f2f736507 xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Fri Jan 25 13:29:51 2008 +0000
+++ b/xen/arch/x86/traps.c      Fri Jan 25 13:42:36 2008 +0000
@@ -1119,12 +1119,11 @@ asmlinkage void do_page_fault(struct cpu
 }
 
 /*
- * Early handler to deal with spurious page faults. For example, consider a 
- * routine that uses a mapping immediately after installing it (making it 
- * present). The CPU may speculatively execute the memory access before 
- * executing the PTE write. The instruction will then be marked to cause a 
- * page fault when it is retired, despite the fact that the PTE is present and 
- * correct at that point in time.
+ * Early #PF handler to print CR2, error code, and stack.
+ * 
+ * We also deal with spurious faults here, even though they should never happen
+ * during early boot (an issue was seen once, but was most likely a hardware 
+ * problem).
  */
 asmlinkage void do_early_page_fault(struct cpu_user_regs *regs)
 {
@@ -1143,8 +1142,15 @@ asmlinkage void do_early_page_fault(stru
     }
 
     if ( stuck++ == 1000 )
-        panic("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n", 
-              regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
+    {
+        unsigned long *stk = (unsigned long *)regs;
+        printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n", 
+               regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
+        printk("Stack dump: ");
+        while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
+            printk("%p ", _p(*stk++));
+        for ( ; ; ) ;
+    }
 }
 
 long do_fpu_taskswitch(int set)

_______________________________________________
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: Clarify early_page_fault() handler intent, and improve debug tracing., Xen patchbot-unstable <=