Talk:Release consistency

I am confused about something. It seems to me that this page claims that RCpc is sufficient for DRF:

" Conditions for sequential consistent result

In general, a distributed shared memory is release consistent if it obeys the following rules:[2]

1. Before an access to a shared variable is performed, all previous acquires by this processor must have completed. 2. Before a release is performed, all previous reads and writes by this process must have completed. 3. The acquire and release accesses must be processor consistent.

If the conditions above are met and the program is properly synchronized (i.e., processors implement acquire and release properly), the results of any execution will be exactly the same as they would have been executed following sequential consistency. In effect, accesses to shared variables are separated into atomic operation blocks by the acquire and release primitives so that races and interleaving between blocks will be prevented. "

However http://pages.cs.wisc.edu/~markhill/theses/sarita_adve.pdf seems to me to suggest that RCsc is required: "A variant of release consistency where special accesses are sequentially consistent is also proposed [GLL90]. This modelis abbreviated as RCsc, while the model with processor consistent special accesses is abbreviated as RCpc. Gharachorloo et al. identify a set of software constraints for which a system that obeys RCsc appears sequentially consistent. Programs that obey these constraints are called properly labeled (PL) programs."

So I don't understand -- is RCsc or RCpc required as a premise of the DRF theorem? And what are the exact conditions placed on the program to be able to guarantee sequential consistency?

Bayle Shanks (talk) 08:28, 21 July 2019 (UTC)