Re: JavaMemoryModel: Volatiles - where does SC work and PO doesn't?

From: David F. Bacon (dfb@watson.ibm.com)
Date: Tue Nov 21 2000 - 09:32:36 EST


i don't recall the distinctions between PSO and RMO on Sparc, but if what
you're talking about is like the weak consistency enforced by PowerPC and
Alpha, then....

the best example is a hash table which is read without locking. if you have
SC, you can rely on being able to completely initialize a new bucket, and then
insert it into the table with a single write. if the unsynchronized readers
see the write that inserts the bucket, they will see the "previous" writes that
initialized the bucket, and everything is hunky dorey. on the other hand, with
a weaker consistency model, there is no such guarantee and the readers might
see a new bucket with unitialized values in it.

another example i came across recently was in the concurrent GC of Huelsbergen
and Winterbottom, which relies on SC to implement read and write barriers that
don't require heavyweight synchronization (see PPoPP'93).

david
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel



This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:28 EDT