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

Bug#781892: (Hardware?) problem with denormal values on mipsel



Control: reassign -1 src:linux 3.16.7-ckt9-2
Control: retitle -1 linux: mips sqrt.s instruction not emulated on Loongson processors
Control: tags -1 fixed-upstream
# Will be fixed in 4.1

On Tue, 2015-05-26 at 20:21 +0300, Aaro Koskinen wrote:
> On Tue, May 26, 2015 at 10:13:35AM +0100, James Cowgill wrote:
> > On Sun, 2015-05-24 at 22:32 +0300, Aaro Koskinen wrote:
> > > On Fri, May 22, 2015 at 11:00:18PM +0100, James Cowgill wrote:
> > > > On Sat, 2015-05-23 at 00:04 +0300, Aaro Koskinen wrote:
> > > > > On Fri, May 22, 2015 at 05:27:14PM +0100, James Cowgill wrote:
> > > > > > Yep it's a hardware problem. The following assembly dies (raises SIGILL)
> > > > > > at 'sqrt.s' on the Loongsons and works everywhere else:
> > > > > > 
> > > > > > ===
> > > > > >         .set mips2
> > > > > >         .text
> > > > > >         .global main
> > > > > >         .type main, @function
> > > > > > main:
> > > > > >         lui $t0, %hi(value)
> > > > > >         lwc1 $f0, %lo(value)($t0)
> > > > > >         nop
> > > > > >         sqrt.s $f0, $f0
> > > > > >         jr $ra
> > > > > > 
> > > > > >         .data
> > > > > > value:
> > > > > >         .float 1.1342362e-39
> > > > > > ===
> > > > > 
> > > > > Is this a standalone reproducer program for the problem? Because
> > > > > I tried it on on my Loongson box and didn't get any SIGILL...
> > > > 
> > > > It should be. I tried it on some 3A machines at work and it crashed
> > > > there (and then some other machines which didn't crash). There's a 2F I
> > > > can try on Tuesday.
> > > 
> > > My Loongson is 2F...
> > 
> > I tried it on my 2F (it's a Lemote Fuloong) and it crashed there as well
> > (both the gfortran and my testcase). It's running up to date jessie.
> > 
> > What compiler versions do you have?
> > What does the 'cpu model' line say in /proc/cpuinfo?
> 
> I'm using binutils 2.25, GCC 5.1, Linux 4.1-rc5. The cpu model is:
> 
> cpu model               : ICT Loongson-2 V0.3  FPU V0.1

Thanks! The kernel was the important part which was different to my
setup.

There's probably still a hardware bug in here somewhere, but before 3.16
the kernel was fixing it with the math emulator.

From what I can see:
Commit 08a07904e182 in 3.16 ('MIPS: math-emu: Remove most ifdefery.')
incorrectly disabled emulation of the sqrt.s instruction on processors
only supporting the mips2/mips3 ISA.

Commit 7352c8b13dd9 in 3.18 ('MIPS: Loongson: Set Loongson-3's ISA level
to MIPS64R1') worked around this in the Loongson 3s because their ISA
level was bumped to mips64r1.

Commit 2d83fea786d7 in 4.1-rc1 ('MIPS: Correct FP ISA requirements')
fixed the underlying sqrt.s emulation bug.

It would be good if the 4.1-rc1 patch or at least the 'case fsqrt_op'
part (which is the fix for this bug) can be applied to a jessie stable
kernel and then installed on the buildds. This should fix the original
problem of eso-midas failing to build on mipsel.

Thanks,
James

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: