Skip to content
  • Chris Metcalf's avatar
    smpboot: allow excluding cpus from the smpboot threads · b5242e98
    Chris Metcalf authored
    
    
    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.
    
    This patch (of 3):
    
    This change allows some cores to be excluded from running the
    smp_hotplug_thread tasks.  The following commit to update
    kernel/watchdog.c to use this functionality is the motivating example, and
    more information on the motivation is provided there.
    
    A new smp_hotplug_thread field is introduced, "cpumask", which is cpumask
    field managed by the smpboot subsystem that indicates whether or not the
    given smp_hotplug_thread should run on that core; the cpumask is checked
    when deciding whether to unpark the thread.
    
    To limit the cpumask to less than cpu_possible, you must call
    smpboot_update_cpumask_percpu_thread() after registering.
    
    Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
    Cc: Don 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 avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b5242e98