This adds a page walk for the cases where creation of a bounce frame faults.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Index: 2006-12-05/xen/arch/x86/x86_32/entry.S
===================================================================
--- 2006-12-05.orig/xen/arch/x86/x86_32/entry.S 2006-12-01 10:44:36.000000000
+0100
+++ 2006-12-05/xen/arch/x86/x86_32/entry.S 2006-12-08 14:24:54.000000000
+0100
@@ -382,21 +382,33 @@ nvm86_3:/* Rewrite our stack frame and r
movb $0,TRAPBOUNCE_flags(%edx)
ret
.section __ex_table,"a"
- .long FLT6,domain_crash_synchronous , FLT7,domain_crash_synchronous
- .long FLT8,domain_crash_synchronous , FLT9,domain_crash_synchronous
- .long FLT10,domain_crash_synchronous , FLT11,domain_crash_synchronous
- .long FLT12,domain_crash_synchronous , FLT13,domain_crash_synchronous
- .long FLT14,domain_crash_synchronous , FLT15,domain_crash_synchronous
- .long FLT16,domain_crash_synchronous , FLT17,domain_crash_synchronous
- .long FLT18,domain_crash_synchronous , FLT19,domain_crash_synchronous
- .long FLT20,domain_crash_synchronous , FLT21,domain_crash_synchronous
- .long FLT22,domain_crash_synchronous , FLT23,domain_crash_synchronous
- .long FLT24,domain_crash_synchronous , FLT25,domain_crash_synchronous
+ .long FLT6,domain_crash_synchronous , FLT7,domain_crash_page_fault
+ .long FLT8,domain_crash_page_fault_4 , FLT9,domain_crash_page_fault_8
+ .long FLT10,domain_crash_page_fault_12, FLT11,domain_crash_page_fault
+ .long FLT12,domain_crash_page_fault_4 , FLT13,domain_crash_synchronous
+ .long FLT14,domain_crash_page_fault , FLT15,domain_crash_page_fault_4
+ .long FLT16,domain_crash_page_fault_8 , FLT17,domain_crash_page_fault
+ .long FLT18,domain_crash_page_fault , FLT19,domain_crash_page_fault_4
+ .long FLT20,domain_crash_page_fault_8 ,
FLT21,domain_crash_page_fault_12
+ .long FLT22,domain_crash_page_fault , FLT23,domain_crash_page_fault_4
+ .long FLT24,domain_crash_page_fault_8 ,
FLT25,domain_crash_page_fault_12
.previous
+.section .rodata,"a"
domain_crash_synchronous_string:
.asciz "domain_crash_sync called from entry.S (%lx)\n"
+.previous
+domain_crash_page_fault_12:
+ addl $4,%esi
+domain_crash_page_fault_8:
+ addl $4,%esi
+domain_crash_page_fault_4:
+ addl $4,%esi
+domain_crash_page_fault:
+ pushl %esi
+ call show_page_walk
+ addl $4,%esp
domain_crash_synchronous:
pushl $domain_crash_synchronous_string
call printk
Index: 2006-12-05/xen/arch/x86/x86_64/entry.S
===================================================================
--- 2006-12-05.orig/xen/arch/x86/x86_64/entry.S 2006-12-01 10:44:36.000000000
+0100
+++ 2006-12-05/xen/arch/x86/x86_64/entry.S 2006-12-08 14:24:54.000000000
+0100
@@ -308,17 +308,30 @@ FLT13: movq %rax,(%rsi)
movb $0,TRAPBOUNCE_flags(%rdx)
ret
.section __ex_table,"a"
- .quad FLT2,domain_crash_synchronous , FLT3,domain_crash_synchronous
- .quad FLT4,domain_crash_synchronous , FLT5,domain_crash_synchronous
- .quad FLT6,domain_crash_synchronous , FLT7,domain_crash_synchronous
- .quad FLT8,domain_crash_synchronous , FLT9,domain_crash_synchronous
- .quad FLT10,domain_crash_synchronous , FLT11,domain_crash_synchronous
- .quad FLT12,domain_crash_synchronous , FLT13,domain_crash_synchronous
+ .quad FLT2,domain_crash_page_fault_32,
FLT3,domain_crash_page_fault_24
+ .quad FLT4,domain_crash_page_fault_8 ,
FLT5,domain_crash_page_fault_16
+ .quad FLT6,domain_crash_page_fault , FLT7,domain_crash_page_fault
+ .quad FLT8,domain_crash_page_fault_24,
FLT9,domain_crash_page_fault_16
+ .quad FLT10,domain_crash_page_fault_8 , FLT11,domain_crash_page_fault
+ .quad FLT12,domain_crash_page_fault_8 , FLT13,domain_crash_page_fault
.previous
+.section .rodata,"a"
domain_crash_synchronous_string:
.asciz "domain_crash_sync called from entry.S\n"
+.previous
+domain_crash_page_fault_32:
+ addq $8,%rsi
+domain_crash_page_fault_24:
+ addq $8,%rsi
+domain_crash_page_fault_16:
+ addq $8,%rsi
+domain_crash_page_fault_8:
+ addq $8,%rsi
+domain_crash_page_fault:
+ movq %rsi,%rdi
+ call show_page_walk
domain_crash_synchronous:
# Get out of the guest-save area of the stack.
GET_GUEST_REGS(%rax)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|