linux/arch/x86_64
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
..
boot [PATCH] x86-64: Share identical video.S between i386 and x86-64 2007-05-02 19:27:21 +02:00
crypto [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
ia32 x86_64: Fix readahead/sync_file_range/fadvise64 compat calls 2007-06-20 14:27:25 -07:00
kernel x86_64: fix misplaced `continue' in mce.c 2007-06-24 08:59:12 -07:00
lib Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq 2007-02-26 14:17:50 -08:00
mm Allow DEBUG_RODATA and KPROBES to co-exist 2007-06-21 16:02:50 -07:00
oprofile [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
pci [PATCH] mmconfig: fix unreachable_devices() 2007-02-13 13:26:20 +01:00
defconfig x86_64: Update defconfig 2007-05-21 09:56:56 -07:00
Kconfig i386, x86-64: show that CONFIG_HOTPLUG_CPU is required for suspend on SMP 2007-05-23 20:14:14 -07:00
Kconfig.debug Allow DEBUG_RODATA and KPROBES to co-exist 2007-06-21 16:02:50 -07:00
Makefile [PATCH] x86-64: Remove CONFIG_REORDER 2007-05-02 19:27:21 +02:00