linux/arch/mips/math-emu
David Daney b6ee75ed4f MIPS: Collect FPU emulator statistics per-CPU.
On SMP systems, the collection of statistics can cause cache line
bouncing in the lines associated with the counters.  Also there are
races incrementing the counters on multiple CPUs.

To fix both problems, we collect the statistics in per-CPU variables,
and add them up in the debugfs read operation.

As a test I ran the LTP float_bessel test on a 12 CPU Octeon system.

Without CONFIG_DEBUG_FS :             2602 seconds.
With CONFIG_DEBUG_FS:                 2640 seconds.
With non-cpu-local atomic statistics: 14569 seconds.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2009-12-17 01:57:08 +00:00
..
cp1emu.c MIPS: Collect FPU emulator statistics per-CPU. 2009-12-17 01:57:08 +00:00
dp_add.c
dp_cmp.c
dp_div.c
dp_fint.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
dp_flong.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
dp_frexp.c
dp_fsp.c
dp_logb.c
dp_modf.c
dp_mul.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
dp_scalb.c
dp_simple.c MIPS: Fix abs.[sd] and neg.[sd] emulation for NaN operands 2009-11-02 12:00:05 +01:00
dp_sqrt.c Fix preemption and SMP problems in the FP emulator code. 2005-10-29 19:31:12 +01:00
dp_sub.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
dp_tint.c
dp_tlong.c
dsemul.c MIPS: Collect FPU emulator statistics per-CPU. 2009-12-17 01:57:08 +00:00
ieee754.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754.h [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
ieee754d.c
ieee754dp.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754dp.h [MIPS] replace __inline with inline 2008-04-28 17:14:26 +01:00
ieee754int.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
ieee754m.c
ieee754sp.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754sp.h [MIPS] replace __inline with inline 2008-04-28 17:14:26 +01:00
ieee754xcpt.c
kernel_linkage.c [MIPS] Fix missing prototypes in asm/fpu.h 2008-07-20 14:38:17 +01:00
Makefile [MIPS] Use -Werror on subdirectories which build cleanly. 2007-07-31 21:35:33 +01:00
sp_add.c
sp_cmp.c
sp_div.c
sp_fdp.c
sp_fint.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
sp_flong.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
sp_frexp.c
sp_logb.c
sp_modf.c
sp_mul.c
sp_scalb.c
sp_simple.c MIPS: Fix abs.[sd] and neg.[sd] emulation for NaN operands 2009-11-02 12:00:05 +01:00
sp_sqrt.c
sp_sub.c
sp_tint.c
sp_tlong.c