CPU architectures that have an NMI watchdog use arch_touch_nmi_watchdog() to briefly ignore the hardlockup detector. If the architecture does not have an NMI watchdog, one can be constructed using a source of non- maskable interrupts. In this case, arch_touch_nmi_watchdog() is common to any underlying hardware resource used to drive the detector and needs to be available to other kernel subsystems if hardware different from perf drives the detector.
There exists perf-based and HPET-based implementations. Make it available to the latter. For clarity, wrap this function in a separate preprocessor conditional from functions which are truly specific to the perf-based implementation. Cc: "H. Peter Anvin" <[email protected]> Cc: Ashok Raj <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Tony Luck <[email protected]> Cc: "Rafael J. Wysocki" <[email protected]> Cc: Don Zickus <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Babu Moger <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Mathieu Desnoyers <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Philippe Ombredanne <[email protected]> Cc: Colin Ian King <[email protected]> Cc: Byungchul Park <[email protected]> Cc: "Paul E. McKenney" <[email protected]> Cc: "Luis R. Rodriguez" <[email protected]> Cc: Waiman Long <[email protected]> Cc: Josh Poimboeuf <[email protected]> Cc: Randy Dunlap <[email protected]> Cc: Davidlohr Bueso <[email protected]> Cc: Christoffer Dall <[email protected]> Cc: Marc Zyngier <[email protected]> Cc: Kai-Heng Feng <[email protected]> Cc: Konrad Rzeszutek Wilk <[email protected]> Cc: David Rientjes <[email protected]> Cc: "Ravi V. Shankar" <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Ricardo Neri <[email protected]> --- include/linux/nmi.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/nmi.h b/include/linux/nmi.h index 5a8b19749769..bf5ebcfdd590 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h @@ -94,8 +94,16 @@ static inline void hardlockup_detector_disable(void) {} # define NMI_WATCHDOG_SYSCTL_PERM 0444 #endif -#if defined(CONFIG_HARDLOCKUP_DETECTOR_PERF) +#if defined(CONFIG_HARDLOCKUP_DETECTOR_PERF) || \ + defined(CONFIG_X86_HARDLOCKUP_DETECTOR_HPET) extern void arch_touch_nmi_watchdog(void); +#else +# if !defined(CONFIG_HAVE_NMI_WATCHDOG) +static inline void arch_touch_nmi_watchdog(void) {} +# endif +#endif + +#if defined(CONFIG_HARDLOCKUP_DETECTOR_PERF) extern void hardlockup_detector_perf_stop(void); extern void hardlockup_detector_perf_restart(void); extern void hardlockup_detector_perf_disable(void); -- 2.17.1

