WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

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

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: [XenPPC] [PATCH] Fix race in timebase sync logic
From: Amos Waterland <apw@xxxxxxxxxx>
Date: Fri, 8 Sep 2006 12:00:18 -0400
Delivery-date: Fri, 08 Sep 2006 09:00:30 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
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

<Prev in Thread] Current Thread [Next in Thread>