hardlockup: detect hard lockups without NMIs using secondary cpus
authorColin Cross <ccross@android.com>
Fri, 11 Jan 2013 21:51:48 +0000 (13:51 -0800)
committerArve Hjønnevåg <arve@android.com>
Mon, 1 Jul 2013 21:16:17 +0000 (14:16 -0700)
commitfee519389c2bb5edc9418e72d46fd73beb68aa60
treee8fcc18a8e104c8cd9ef07402024637e441eff17
parent8c4fc9a26e241878987849f68b53e2c78ea0ee9c
hardlockup: detect hard lockups without NMIs using secondary cpus

Emulate NMIs on systems where they are not available by using timer
interrupts on other cpus.  Each cpu will use its softlockup hrtimer
to check that the next cpu is processing hrtimer interrupts by
verifying that a counter is increasing.

This patch is useful on systems where the hardlockup detector is not
available due to a lack of NMIs, for example most ARM SoCs.
Without this patch any cpu stuck with interrupts disabled can
cause a hardware watchdog reset with no debugging information,
but with this patch the kernel can detect the lockup and panic,
which can result in useful debugging info.

Signed-off-by: Colin Cross <ccross@android.com>
include/linux/nmi.h
kernel/watchdog.c
lib/Kconfig.debug