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
..
Makefile [MIPS] Use -Werror on subdirectories which build cleanly. 2007-07-31 21:35:33 +01:00
cp1emu.c MIPS: Collect FPU emulator statistics per-CPU. 2009-12-17 01:57:08 +00:00
dp_add.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_cmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_div.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_fsp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_logb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_modf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_mul.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
dp_scalb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_tlong.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kernel_linkage.c [MIPS] Fix missing prototypes in asm/fpu.h 2008-07-20 14:38:17 +01:00
sp_add.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_cmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_div.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_fdp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_logb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_modf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_mul.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_scalb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_sub.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_tint.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_tlong.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00