Skip to content
  • Thomas Gleixner's avatar
    watchdog/core: Create new thread handling infrastructure · 2eb2527f
    Thomas Gleixner authored
    
    
    The lockup detector reconfiguration tears down all watchdog threads when
    the watchdog is disabled and sets them up again when its enabled.
    
    That's a pointless exercise. The watchdog threads are not consuming an
    insane amount of resources, so it's enough to set them up at init time and
    keep them in parked position when the watchdog is disabled and unpark them
    when it is reenabled. The smpboot thread infrastructure takes care of
    keeping the force parked threads in place even across cpu hotplug.
    
    Another horrible mechanism are the open coded park/unpark loops which are
    used for reconfiguration of the watchdog. The smpboot infrastructure allows
    exactly the same via smpboot_update_cpumask_thread_percpu(), which is cpu
    hotplug safe. Using that instead of the open coded loops allows to get rid
    of the hotplug locking mess in the watchdog code.
    
    Implement a clean infrastructure which allows to replace the open coded
    nonsense.
    
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarDon Zickus <dzickus@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Chris Metcalf <cmetcalf@mellanox.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Cc: Ulrich Obergfell <uobergfe@redhat.com>
    Link: http://lkml.kernel.org/r/20170912194147.377182587@linutronix.de
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    2eb2527f