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: streamline page fault path

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: streamline page fault path
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Fri, 08 Jul 2011 06:22:28 +0100
Delivery-date: Thu, 07 Jul 2011 22:28:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/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 Jan Beulich <jbeulich@xxxxxxxxxx>
# Date 1309549435 -3600
# Node ID 1b9cce28cab754b8cc0a7951e15a34768c90402e
# Parent  3261d198c3aa573ff7e8370b9787b72ba5dfa38a
x86: streamline page fault path

#PF is, in all "normal" usage models, the only potentially high
frequency (and hence performance sensitive) exception. Thus make it
the fall-through case into handle_exception (rather than
divide_error for x86-32 and not having one at all for x86-64).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---


diff -r 3261d198c3aa -r 1b9cce28cab7 xen/arch/x86/x86_32/entry.S
--- a/xen/arch/x86/x86_32/entry.S       Fri Jul 01 20:43:02 2011 +0100
+++ b/xen/arch/x86/x86_32/entry.S       Fri Jul 01 20:43:55 2011 +0100
@@ -426,9 +426,8 @@
         jnz   test_all_events
         jmp   restore_all_xen
 
-ENTRY(divide_error)
-        pushl $TRAP_divide_error<<16
-        ALIGN
+ENTRY(page_fault)
+        movw  $TRAP_page_fault,2(%esp)
 handle_exception:
         FIXUP_RING0_GUEST_STACK
         SAVE_ALL(1f,2f)
@@ -501,6 +500,10 @@
         pushl $TRAP_no_device<<16
         jmp   handle_exception
 
+ENTRY(divide_error)
+        pushl $TRAP_divide_error<<16
+        jmp   handle_exception
+
 ENTRY(debug)
         pushl $TRAP_debug<<16
         jmp   handle_exception
@@ -545,10 +548,6 @@
         movw  $TRAP_alignment_check,2(%esp)
         jmp   handle_exception
 
-ENTRY(page_fault)
-        movw  $TRAP_page_fault,2(%esp)
-        jmp   handle_exception
-
 ENTRY(spurious_interrupt_bug)
         pushl $TRAP_spurious_int<<16
         jmp   handle_exception
diff -r 3261d198c3aa -r 1b9cce28cab7 xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S       Fri Jul 01 20:43:02 2011 +0100
+++ b/xen/arch/x86/x86_64/entry.S       Fri Jul 01 20:43:55 2011 +0100
@@ -461,9 +461,11 @@
         jz    test_all_events
         jmp   compat_test_all_events
 
-        ALIGN
+ENTRY(page_fault)
+        movl  $TRAP_page_fault,4(%rsp)
 /* No special register assumptions. */
-ENTRY(handle_exception)
+       .globl handle_exception
+handle_exception:
         SAVE_ALL
 handle_exception_saved:
         testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
@@ -585,10 +587,6 @@
         movl  $TRAP_alignment_check,4(%rsp)
         jmp   handle_exception
 
-ENTRY(page_fault)
-        movl  $TRAP_page_fault,4(%rsp)
-        jmp   handle_exception
-
 ENTRY(spurious_interrupt_bug)
         pushq $0
         movl  $TRAP_spurious_int,4(%rsp)

_______________________________________________
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: streamline page fault path, Xen patchbot-unstable <=