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
signature.asc
Description: This is a digitally signed message part