On Sat, 2011-04-16 at 19:49 -0700, Edward Jaffe wrote:
> On 4/16/2011 6:28 PM, Binyamin Dissen wrote:
> > ... the basic advantage of the
> > PLO is that it avoids the need for locks with non-contiguous serialized 
> > areas
> > if the retry rate is low.
>
> Also, unlike CD[S], PLO allows for up to 'n' (model dependent) locked 
> operations
> to be performed simultaneously by different, unrelated units of work running 
> on
> the same machine.
>
> --
> Edward E Jaffe

Please forgive my ignorance, but I don't know what you mean by "n"
locked operations to per performed simultaneously. Do you mean that the
other three operations: TS, CS, and CDS cause all other CPs in a CEC to
stop processing instructions (at an instruction boundary, I would guess)
while they execute on the given CP? If so, then YUCK! For some reason I
thought that they simply "locked" access to the storage under
consideration and stopped other CPs if they tried to access that
particular real storage area, but if the other CPs were doing something
in another area of storage, that they continued to do normal processing.
Is this "stop other CPs in the CEC" what is meant when the PoPs says: "A
serialization function is performed before the operand is fetched and
again after the operation is completed."

And, having read the book again, I see where PLO is __NOT__ referenced
in the section on "interlocked update" and now understand why you can't
mix PLO updates with the CS/CDS/others. It even lists some other
instruction in that section, which I guess means that they can also be
used in a multitasking environment to do shared updates. Interesting. I
don't write code like this myself, being only a lowly sysprog with
delusions of competency.


--
John McKown
Maranatha! <><

Reply via email to