diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-07-31 01:04:15 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-07-31 01:04:15 -0400 |
commit | 940ce422a367c8e65404a5ef1ff5969527a06410 (patch) | |
tree | 0577a96cd6ea362d4bf9974add8c59497d7162a7 /arch/powerpc | |
parent | d77cb21b578a5428482bc0fd187f7c0518a0b32a (diff) |
powerpc/pseries: Increase cpu die timeout
In testing SMT disable, we have been regularly seeing the following
message:
Querying DEAD? cpu %i (%i) shows %i
This indicates the current delay in pseries_cpu_die where we wait
for the specified CPU to die, is insufficient. Usually, this does
not cause a problem, but we've seen this result in BUG_ON's going
off in the timer code when we try to migrate the timers off the
dead cpu while a timer is still running. Increasing this delay,
as is done in this patch, seems to resolve this issue.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/platforms/pseries/hotplug-cpu.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c index bbe507635364..fd50ccd4bac1 100644 --- a/arch/powerpc/platforms/pseries/hotplug-cpu.c +++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c | |||
@@ -193,12 +193,12 @@ static void pseries_cpu_die(unsigned int cpu) | |||
193 | 193 | ||
194 | if (get_preferred_offline_state(cpu) == CPU_STATE_INACTIVE) { | 194 | if (get_preferred_offline_state(cpu) == CPU_STATE_INACTIVE) { |
195 | cpu_status = 1; | 195 | cpu_status = 1; |
196 | for (tries = 0; tries < 1000; tries++) { | 196 | for (tries = 0; tries < 5000; tries++) { |
197 | if (get_cpu_current_state(cpu) == CPU_STATE_INACTIVE) { | 197 | if (get_cpu_current_state(cpu) == CPU_STATE_INACTIVE) { |
198 | cpu_status = 0; | 198 | cpu_status = 0; |
199 | break; | 199 | break; |
200 | } | 200 | } |
201 | cpu_relax(); | 201 | msleep(1); |
202 | } | 202 | } |
203 | } else if (get_preferred_offline_state(cpu) == CPU_STATE_OFFLINE) { | 203 | } else if (get_preferred_offline_state(cpu) == CPU_STATE_OFFLINE) { |
204 | 204 | ||