From: Anton Blanchard From: Nathan Lynch The current code does schedule_timeout(HZ) when waiting for a cpu to die, which is a bit coarse and tends to limit the "throughput" of my stress tests :) Change the HZ timeout to HZ/5, increase the number of tries to 25 so the overall wait time is similar. In practice, I've never seen the loop need more than two iterations. Signed-off-by: Nathan Lynch Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/kernel/smp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/ppc64/kernel/smp.c~ppc64-cpu-death-sched-timeout arch/ppc64/kernel/smp.c --- 25/arch/ppc64/kernel/smp.c~ppc64-cpu-death-sched-timeout 2004-08-18 21:30:12.010977128 -0700 +++ 25-akpm/arch/ppc64/kernel/smp.c 2004-08-18 21:30:12.015976368 -0700 @@ -272,13 +272,13 @@ void __cpu_die(unsigned int cpu) int cpu_status; unsigned int pcpu = get_hard_smp_processor_id(cpu); - for (tries = 0; tries < 5; tries++) { + for (tries = 0; tries < 25; tries++) { cpu_status = query_cpu_stopped(pcpu); if (cpu_status == 0) break; set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(HZ); + schedule_timeout(HZ/5); } if (cpu_status != 0) { printk("Querying DEAD? cpu %i (%i) shows %i\n", _