[patch] tweak schedule_timeout in __cpu_die

Joel Schopp jschopp at austin.ibm.com
Wed Aug 18 05:02:43 EST 2004


The patch looks fine to me.

Wonder what would happen if we did away with the schedule_timeout all
together and just did a tight loop, every so often checking the time?

-Joel

Nathan Lynch wrote:

> Hi-
>
> 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 <nathanl at austin.ibm.com>
>
> ---
>
>
> diff -puN arch/ppc64/kernel/smp.c~ppc64-cpu-death-sched-timeout arch/ppc64/kernel/smp.c
> --- 2.6.8.1-mm1/arch/ppc64/kernel/smp.c~ppc64-cpu-death-sched-timeout	2004-08-16 22:25:03.000000000 -0500
> +++ 2.6.8.1-mm1-nathanl/arch/ppc64/kernel/smp.c	2004-08-16 22:25:03.000000000 -0500
> @@ -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",
>
> _
>
>
>
>

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list