Prarit Bhargava
8dcde9def5
kernel/watchdog.c: do not hardcode CPU 0 as the initial thread
...
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: Prarit Bhargava <prarit@redhat.com>
Acked-by: Don 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-22 16:41:27 -08:00
..
bpf
bpf: make jited programs visible in traces
2017-02-17 13:40:05 -05:00
configs
arch: Rename CONFIG_DEBUG_RODATA and CONFIG_DEBUG_MODULE_RONX
2017-02-07 12:32:52 -08:00
debug
kdb: call vkdb_printf() from vprintk_default() only when wanted
2016-12-14 16:04:08 -08:00
events
Linux 4.10-rc8
2017-02-14 07:29:14 +01:00
gcov
irq
IOMMU Updates for Linux v4.11
2017-02-20 16:42:43 -08:00
livepatch
locking
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-02-20 13:23:30 -08:00
power
This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config
2017-02-21 17:56:45 -08:00
printk
printk: use rcuidle console tracepoint
2017-02-18 17:27:00 -08:00
rcu
Merge branches 'doc.2017.01.15b', 'dyntick.2017.01.23a', 'fixes.2017.01.23a', 'srcu.2017.01.25a' and 'torture.2017.01.15b' into HEAD
2017-01-25 12:56:05 -08:00
sched
sched/core: Fix build paravirt build on arm and arm64
2017-02-21 10:54:02 -08:00
time
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-02-20 12:52:55 -08:00
trace
tracing: add __print_flags_u64()
2017-02-22 16:41:26 -08:00
.gitignore
acct.c
acct: Convert obsolete cputime type to nsecs
2017-02-01 09:13:51 +01:00
async.c
audit.c
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
2017-02-21 13:25:50 -08:00
audit.h
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
2017-02-21 13:25:50 -08:00
audit_fsnotify.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-12-17 18:44:00 -08:00
audit_tree.c
Merge branch 'stable-4.10' of git://git.infradead.org/users/pcmoore/audit
2017-01-05 23:06:06 -08:00
audit_watch.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-12-17 18:44:00 -08:00
auditfilter.c
audit: add support for session ID user filter
2016-11-29 15:10:12 -05:00
auditsc.c
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
2017-02-21 13:25:50 -08:00
backtracetest.c
bounds.c
capability.c
capability: export has_capability
2017-01-12 07:01:56 -07:00
cgroup.c
bpf: introduce BPF_F_ALLOW_OVERRIDE flag
2017-02-12 21:52:19 -05:00
cgroup_freezer.c
cgroup_pids.c
compat.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
configs.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
context_tracking.c
cpu.c
cpu/hotplug: Remove unused but set variable in _cpu_down()
2017-01-18 11:55:09 +01:00
cpu_pm.c
cpuset.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
crash_dump.c
cred.c
delayacct.c
delaycct: Convert obsolete cputime type to nsecs
2017-02-01 09:13:52 +01:00
dma.c
elfcore.c
exec_domain.c
exit.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2017-02-21 12:49:56 -08:00
extable.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-02-22 10:15:09 -08:00
fork.c
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-02-20 13:23:30 -08:00
freezer.c
futex.c
futex: Move futex_init() to core_initcall
2017-02-13 16:12:22 +01:00
futex_compat.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
groups.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
hung_task.c
hung_task: decrement sysctl_hung_task_warnings only if it is positive
2016-12-12 18:55:09 -08:00
irq_work.c
jump_label.c
jump_labels: API for flushing deferred jump label updates
2017-01-12 14:33:16 +01:00
kallsyms.c
bpf: make jited programs visible in traces
2017-02-17 13:40:05 -05:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kcov: make kcov work properly with KASLR enabled
2016-12-20 09:48:47 -08:00
kexec.c
kexec_core.c
kexec: Switch to __pa_symbol
2017-01-11 13:56:49 +00:00
kexec_file.c
ima: on soft reboot, save the measurement list
2016-12-20 09:48:44 -08:00
kexec_internal.h
kexec_file: Allow arch-specific memory walking for kexec_add_buffer
2016-11-30 23:14:57 +11:00
kmod.c
Introduce STATIC_USERMODEHELPER to mediate call_usermodehelper()
2017-01-19 12:59:45 +01:00
kprobes.c
powerpc updates for 4.11 part 1.
2017-02-22 10:30:38 -08:00
ksysfs.c
kthread.c
time: Remove CONFIG_TIMER_STATS
2017-02-10 11:15:08 +01:00
latencytop.c
Makefile
Merge branch 'akpm' (patches from Andrew)
2016-12-14 17:25:18 -08:00
membarrier.c
Fix: Disable sys_membarrier when nohz_full is enabled
2017-01-23 11:32:16 -08:00
memremap.c
mm: fix devm_memremap_pages crash, use mem_hotplug_{begin, done}
2017-01-10 18:31:54 -08:00
module-internal.h
module.c
This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config
2017-02-21 17:56:45 -08:00
module_signing.c
notifier.c
nsproxy.c
padata.c
panic.c
kernel/panic.c: add missing \n
2017-01-24 16:26:14 -08:00
params.c
pid.c
locking/atomic, kref: Add KREF_INIT()
2017-01-14 11:37:18 +01:00
pid_namespace.c
pid: fix lockdep deadlock warning due to ucount_lock
2017-01-10 13:34:56 +13:00
profile.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
ptrace.c
ptrace: Don't allow accessing an undumpable mm
2016-11-22 12:57:38 -06:00
range.c
reboot.c
relay.c
relay: check array offset before using it
2016-12-14 16:04:08 -08:00
resource.c
seccomp.c
seccomp: dump core when using SECCOMP_RET_KILL
2017-01-23 21:42:42 +11:00
signal.c
signal: Convert obsolete cputime type to nsecs
2017-02-01 09:13:53 +01:00
smp.c
kernel/smp: Tell the user we're bringing up secondary CPUs
2016-10-26 12:02:35 +02:00
smpboot.c
smpboot.h
softirq.c
stacktrace.c
stacktrace, lockdep: Fix address, newline ugliness
2017-02-08 08:21:31 +01:00
stop_machine.c
locking/core, stop_machine: Yield the CPU during stop machine()
2016-11-16 10:15:09 +01:00
sys.c
sched/cputime: Convert task/group cputime to nsecs
2017-02-01 09:13:49 +01:00
sys_ni.c
move aio compat to fs/aio.c
2016-12-22 22:58:37 -05:00
sysctl.c
sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds
2017-02-01 11:01:30 +01:00
sysctl_binary.c
sysctl: add KERN_CONT to deprecated_sysctl_warning()
2016-12-14 16:04:07 -08:00
task_work.c
taskstats.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-11-15 10:54:36 -05:00
test_kprobes.c
torture.c
tracepoint.c
tracing: Have the reg function allow to fail
2016-12-09 09:13:30 -05:00
tsacct.c
tsacct: Convert obsolete cputime type to nsecs
2017-02-01 09:13:52 +01:00
ucount.c
kernel/ucount.c: mark user_header with kmemleak_ignore()
2017-02-08 15:41:43 -08:00
uid16.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
up.c
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c
kernel/watchdog: prevent false hardlockup on overloaded system
2017-01-24 16:26:14 -08:00
watchdog_hld.c
kernel/watchdog.c: do not hardcode CPU 0 as the initial thread
2017-02-22 16:41:27 -08:00
workqueue.c
time: Remove CONFIG_TIMER_STATS
2017-02-10 11:15:08 +01:00
workqueue_internal.h