powerpc: Don't spin on sync instruction at boot time
authorSonny Rao <sonnyrao@us.ibm.com>
Fri, 11 Jul 2008 23:00:26 +0000 (09:00 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 15 Jul 2008 02:29:28 +0000 (12:29 +1000)
Push the sync below the secondary smp init hold loop and comment its purpose.
This should speed up boot by reducing global traffic during the single-threaded
portion of boot.

Signed-off-by: Sonny Rao <sonnyrao@us.ibm.com>
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/head_64.S

index ecced1e..cc8fb47 100644 (file)
@@ -1198,7 +1198,6 @@ _GLOBAL(generic_secondary_smp_init)
 3:     HMT_LOW
        lbz     r23,PACAPROCSTART(r13)  /* Test if this processor should */
                                        /* start.                        */
-       sync
 
 #ifndef CONFIG_SMP
        b       3b                      /* Never go on non-SMP           */
@@ -1206,6 +1205,8 @@ _GLOBAL(generic_secondary_smp_init)
        cmpwi   0,r23,0
        beq     3b                      /* Loop until told to go         */
 
+       sync                            /* order paca.run and cur_cpu_spec */
+
        /* See if we need to call a cpu state restore handler */
        LOAD_REG_IMMEDIATE(r23, cur_cpu_spec)
        ld      r23,0(r23)