Skip to content
  • Frederic Weisbecker's avatar
    watchdog: Register / unregister watchdog kthreads on sysctl control · b8900bc0
    Frederic Weisbecker authored
    
    
    The user activation/deactivation of the watchdog through boot parameters
    or systcl is currently implemented with a dance involving kthreads parking
    and unparking methods: the threads are unconditionally registered on
    boot and they park as soon as the user want the watchdog to be disabled.
    
    This method involves a few noisy details to handle though: the watchdog
    kthreads may be unparked anytime due to hotplug operations, after which
    the watchdog internals have to decide to park again if it is user-disabled.
    
    As a result the setup() and unpark() methods need to be able to request a
    reparking. This is not currently supported in the kthread infrastructure
    so this piece of the watchdog code only works halfway.
    
    Besides, unparking/reparking the watchdog kthreads consume unnecessary
    cputime on hotplug operations when those could be simply ignored in the
    first place.
    
    As suggested by Srivatsa, let's instead only register the watchdog
    threads when they are needed. This way we don't need to think about
    hotplug operations and we don't burden the CPU onlining when the watchdog
    is simply disabled.
    
    Suggested-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Cc: Anish Singh <anish198519851985@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Li Zhong <zhong@linux.vnet.ibm.com>
    Cc: Don Zickus <dzickus@redhat.com>
    b8900bc0