Could you try the following patch?
[IA64] fix fpswa mapping which was broken by EFI mapping.
This patch fixes the following panic reported by Kusamura when xen
VMM tries to use fpswa.
With the EFI mapping patch, all the firmware call is done in
the dedicated address space.
fpswa is EFI driver so that the address space must be switched
before/after calling fpswa.
> (XEN) $$$$$ PANIC in domain 2 (k6=0xf0000004f25e8000): ***
> xen_handle_domain_access: exception table lookup failed,
> iip=0xf40000000408cc30,
> addr=0xe0000004ffe62050, spinning...
> (XEN) d 0xf000000004138080 domid 2
> (XEN) vcpu 0xf0000004f25e8000 vcpu 0
> (XEN)
> (XEN) CPU 5
> (XEN) psr : 0000121008226038 ifs : 8000000000000716 ip : [<f40000000408cc31>]
> (XEN) ip is at handle_fpu_swa+0x3c1/0x510
...
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
diff -r a7e68d48f625 xen/arch/ia64/xen/faults.c
--- a/xen/arch/ia64/xen/faults.c Thu Jul 24 14:32:59 2008 +0900
+++ b/xen/arch/ia64/xen/faults.c Fri Jul 25 17:25:24 2008 +0900
@@ -262,7 +262,7 @@
{
if (ia64_boot_param->fpswa)
/* FPSWA fixup: make the interface pointer a virtual address */
- fpswa_interface = __va(ia64_boot_param->fpswa);
+ fpswa_interface = __va_efi(ia64_boot_param->fpswa);
else
printk("No FPSWA supported.\n");
}
@@ -274,6 +274,7 @@
{
fp_state_t fp_state;
fpswa_ret_t ret;
+ XEN_EFI_RR_DECLARE(rr6, rr7);
if (!fpswa_interface)
return (fpswa_ret_t) {-1, 0, 0, 0};
@@ -299,8 +300,10 @@
* unsigned long *pifs,
* void *fp_state);
*/
+ XEN_EFI_RR_ENTER(rr6, rr7);
ret = (*fpswa_interface->fpswa) (fp_fault, bundle,
ipsr, fpsr, isr, pr, ifs, &fp_state);
+ XEN_EFI_RR_LEAVE(rr6, rr7);
return ret;
}
On Fri, Jul 25, 2008 at 04:48:02PM +0900, KUWAMURA Shin'ya wrote:
> Hi,
>
> On cset:18134, domU crashed when float_bessel of LTP was running on it.
> I attached the panic message.
> Notice that domU did not crash when repeating only float_bessel ten times.
>
> (XEN) $$$$$ PANIC in domain 2 (k6=0xf0000004f25e8000): *** xen_handle_domain
> _access: exception table lookup failed, iip=0xf40000000408cc30,
> addr=0xe0000004ffe62050, spinning...
> (XEN) d 0xf000000004138080 domid 2
> (XEN) vcpu 0xf0000004f25e8000 vcpu 0
> (XEN)
> (XEN) CPU 5
> (XEN) psr : 0000121008226038 ifs : 8000000000000716 ip : [<f40000000408cc31>]
> (XEN) ip is at handle_fpu_swa+0x3c1/0x510
>
> Instructions:
> f40000000408cc20: 00 00 38 46 98 11 [MII] st8 [r35]=r14
> f40000000408cc26: e0 02 80 2c 00 e0 sxt4 r46=r32
> f40000000408cc2c: 05 61 00 84 adds r47=16,r12
> f40000000408cc30: 0b 40 00 1e 18 10 [MMI] ld8 r8=[r15];;
> f40000000408cc36: e0 40 20 30 28 00 ld8 r14=[r8],8
> f40000000408cc3c: 00 00 04 00 nop.i 0x0;;
>
> TEST ENVIRONMENT
> Machine : Tiger4
> Changeset : 18134:1970781956c7 (ia64/xen-unstable)
> 609:8a3dc4fdb478 (ia64/linux-2.6.18-xen)
> 126:d255b2cfdd5a (efi-vfirmware)
> Dom0 OS : RHEL4 U2 (2P)
> DomU OS : RHEL4 U2 (8P, using tap:aio)
> CONFIG_QEMU : ioemu
>
> Best regards,
> (XEN) *** xen_handle_domain_access: exception table lookup failed,
> iip=0xf40000000408cc30, addr=0xe0000004ffe62050, spinning...
> (XEN) $$$$$ PANIC in domain 2 (k6=0xf0000004f25e8000): ***
> xen_handle_domain_access: exception table lookup failed,
> iip=0xf40000000408cc30, addr=0xe0000004ffe62050, spinning...
> (XEN) d 0xf000000004138080 domid 2
> (XEN) vcpu 0xf0000004f25e8000 vcpu 0
> (XEN)
> (XEN) CPU 5
> (XEN) psr : 0000121008226038 ifs : 8000000000000716 ip : [<f40000000408cc31>]
> (XEN) ip is at handle_fpu_swa+0x3c1/0x510
> (XEN) unat: 0000000000000000 pfs : 0000000000000716 rsc : 0000000000000003
> (XEN) rnat: 0000000000000000 bsps: 0000000000000000 pr : 000000000555c169
> (XEN) ldrs: 0000000000000000 ccv : 0000000000000002 fpsr: 0009804c0270033f
> (XEN) csd : 0000000000000000 ssd : 0000000000000000
> (XEN) b0 : f40000000408cbe0 b6 : f40000000408ddb0 b7 : a000000000010920
> (XEN) f6 : 1003e0000000000000000 f7 : 1003eb8aa3b295c17f0bc
> (XEN) f8 : 0fbe0d74ecb507a064000 f9 : 10076bffffffffffdf0e0
> (XEN) f10 : 000000000000000000000 f11 : 0ffc78000000000000000
> (XEN) r1 : f4000000043b6bc0 r2 : f0000004f25efff0 r3 : f0000004f25effe8
> (XEN) r8 : e0000004ffe62050 r9 : 0004000000481ead r10 : 0000000000000000
> (XEN) r11 : 0009804c0270033f r12 : f0000004f25efd20 r13 : f0000004f25e8000
> (XEN) r14 : 0000000000000fc0 r15 : f0000004ffe72018 r16 : f0000004f25eff70
> (XEN) r17 : 20000000000f8b80 r18 : 20000000000994c0 r19 : a000000000010920
> (XEN) r20 : 0000000000000060 r21 : 0000000000000010 r22 : f0000004f25efd80
> (XEN) r23 : 0000000000000000 r24 : f0000004f25efd78 r25 : f0000004f25efe28
> (XEN) r26 : 0000000000000000 r27 : f0000004f25efdc0 r28 : f0000004f25efdc0
> (XEN) r29 : 2000000000042c50 r30 : 0000000000000000 r31 : 0000000000000081
> (XEN)
> (XEN) Call Trace:
> (XEN) [<f4000000040cd250>] show_stack+0x80/0xa0
> (XEN) sp=f0000004f25ef7f0 bsp=f0000004f25e95c0
> (XEN) [<f40000000409a920>] panic_domain+0x100/0x150
> (XEN) sp=f0000004f25ef9c0 bsp=f0000004f25e9560
> (XEN) [<f40000000408c860>] ia64_do_page_fault+0x6b0/0x6c0
> (XEN) sp=f0000004f25efaf0 bsp=f0000004f25e94f0
> (XEN) [<f4000000040c5b40>] ia64_leave_kernel+0x0/0x300
> (XEN) sp=f0000004f25efb20 bsp=f0000004f25e94f0
> (XEN) [<f40000000408cc30>] handle_fpu_swa+0x3c0/0x510
> (XEN) sp=f0000004f25efd20 bsp=f0000004f25e9440
> (XEN) [<f40000000408ddd0>] ia64_handle_reflection+0x480/0xfa0
> (XEN) sp=f0000004f25efe00 bsp=f0000004f25e93e8
> (XEN) [<f4000000040c5b40>] ia64_leave_kernel+0x0/0x300
> (XEN) sp=f0000004f25efe00 bsp=f0000004f25e93e8
> (XEN) domain_crash_sync called from xenmisc.c:141
> (XEN) Domain 2 (vcpu#0) crashed on cpu#5:
> (XEN) d 0xf000000004138080 domid 2
> (XEN) vcpu 0xf0000004f25e8000 vcpu 0
> (XEN)
> (XEN) CPU 5
> (XEN) psr : 0000141308526030 ifs : 8000000000000004 ip : [<20000000000997b2>]
> (XEN) ip is at ???
> (XEN) unat: 0000000000000000 pfs : c00000000000040c rsc : 000000000000000f
> (XEN) rnat: 0000000000000000 bsps: 2000000000bc00a8 pr : 0000000005552061
> (XEN) ldrs: 0000000000880000 ccv : 0000000000000002 fpsr: 0009984c8a76233f
> (XEN) csd : 0000000000000000 ssd : 0000000000000000
> (XEN) b0 : 4000000000005020 b6 : 20000000000994c0 b7 : a000000000010920
> (XEN) f6 : 10076c000000000000000 f7 : 1003eb8aa3b295c17f0bc
> (XEN) f8 : 0fbe0d74ecb507a064000 f9 : 10076bffffffffffdf0e0
> (XEN) f10 : 000000000000000000000 f11 : 0ffc78000000000000000
> (XEN) r1 : 2000000000141288 r2 : c00000000000028a r3 : 2000000000dbd8f0
> (XEN) r8 : 0000000000027100 r9 : 2000000000369554 r10 : 0000000000000000
> (XEN) r11 : c00000000000030a r12 : 2000000000dbd8b0 r13 : 2000000000dbe920
> (XEN) r14 : 43e8000000000000 r15 : 20000000000f89f0 r16 : 20000000000f8b50
> (XEN) r17 : 20000000000f8b80 r18 : bffffffffffdf0e0 r19 : 0000000000000000
> (XEN) r20 : 0000000000000060 r21 : ff8000000000fbe0 r22 : b8aa3b295c17f0bc
> (XEN) r23 : 000000000000ffff r24 : 000000000001ffff r25 : 2000000000042f08
> (XEN) r26 : 4768000000000000 r27 : 2000000000082bd0 r28 : 000000000000ffc7
> (XEN) r29 : 2000000000042c50 r30 : 00000000000136d0 r31 : 2000000000056008
> (XEN)
> (XEN) Call Trace:
> (XEN) [<f4000000040cd250>] show_stack+0x80/0xa0
> (XEN) sp=f0000004f25ef7f0 bsp=f0000004f25e9618
> (XEN) [<f400000004017f50>] __domain_crash+0x110/0x140
> (XEN) sp=f0000004f25ef9c0 bsp=f0000004f25e95e8
> (XEN) [<f400000004017fc0>] __domain_crash_synchronous+0x40/0x110
> (XEN) sp=f0000004f25ef9c0 bsp=f0000004f25e95c0
> (XEN) [<f40000000409a960>] panic_domain+0x140/0x150
> (XEN) sp=f0000004f25ef9c0 bsp=f0000004f25e9560
> (XEN) [<f40000000408c860>] ia64_do_page_fault+0x6b0/0x6c0
> (XEN) sp=f0000004f25efaf0 bsp=f0000004f25e94f0
> (XEN) [<f4000000040c5b40>] ia64_leave_kernel+0x0/0x300
> (XEN) sp=f0000004f25efb20 bsp=f0000004f25e94f0
> (XEN) [<f40000000408cc30>] handle_fpu_swa+0x3c0/0x510
> (XEN) sp=f0000004f25efd20 bsp=f0000004f25e9440
> (XEN) [<f40000000408ddd0>] ia64_handle_reflection+0x480/0xfa0
> (XEN) sp=f0000004f25efe00 bsp=f0000004f25e93e8
> (XEN) [<f4000000040c5b40>] ia64_leave_kernel+0x0/0x300
> (XEN) sp=f0000004f25efe00 bsp=f0000004f25e93e8
> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-ia64-devel
--
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|