[OT] ppc64 serialization problem
Benjamin Herrenschmidt
benh at kernel.crashing.org
Wed Mar 29 14:11:42 EST 2006
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
> Linuxppc-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
More information about the Linuxppc-dev
mailing list