[Top][All Lists]

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

Re: SMP, barriers, etc.

From: Samuel Thibault
Subject: Re: SMP, barriers, etc.
Date: Sat, 26 Dec 2009 11:55:45 +0100
User-agent: Mutt/1.5.12-2006-07-14

Da Zheng, le Sat 26 Dec 2009 16:21:55 +0800, a écrit :
> Hi,
> Samuel Thibault wrote:
> > (I've cleaned To: and subject a bit :)
> > 
> > Da Zheng, le Wed 23 Dec 2009 21:23:23 +0800, a écrit :
> >> Samuel Thibault wrote:
> >>>> Is there anything else we should worry about?
> >>> Ordering. See /usr/src/linux/Documentation/memory-barriers.txt
> >> It's a long file. There are a lot to study:)
> > 
> > Yes, it's very instructive.
> After I read this introduction, I checked some atomic operations 
> implementation such as atomic_add_return in Linux for Aphla processors. 
> Before and after these operations change the variable, they put memory 
> barriers. So it's something like this:
> smp_mb();
> operations;
> smp_mb();
> But the problem is: on SMP, a variable's value can always been changed by 
> another processor after the first memory barrier is called. Thus, the CPU 
> does an operation on the stale value. There seems to be no way that we can 
> guarantee that the variable has the latest value at the moment the CPU is 
> doing the operation on it.

Yes, that's why the operations have a loop that keeps retrying until the
result is as expected.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]