[IA64] - Reduce overhead of FP exception logging messages
commit1cf24bdbbbd2eb5439796dc399ab1649d150ed1d
authorJack Steiner <steiner@sgi.com>
Wed, 22 Nov 2006 15:55:08 +0000 (22 09:55 -0600)
committerTony Luck <tony.luck@intel.com>
Tue, 12 Dec 2006 19:47:09 +0000 (12 11:47 -0800)
treef1ef2033b15e43d01a5759f90130900455ea5957
parent8b9c106856d92c8266697328b148d115538b59ce
[IA64] - Reduce overhead of FP exception logging messages

Improve the scalability of the fpswa code that rate-limits
logging of messages.

There are 2 distinctly different problems in this code.

1) If prctl is used to disable logging, last_time is never
   updated. The result is that fpu_swa_count is zeroed out on
   EVERY fp fault. This causes a very very hot cache line.
   The fix reduces the wallclock time of a 1024p FP exception test
   from 28734 sec to 19 sec!!!

2) On VERY large systems, excessive messages are logged because
   multiple cpus can each reset or increment fpu_swa_count at
   about the same time. The result is that hundreds of messages
   are logged each second. The fixes reduces the logging rate
   to ~1 per second.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/traps.c