diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-12-11 17:04:11 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-12 07:27:01 +0100 |
commit | fa116ea35ec7f40e890972324409e99eed008d56 (patch) | |
tree | 60747cb2e78fbd66abdce1f133816ab22a078d34 /kernel/time/tick-sched.c | |
parent | 6c34bc2976b30dc8b56392c020e25bae1f363cab (diff) | |
download | op-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.c | 2 |
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) { |