[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] [PATCH] Fix race in timebase sync logic



The SMP timebase sync code that recently went in has a race in which
secondary processor X+1 can potentially take the timebase offset that is
still in flight for secondary processor X.  The cause of this was
marking a secondary processor online from the boot cpu and then trying
to wait for the secondary processor to mark itself online.

Signed-off-by: Amos Waterland <apw@xxxxxxxxxx>

---

 setup.c |    1 -
 1 file changed, 1 deletion(-)

diff -r 715014b95488 xen/arch/powerpc/setup.c
--- a/xen/arch/powerpc/setup.c  Thu Sep 07 22:09:06 2006 -0400
+++ b/xen/arch/powerpc/setup.c  Fri Sep 08 11:26:27 2006 -0400
@@ -244,9 +244,8 @@ static int kick_secondary_cpus(int maxcp
         if (cpuid >= maxcpus)
             break;
         init_parea(cpuid);
-        cpu_set(cpuid, cpu_online_map);
         smp_generic_give_timebase();
 
         /* wait for it */
         while (!cpu_online(cpuid))
             cpu_relax();

_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.