On 2016-02-26 at 14:24 Kevin Klues <[email protected]> wrote:
> Don't forget about this fun little bug:
> 
> https://groups.google.com/forum/#!searchin/akaros/SSE/akaros/FEIQbLixkm8/tmSagO31AwAJ

Good times!

> Might be related?

I hope not!

The problem just popped up after Mike's recent FP work, so I'm hoping
its something related to the different save/restore style.

Barret


> 
> On Fri, Feb 26, 2016 at 2:21 PM, Barret Rhoden <[email protected]>
> wrote:
> > lock_test is trapping with a SIMD floating point error (trap 19)
> > around here:
> >
> > 40589d:   f2 0f 51 c0             sqrtsd %xmm0,%xmm0
> >
> > Maybe whatever exception that is thrown used to be masked, but isn't
> > anymore?  Does the new XSAVE stuff treat MXCSR differently?
> >
> > Or perhaps we were doing something wrong before, and the new FP code
> > exposes it?
> >
> > To reproduce:
> > / $ m px (for better debugging output)
> > / $ lock_test -w7 -l10000 -tmcspdr -p10
> >
> > HW TRAP frame (partial) at 0xffffffffc6944ad8 on core 5
> >   rax  0x00000000001c835e
> >   rbx  0x00007f7fffbfee00
> >   rcx  0x00000000000002a1
> >   rdx  0x0000000000000174
> >   rbp  0x00007f7fffbfeda0
> >   rsi  0x0000081db323551c
> >   rdi  0x0000000000620620
> >   r8   0x0000000000000000
> >   r9   0x0000000000000000
> >   r10  0x0000000000000000
> >   r11  0x0000000000000200
> >   r12  0x0000000000000064
> >   r13  0x0000000000620620
> >   r14  0x0000000000000008
> >   r15  0x0000000000000064
> >   trap 0x00000013 SIMD Floating-Point Exception
> >   gsbs 0x0000000000000000
> >   fsbs 0x0000000000000000
> >   err  0x--------00000000
> >   rip  0x000000000040589d
> >   cs   0x------------0023
> >   flag 0x0000000000010202
> >   rsp  0x00007f7fffbfed10
> >   ss   0x------------001b
> > err 0x0 (for PFs: User 4, Wr 2, Rd 1), aux 0x0000000000000000
> > Addr 0x000000000040589d is in lock_test at offset 0x000000000000589d
> >
> >
> > i tried making sure the mxcsr was the default value before the
> > xsave64, but that didn't do the trick.
> >
> >         incidentally, if you want to do an ldmxcsr on Qemu, you need
> >         to:
> >                 lcr4(rcr4() | CR4_OSFXSR | CR4_OSXMME |
> > CR4_OSXSAVE);
> >
> >         otherwise you get an Invalid Opcode.  It doesn't seem to be
> >         that way on hardware.  Ah, bugs in qemu?
> >
> > anyway, i hacked up the trap handler to print out a little more:
> >
> > --- a/kern/arch/x86/trap.c
> > +++ b/kern/arch/x86/trap.c
> > @@ -389,7 +389,8 @@ static void trap_dispatch(struct hw_trapframe
> > *hw_tf) handled = __handle_page_fault(hw_tf, &aux);
> >             break;
> >         case T_FPERR:
> > +       case T_SIMDERR:
> >             handled = try_handle_exception_fixup(hw_tf);
> >             if (!handled)
> >                 handle_fperr(hw_tf);
> >             break;
> >
> >
> > HW TRAP frame (partial) at 0xffff80013fd58f40 on core 7
> >   rax  0x0000000000a45061
> >   rbx  0x00007f7fffbfee10
> >   rcx  0x0000000000001b25
> >   rdx  0x00000000000000a9
> >   rbp  0x00007f7fffbfedb0
> >   rsi  0x0000004fc30822de
> >   rdi  0x0000000000620390
> >   r8   0x0000000000000000
> >   r9   0x0000000000000000
> >   r10  0x0000000000000000
> >   r11  0x0000000000000200
> >   r12  0x00000000000003e8
> >   r13  0x0000000000620390
> >   r14  0x0000000000000007
> >   r15  0x00000000000003e8
> >   trap 0x00000013 SIMD Floating-Point Exception
> >   gsbs 0x0000000000000000
> >   fsbs 0x0000000000000000
> >   err  0x--------00000000
> >   rip  0x000000000040589d
> >   cs   0x------------0023
> >   flag 0x0000000000010202
> >   rsp  0x00007f7fffbfed20
> >   ss   0x------------001b
> > Core 7: FP ERR, CW: 0x037f, SW: 0x0000, MXCSR 0x00000020
> > Core 7: The following faults are unmasked:
> > Killing the process.
> >
> > That shit was made for floating point.  SIMD errors might be
> > different.
> >
> > Any ideas?
> >
> > Barret
> >
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Akaros" group. To unsubscribe from this group and stop
> > receiving emails from it, send an email to
> > [email protected]. To post to this group, send
> > email to [email protected]. For more options, visit
> > https://groups.google.com/d/optout.
> 
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to