Issue 64: fpu emu shouldn't be switched off
Reported by M. emdete, Apr 5, 2010
the fpu emulation in the kernel is switched of which makes use of other executables from other platforms impossible. i assume the user-space emulator needs about the same amount of memory.
Kernel FPU emulation requires both a software ieee floating point library and an instruction decoder. Soft-float applications use the software FP library directly. This means the floating point emulation code is likely to be significantly smaller, though code that uses floating point may be fractionally larger. My guess is that this ends up about the same size overall. The soft-float code is part of libgcc_s.so, so a single copy will be shared between all applications. Also userspace code can be paged out/reclaimed if necessary (application images are mapped directly, so this works even if no swap is available), whereas kernel code is pinned into physical ram. It should be noted that soft-float code is typically an order of magnitude faster than a kernel trapping of FPU instructions.
Paul, you're correct regarding the performance issues - that's why we decided to create another kernel image which has fpu emulation enabled.
Some more detailed information may be found here in the mail of Mirko Lindner: http://en.qi-hardware.com/pipermail/developer/2010-April/002766.html
commit 74a06558e1cf1aee29a528ebab184be2ca4391d9 Author: Mirko Vogt <firstname.lastname@example.org> Date: Sun Jun 13 23:12:09 2010 +0200
Sign in to reply to this comment.