When the watchdog runs, it prevents the full dynticks CPUs from stopping their tick because the hard lockup detector uses perf events internally, which in turn rely on the periodic tick.
Since this is a rather confusing behaviour that is not easy to track down and identify for those who want to test CONFIG_NO_HZ_FULL, let's default disable the watchdog on boot time when full dynticks is enabled. The user can still enable it later on runtime using proc or sysctl. Reported-by: Steven Rostedt <[email protected]> Suggested-by: Peter Zijlstra <[email protected]> Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Steven Rostedt <[email protected]> Cc: Paul E. McKenney <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Li Zhong <[email protected]> Cc: Don Zickus <[email protected]> --- kernel/watchdog.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 05039e3..7e1a021 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -543,6 +543,12 @@ static struct smp_hotplug_thread watchdog_threads = { void __init lockup_detector_init(void) { +#ifdef CONFIG_NO_HZ_FULL + watchdog_enabled = 0; + watchdog_disabled = 1; + pr_warning("Disabled lockup detectors by default because of full dynticks\n"); + pr_warning("You can overwrite that with 'sysctl -w kernel.watchdog=1'\n"); +#endif set_sample_period(); if (smpboot_register_percpu_thread(&watchdog_threads)) { pr_err("Failed to create watchdog threads, disabled\n"); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

