[PATCH] ppc32: set smp_tb_synchronized on UP with SMP kernel
authorJohannes Berg <johannes@sipsolutions.net>
Sun, 11 Dec 2005 02:41:50 +0000 (18:41 -0800)
committerPaul Mackerras <paulus@samba.org>
Mon, 12 Dec 2005 03:26:39 +0000 (14:26 +1100)
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@sipsolutions.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc/kernel/smp.c

index 43b8fc2ca591c86388427c4b822eababd6991e11..becbfa397556a378c87aea3c05e8418073072fb4 100644 (file)
@@ -301,6 +301,10 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
 
        /* 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);