[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86: streamline page fault path
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |