kernel_optimize_test/arch
Joshua Wise 4f84e4be53 x86_64: fix misplaced `continue' in mce.c
Background:
  When a userspace application wants to know about machine check events, it
  opens /dev/mcelog and does a read(). Usually, we found that this interface
  works well, but in some cases, when the system was taking large numbers of
  machine check exceptions, the read() would hang. The system would output a
  soft-lockup warning, and the daemon reading from /dev/mcelog would suck up
  as much of a single CPU as it could spinning in system space.

Description:
  This patch fixes this bug. In particular, there was a "continue" inside a
  timeout loop that presumably was intended to break out of the outer loop,
  but instead caused the inner loop to continue. This patch also makes the
  condition for the break-out a little more evident by changing a
  !time_before to a time_after_eq.

Result:
  The read() no longer hangs in this test case.

Testing:
  On my system, I could replicate the bug with the following command:
    # for i in `seq 15000`; do ./inject_sbe.sh; done
  where inject_sbe.sh contains commands to inject a single-bit error into the
  next memory write transaction.

Patch:
  This patch is against git f1518a088b.

Signed-off-by: Joshua Wise <jwise@google.com>
Signed-off-by: Tim Hockin <thockin@google.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-24 08:59:12 -07:00
..
alpha alpha: fix alignment problem in csum_ipv6_magic() 2007-06-24 08:59:11 -07:00
arm [ARM] 4445/1: ANUBIS: Fix CPLD registers 2007-06-11 09:09:34 +01:00
arm26 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
avr32 [AVR32] Update defconfigs 2007-06-23 15:43:48 +02:00
blackfin Blackfin arch: match kernel startup messaage with new linker script 2007-06-21 11:34:16 +08:00
cris Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
frv all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
h8300 h8300 trival patches 2007-06-01 08:18:29 -07:00
i386 i386: Make CMPXCHG64 only dependent on PAE 2007-06-22 18:41:18 -07:00
ia64 [IA64] acpi_get_sysname() should be __init 2007-05-24 10:59:44 -07:00
m32r all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
m68k x86_64: Quieten Atari keyboard warnings in Kconfig 2007-06-20 14:27:26 -07:00
m68knommu m68knommu: fix ColdFire timer off by 1 2007-06-08 17:23:32 -07:00
mips [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
parisc [PARISC] unwinder improvements 2007-06-21 17:46:22 -04:00
powerpc [POWERPC] Fix powermac late initcall to only run on powermac 2007-06-20 22:07:38 +10:00
ppc potential parse error in ifdef part 3 2007-06-08 17:23:33 -07:00
s390 [S390] Add oops_enter()/oops_exit() calls to die(). 2007-06-19 13:10:20 +02:00
sh sh: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. 2007-06-19 12:33:21 +09:00
sh64 sh64: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. 2007-06-19 12:41:32 +09:00
sparc [SPARC32]: Build fix. 2007-05-31 01:52:51 -07:00
sparc64 [SPARC64]: Fix args to sun4v_ldc_revoke(). 2007-06-13 00:01:27 -07:00
um uml: remove PAGE_SIZE from libc code 2007-06-16 13:16:16 -07:00
v850 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
x86_64 x86_64: fix misplaced `continue' in mce.c 2007-06-24 08:59:12 -07:00
xtensa [XTENSA] Remove non-rt signal handling 2007-05-31 17:49:32 -07:00