[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-ia64-devel] RE: [PATCH 0/5] fix fpswa and related issues.



On Thu, Dec 11, 2008 at 10:14:12AM +0800, Zhang, Xiantao wrote:
> Isaku Yamahata wrote:
> > On Wed, Dec 10, 2008 at 10:43:01AM -0700, Alex Williamson wrote:
> >> On Tue, 2008-12-09 at 21:23 -0700, Alex Williamson wrote:
> >>> On Wed, 2008-12-10 at 10:51 +0800, Zhang, Xiantao wrote:
> >>>>> I've been testing this for a few hours today (over 25k
> >>>>> iterations) and it seems to fix the problem for me.  Thanks!
> >>>> 
> >>>> Hi, Alex
> >>>>         Have you verified vmx domain as well ?
> >>> 
> >>> Good point, no I was just testing in dom0.
> >> 
> >> Adding in Isaku's last patch and testing on an HVM domain, it doesn't
> >> take long to hit problems.  4-way/4G HVM guest running 4 instances of
> >> the test program in parallel will eventually get this in the guest
> >> kernel: 
> >> 
> >> handle_fpu_swa: fp_emulate() returned -1
> >> 
> >> and the test program gets killed with a SIGFPE.
> > 
> > Just to make sure. Is fpswa.efi installed in hvm domain?
> > You can also confirm it by dh command in efi shell.
> 
> Yes, I think it should be installed by default in OS distros. Before handing 
> the trap in hypervisor, all traps are injected to guests, and handing it in 
> hypervisor is just an optimization. 

Yeah.
Although I haven't been able to reproduce, what I essentially touched
for HVM domain is only the following hunk.
So I'm suspecting hidden bug or missing fpswa.efi.

diff --git a/xen/arch/ia64/vmx/vmx_fault.c b/xen/arch/ia64/vmx/vmx_fault.c
--- a/xen/arch/ia64/vmx/vmx_fault.c
+++ b/xen/arch/ia64/vmx/vmx_fault.c
@@ -122,8 +122,7 @@ void vmx_reflect_interruption(u64 ifa, u
         if (!status) {
             vcpu_increment_iip(vcpu);
             return;
-        } else if (IA64_RETRY == status)
-            return;
+        }
         break;
 
     case 33:   // IA64_FP_TRAP_VECTOR
@@ -133,10 +132,6 @@ void vmx_reflect_interruption(u64 ifa, u
         status = handle_fpu_swa(0, regs, isr);
         if (!status)
             return;
-        else if (IA64_RETRY == status) {
-            vcpu_decrement_iip(vcpu);
-            return;
-        }
         break;
 
     case 29: // IA64_DEBUG_VECTOR

-- 
yamahata

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.