On 9/10/2017 11:39 AM, Charles Mills wrote:
...
Is that saying that there is a chance that another CPU might observe a
condition in which the store of the first operand had occurred, but the
store of the second operand had not? My understanding from earlier
paragraphs was that CSST happened "all at once" from the point of view of
other CPUs. Was I mistaken?

Yes, it is saying that another CPU *might* observe the first store but not the second. As I read it, the POPs does *not* say that say CSST happens "all at once." It says that any fetches occur before a store occurs, and that each stores is block concurrent. If the compare is successful the processor will perform both stores. If the compare fails the processor will *not* perform both stores.

The following from the POPs is important to consider with respect to usage of CSST-

  3. The store value is intended to provide a separate
     “footprint” of the interlocked-update operation in
     a location apart from the first operand in a single
     unit of operation.

The store into the second operand is a "footprint". CSST was not intended to be used as a means to atomically update two disparate storage locations. Rather, as a way to perform a Compare-and-swap operation, and set a footprint for recovery (ie, the CS completed) in non-shared storage associated with the current unit of work.

Regards, Greg

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to