Messages in this thread | | | From | Chris Metcalf <> | Subject | [PATCH v10 0/3] add watchdog_cpumask to help nohz_full | Date | Thu, 30 Apr 2015 15:39:23 -0400 |
| |
This patch series allows the watchdog to run by default only on the housekeeping cores when nohz_full is in effect; this seems to be a good compromise short of turning it off completely (since the nohz_full cores can't tolerate a watchdog).
To provide customizability, we add /proc/sys/kernel/watchdog_cpumask so that the set of cores running the watchdog can be tuned to different values after bootup.
To implement this customizability, we add a new smpboot_update_cpumask_percpu_thread() API to the smpboot_thread subsystem that lets us park or unpark "unwanted" threads.
And now that threads can be parked for long periods of time, we tweak the /proc/<pid>/stat and /proc/<pid>/status code so parked threads aren't reported as running, which is otherwise confusing.
v10: improved documentation and comments [akpm] made watchdog_cpumask a static struct cpumask [Don, Uli] print warning if update_cpumask fails for watchdog [Don]
v9: move cpumask into smpboot_hotplug_thread and don't let the client initialize it either [Frederic] use alloc_cpumask_var, not a locked static cpumask [Frederic] add and use for_each_watchdog_cpu() [Uli] check alloc_cpumask_var for failure [Chai Wen]
v8: make cpumask only updated by smpboot subsystem [Frederic] improve documentation in "Documentation/" and in changelog [akpm]
v7: change from valid_cpu() callback to optional cpumask field park smpboot threads rather than just not creating them
v6: use alloc_cpumask_var() [Sasha Levin] change from an "exclude" data pointer to a more generic valid_cpu() callback [Frederic] add Don's Acked-by
v5: switch from watchdog_exclude to watchdog_cpumask [Frederic] simplify the smp_hotplug_thread API to watchdog [Frederic]
Chris Metcalf (3): smpboot: allow excluding cpus from the smpboot threads watchdog: add watchdog_cpumask sysctl to assist nohz procfs: treat parked tasks as sleeping for task state
Documentation/lockup-watchdogs.txt | 18 +++++++++++ Documentation/sysctl/kernel.txt | 21 +++++++++++++ fs/proc/array.c | 8 +++++ include/linux/nmi.h | 3 ++ include/linux/smpboot.h | 5 +++ kernel/smpboot.c | 55 +++++++++++++++++++++++++++++++- kernel/sysctl.c | 7 +++++ kernel/watchdog.c | 64 +++++++++++++++++++++++++++++++++++--- 8 files changed, 175 insertions(+), 6 deletions(-)
-- 2.1.2
| |