]> Git Repo - linux.git/commit
powerpc/64s: implement arch-specific hardlockup watchdog
authorNicholas Piggin <[email protected]>
Wed, 12 Jul 2017 21:35:52 +0000 (14:35 -0700)
committerLinus Torvalds <[email protected]>
Wed, 12 Jul 2017 23:26:02 +0000 (16:26 -0700)
commit2104180a53698df5aec35aed5f840a26ade0551d
tree72fcbf52fd53a333282de9103197c04576025c54
parenta10a842ff81a7e3810817b3b04e4c432b6191e21
powerpc/64s: implement arch-specific hardlockup watchdog

Implement an arch-speicfic watchdog rather than use the perf-based
hardlockup detector.

The new watchdog takes the soft-NMI directly, rather than going through
perf.  Perf interrupts are to be made maskable in future, so that would
prevent the perf detector from working in those regions.

Additionally, implement a SMP based detector where all CPUs watch one
another by pinging a shared cpumask.  This is because powerpc Book3S
does not have a true periodic local NMI, but some platforms do implement
a true NMI IPI.

If a CPU is stuck with interrupts hard disabled, the soft-NMI watchdog
does not work, but the SMP watchdog will.  Even on platforms without a
true NMI IPI to get a good trace from the stuck CPU, other CPUs will
notice the lockup sufficiently to report it and panic.

[[email protected]: honor watchdog disable at boot/hotplug]
Link: http://lkml.kernel.org/r/[email protected]
[[email protected]: fix false positive warning at CPU unplug]
Link: http://lkml.kernel.org/r/[email protected]
[[email protected]: coding-style fixes]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Nicholas Piggin <[email protected]>
Reviewed-by: Don Zickus <[email protected]>
Tested-by: Babu Moger <[email protected]> [sparc]
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Michael Ellerman <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/powerpc/Kconfig
arch/powerpc/include/asm/nmi.h
arch/powerpc/include/asm/smp.h
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/kvm.c
arch/powerpc/kernel/setup_64.c
arch/powerpc/kernel/smp.c
arch/powerpc/kernel/watchdog.c [new file with mode: 0644]
This page took 0.058302 seconds and 4 git commands to generate.