The patch titled Subject: watchdog: use park/unpark functions in update_watchdog_all_cpus() has been added to the -mm tree. Its filename is watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Ulrich Obergfell <uobergfe@xxxxxxxxxx> Subject: watchdog: use park/unpark functions in update_watchdog_all_cpus() Remove update_watchdog() and restart_watchdog_hrtimer() since these functions are no longer needed. Changes of parameters such as the sample period are honored at the time when the watchdog threads are being unparked. Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx> Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx> Cc: Guenter Roeck <linux@xxxxxxxxxxxx> Cc: Don Zickus <dzickus@xxxxxxxxxx> Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx> Cc: Jiri Olsa <jolsa@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxx> Cc: Stephane Eranian <eranian@xxxxxxxxxx> Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/watchdog.c | 40 ++-------------------------------------- 1 file changed, 2 insertions(+), 38 deletions(-) diff -puN kernel/watchdog.c~watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus kernel/watchdog.c --- a/kernel/watchdog.c~watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus +++ a/kernel/watchdog.c @@ -745,46 +745,10 @@ void watchdog_resume(void) mutex_unlock(&watchdog_proc_mutex); } -static void restart_watchdog_hrtimer(void *info) -{ - struct hrtimer *hrtimer = raw_cpu_ptr(&watchdog_hrtimer); - int ret; - - /* - * No need to cancel and restart hrtimer if it is currently executing - * because it will reprogram itself with the new period now. - * We should never see it unqueued here because we are running per-cpu - * with interrupts disabled. - */ - ret = hrtimer_try_to_cancel(hrtimer); - if (ret == 1) - hrtimer_start(hrtimer, ns_to_ktime(sample_period), - HRTIMER_MODE_REL_PINNED); -} - -static void update_watchdog(int cpu) -{ - /* - * Make sure that perf event counter will adopt to a new - * sampling period. Updating the sampling period directly would - * be much nicer but we do not have an API for that now so - * let's use a big hammer. - * Hrtimer will adopt the new period on the next tick but this - * might be late already so we have to restart the timer as well. - */ - watchdog_nmi_disable(cpu); - smp_call_function_single(cpu, restart_watchdog_hrtimer, NULL, 1); - watchdog_nmi_enable(cpu); -} - static void update_watchdog_all_cpus(void) { - int cpu; - - get_online_cpus(); - for_each_watchdog_cpu(cpu) - update_watchdog(cpu); - put_online_cpus(); + watchdog_park_threads(); + watchdog_unpark_threads(); } static int watchdog_enable_all_cpus(void) _ Patches currently in -mm which might be from uobergfe@xxxxxxxxxx are smpboot-fix-memory-leak-on-error-handling.patch smpboot-make-cleanup-to-mirror-setup.patch smpboot-allow-to-pass-the-cpumask-on-per-cpu-thread-registration.patch watchdog-simplify-housekeeping-affinity-with-the-appropriate-mask.patch watchdog-introduce-watchdog_park_threads-and-watchdog_unpark_threads.patch watchdog-introduce-watchdog_suspend-and-watchdog_resume.patch watchdog-introduce-watchdog_suspend-and-watchdog_resume-fix.patch watchdog-use-park-unpark-functions-in-update_watchdog_all_cpus.patch watchdog-use-suspend-resume-interface-in-fixup_ht_bug.patch linux-next.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html