• Chris Metcalf's avatar
    watchdog: add watchdog_cpumask sysctl to assist nohz · fe4ba3c3
    Chris Metcalf authored
    Change the default behavior of watchdog so it only runs on the
    housekeeping cores when nohz_full is enabled at build and boot time.
    Allow modifying the set of cores the watchdog is currently running on
    with a new kernel.watchdog_cpumask sysctl.
    
    In the current system, the watchdog subsystem runs a periodic timer that
    schedules the watchdog kthread to run.  However, nohz_full cores are
    designed to allow userspace application code running on those cores to
    have 100% access to the CPU.  So the watchdog system prevents the
    nohz_full application code from being able to run the way it wants to,
    thus the motivation to suppress the watchdog on nohz_full cores, which
    this patchset provides by default.
    
    However, if we disable the watchdog globally, then the housekeeping
    cores can't benefit from the watchdog functionality.  So we allow
    disabling it only on some cores.  See Documentation/lockup-watchdogs.txt
    for more information.
    
    [jhubbard@nvidia.com: fix a watchdog crash in some configurations]
    Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
    Acked-by: default avatarDon Zickus <dzickus@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Ulrich Obergfell <uobergfe@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    fe4ba3c3
sysctl.c 63.7 KB