On 06/11/2010 07:32 AM, Manuel Lauss wrote:
Hi,
On Fri, Jun 11, 2010 at 4:06 PM, Jabir M<Jabir_M@xxxxxxxxxxxxxx> wrote:
I am working on a FPU-less 34k MIPS platform with linux-2.6.24
kernel. After running a Darwin media streaming server on the board
for a while, my oprofile results shows high utilization on
fpu_emulator_cop1Handler()& r4k_wait().
r4k_wait() is the idle task, so that indicates there is nothing to do at
those sample points.
wiki page http://www.linux-mips.org/wiki/Floating_point says gcc will
use hard float as default and soft float is best suited model for a
fpu less processor. Could anyone kindly help me in understanding use
of -msoft-float .
Whether I need to compile
1. kernel with -msoft-float ? or
The kernel doesn't use floating point. So it doesn't matter.
2. Glibc ? or
3. Application ? or
4. All the above ?
If you don't want to use the kernel's FP emulator, you need 2 and 3.
I have fought with this in the past; what you need to do is:
- build gcc with softfloat support (mipsel-softfloat-linux-gnu triplet
for example),
- build a libc with this new compiler,
- then rebuild all libraries and apps with you new softfloat toolchain.
<plug>
I have a working softfloat environment for MIPS32 here at [1], it includes a
complete c/c++ toolchain with gcc-4.4.3. It's built for mips32r1, no idea if
it is supposed to work with 34k cores.
</plug>
34k is mips32r2, which will run r1 code with no problem.
Best regards,
Manuel Lauss
[1] http://mlau.at/files/mips32-linux/