Thank you for mentioning the issue with CS/CDS. I have always understood
that if you use PLO anywhere  to serialize access to an area,  you must use
it everywhere to serialize access to that area.  It's nice to know that the
transactional facility serializes it against CS as well. I wish I had access
to a processor to play with it.

I always understood that the reason PLO did a memory serialization at the
end of a PLO was to insure that any processors that were referencing the
swap word(s) in a compare and swap would get consistent results; either the
swap value(32, 64 or 128) before the swap or after the  swap. Since the swap
value is always stored last and provided you always loaded the swap value
first, you would either get the correct swap and store values and the
subsequent PLO would succeed or you would get an outdated swap value with
inconsistent store values and the subsequent PLO would return a CC to
re-drive. I have written software traces for PLO and my observations have
supported this understanding of the POM's description of PLO and memory
serialization. Is this your understanding?

I often use 128 bit operations with consecutive words and double words to
perform some sophisticated operations. I've understood about double word
consistency. I've always assumed that PLO 128 bit required quad-word
alignment for 128 bit operations for the same reason. I always load the swap
value (in any flavor compare and swap and store) first. I always use a LMG
(even if its consecutive words) and I always insure that the primary counter
is in the first double word. I've read the POM many times looking for any
references to quad-word consistency. It doesn't really matter because of the
way I design PLO compare and swaps but I was wondering if there was
quad-word consistency as well?

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On
Behalf Of Peter Relson
Sent: Wednesday, November 06, 2013 6:37 AM
To: [email protected]
Subject: Re: Serialization without Enque

One of the shortcomings of PLO (unlike TBEGIN(C) ) is that PLO in general
serializes only against other uses of PLO. It does not serialize against CS
on the same storage, for example.

However, cache considerations and doubleword consistency still come into
play.

A LM of 2 words of a doubleword is done with what is referred to as
"doubleword consistency". That matters. 
If you need to load two consecutive words and you can arrange that those two
words are in the same doubleword, it can be to your advantage.
It's why in a doubleword serialized by CDS you do not typically (if ever)
want to load both of the individual words consecutively (as you might get
results that come half from one CDS and half from another CDS); you want to
use LM.

Peter Relson
z/OS Core Technology Design

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

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

Reply via email to