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-ia64-devel

Re: [Xen-ia64-devel] domU crashed when LTP was running

On Fri, Jul 25, 2008 at 07:28:24PM +0900, KUWAMURA Shin'ya wrote:
> Hi,
> 
> Thank you for your patch. This issue was fixed.
> But I have a question.
> 
> From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> Subject: Re: [Xen-ia64-devel] domU crashed when LTP was running
> Date: Fri, 25 Jul 2008 17:24:47 +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");
> >  }
> 
> Why is __va_efi() necessary? This changes caused that dom0 hung up.
> Without it, dom0 booted and LTP completed on domU.

Thanks for testing.
You're right. __va_efi() is unnecessary.


[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        Mon Jul 28 12:40:47 2008 +0900
@@ -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;
 }


-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

<Prev in Thread] Current Thread [Next in Thread>