summaryrefslogtreecommitdiffstats
path: root/kernel/time/tick-sched.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2008-12-11 17:04:11 +0100
committerIngo Molnar <mingo@elte.hu>2008-12-12 07:27:01 +0100
commitfa116ea35ec7f40e890972324409e99eed008d56 (patch)
tree60747cb2e78fbd66abdce1f133816ab22a078d34 /kernel/time/tick-sched.c
parent6c34bc2976b30dc8b56392c020e25bae1f363cab (diff)
downloadop-kernel-dev-fa116ea35ec7f40e890972324409e99eed008d56.zip
op-kernel-dev-fa116ea35ec7f40e890972324409e99eed008d56.tar.gz
nohz: no softirq pending warnings for offline cpus
Impact: remove false positive warning After a cpu was taken down during cpu hotplug (read: disabled for interrupts) it still might have pending softirqs. However take_cpu_down makes sure that the idle task will run next instead of ksoftirqd on the taken down cpu. The idle task will call tick_nohz_stop_sched_tick which might warn about pending softirqs just before the cpu kills itself completely. However the pending softirqs on the dead cpu aren't a problem because they will be moved to an online cpu during CPU_DEAD handling. So make sure we warn only for online cpus. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r--kernel/time/tick-sched.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 342fc9c..dc17ffc 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -247,7 +247,7 @@ void tick_nohz_stop_sched_tick(int inidle)
if (need_resched())
goto end;
- if (unlikely(local_softirq_pending())) {
+ if (unlikely(local_softirq_pending() && cpu_online(cpu))) {
static int ratelimit;
if (ratelimit < 10) {
OpenPOWER on IntegriCloud