[patch] ppc32: set smp_tb_synchronized on UP with SMP kernel

Benjamin Herrenschmidt benh at kernel.crashing.org
Sun Dec 11 11:25:07 EST 2005


On Sun, 2005-12-11 at 01:00 +0100, Johannes Berg wrote:
> ppc32 kernel, when built with CONFIG_SMP and booted on a single CPU
> machine, will not properly set smp_tb_synchronized, thus causing
> gettimeofday() to not use the HW timebase and to be limited to jiffy
> resolution. This, among others, causes unacceptable pauses when
> launching X.org.
> 
> Signed-Off-By: Johannes Berg <johannes at sipsolutions.net>

Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

> --- 
> 
> With this patch, X.org startup time goes down from ~30 seconds to normal
> (just a second or so). The know-how really comes from BenH who I
> discussed with on IRC.
> 
> --- linux-2.6.15-rc5.orig/arch/ppc/kernel/smp.c	2005-12-10 23:56:23.026328000 +0100
> +++ linux-2.6.15-rc5/arch/ppc/kernel/smp.c	2005-12-11 00:56:53.756328000 +0100
> @@ -301,6 +301,10 @@
>  
>  	/* Probe platform for CPUs: always linear. */
>  	num_cpus = smp_ops->probe();
> +	
> +	if (num_cpus < 2)
> +		smp_tb_synchronized = 1;
> +	
>  	for (i = 0; i < num_cpus; ++i)
>  		cpu_set(i, cpu_possible_map);
>  
> 




More information about the Linuxppc-dev mailing list