Skip to content
  • Prarit Bhargava's avatar
    kernel/watchdog.c: do not hardcode CPU 0 as the initial thread · 8dcde9de
    Prarit Bhargava authored
    When CONFIG_BOOTPARAM_HOTPLUG_CPU0 is enabled, the socket containing the
    boot cpu can be replaced.  During the hot add event, the message
    
    NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
    
    is output implying that the NMI watchdog was disabled at some point.  This
    is not the case and the message has caused confusion for users of systems
    that support the removal of the boot cpu socket.
    
    The watchdog code is coded to assume that cpu 0 is always the first cpu to
    initialize the watchdog, and the last to stop its watchdog thread.  That
    is not the case for initializing if cpu 0 has been removed and added.  The
    removal case has never been correct because the smpboot code will remove
    the watchdog threads starting with the lowest cpu number.
    
    This patch adds watchdog_cpus to track the number of cpus with active NMI
    watchdog threads so that the first and last thread can be used to set and
    clear the value of firstcpu_err.  firstcpu_err is set when the first
    watchdog thread is enabled, and cleared when the last watchdog thread is
    disabled.
    
    Link: http://lkml.kernel.org/r/1480425321-32296-1-git-send-email-prarit@redhat.com
    
    
    Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
    Acked-by: default avatarDon Zickus <dzickus@redhat.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Joshua Hunt <johunt@akamai.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Babu Moger <babu.moger@oracle.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8dcde9de