[cpp-threads] Alternatives to SC
    Alexander Terekhov 
    alexander.terekhov at gmail.com
       
    Mon Jan 15 06:57:52 GMT 2007
    
    
  
On 1/14/07, Raul Silvera <rauls at ca.ibm.com> wrote:
[...]
> Furthermore, as several other people have mentioned already, SC requires
> reads to wait for any writes observed from other threads to become globally
> visible. This means you need a StoreLoad barrier ...
P1: x = 1;
P2: if (x == 1) y = 2;
P3: if (y == 2) assert(x == 1);
PowerPC Book II discusses that example and says that it requires
P1: x = 1;
P2: if (x == 1) sync(), y = 2;
P3: if (y == 2) sync(), assert(x == 1);
('Cumulative ordering' property of 'sync' instruction.)
I somehow doubt that it will outperform a sync()-less version doing
load of x on P3 via stwcx-validated lwarx. ;-)
regards,
alexander.
    
    
More information about the cpp-threads
mailing list