Re: [GIT PULL] x86 fixes

From: Denys Vlasenko
Date: Mon Aug 17 2015 - 06:59:30 EST


On 08/17/2015 10:01 AM, Ingo Molnar wrote:
>
> (Sorry about the late reply, wasn't around on the weekend.)
>
> * Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>> Now that said, I doubt anybody cares. Since we don't support the original 80386,
>> the only way to ever trigger FP emulation is by having a 486SX or possibly a
>> couple of even rarer clone chips. [...]
>
> Yeah. So when I re-wrote the FPU code I tried to test math-emu by booting with
> 'no387': it turned out that ever since the XSAVE code got merged upstream,
> math-emu oopsed reliably during bootup with a NULL reference, because it wasn't
> updated to the dynamic allocation logic in:
>
> 61c4628b5386 ("x86, fpu: split FPU state from task struct - v5")
>
> That was 6 years ago, so anything v2.6.26 and later probably has 100% non-working
> math-emu.
>
> So when I re-introduced static allocations math-emu started working again, to a
> limited degree: on a modern distro, trying to boot /bin/bash I got a prompt, but
> various programs would segfault. I did not investigate it any deeper, I suppose
> the FPU emulation does not go far enough for modern user-space, or maybe it has
> more bugs.
>
> So in reality nobody has cared about x86 math-emu in the last 6 years

Well... there is this completely crazy x86 javascript emulator by Fabrice Bellard:

http://bellard.org/jslinux/tech.html

"The CPU is close to a 486 compatible x86 without FPU. The lack of FPU
is not a problem when running Linux as Operating System because it
contains a FPU emulator."


I have it running linux 2.6.20 and busybox here:

http://busybox.net/live_bbox/live_bbox.html

(or rather, *you* will have it running linux 2.6.20 inside your browser,
after you click on that link)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/