Subject: Re: [OT] ppc64 serialization problem

From: Benjamin Herrenschmidt <[email-masked]>
Date: Wed, 29 Mar 2006 14:11:42 +1100

On Tue, 2006-03-28 at 20:58 -0500, Greg Smith wrote:
> We have a multi-threaded app running on a p520 in 64 bit mode.
> 
> Thread A does
> 
> pthread_mutex_lock(&lock);
> u32 &= ~bitA;
> pthread_mutex_unlock(&lock);
> 
> and Thread B does
> 
> pthread_mutex_lock(&lock);
> u32 |= bitB;
> A = u32;
> B = u32;
> pthread_mutex_unlock(&lock);
> 
> On rare occasions, values A and B will differ!  In the examples that I
> have seen, there is contention with `lock'.  This phenomenon does not
> occur on ppc32 or a number of other architectures that we support.

How did you actually "look" at A and B ? is that also protected by the
lock ?

> I confess I do not know the linux version nor the glibc version nor what
> pthreads implementation is being used.  I'll find that out shortly.

That's fairly important to know those yes.

> What I am curious about is where the problem might lie
> (kernel/lib/pthreads/app) so I can ask the right people.
> 
> Thank you for your patience,
> Greg Smith
> 
> 
> 
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev