On 11/11/2013 10:36 AM, Kenneth Wilkerson wrote:
I read the article. This article is about transactional event facility
introduced in z/EC-12 and not PLO which is an LL/CS. I wish I had access to a
z/EC-12 with the transactional event facility to play with it and compare it to
PLO. The transactional event facility is much more comprehensive and not as
granular as a PLO. In PLO, the hardware locking occurs according to the lock
word.
Transaction Memory sounds exciting but it's complex. IBM should put a
layer of abstraction on top with simple semantics.
I've done a lot of testing with PLO. It can increase CPU, particularly in a
situation where updates are much higher percentage of the operations. But in
all applications that I've tested, it's CPU overhead is offset by higher
throughput. In a traditional locking method, tasks end up serializing to the
lock.
There are lots of lock-free algorithms out there that do very job just
using a simple CAS. RCU, hazard pointers to name but a few. Hazard
pointers are interesting in how they deal with ownership
http://www.research.ibm.com/people/m/michael/podc-2002.pdf (IBM patent
warning!).
PLO is a fine instruction. It makes it easy to implement lock-free
multi-producer multi-consumer stacks/queues. I'm interested
how would one use PLO to implement a fair reader/writer lock? I've seen
some interesting bakery style ticketing algorithms. They-re basically
spinlocks on steriods.
Kenneth
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of David Crayford
Sent: Sunday, November 10, 2013 6:50 PM
To: [email protected]
Subject: Re: Serialization without Enque
On 11/11/2013 5:19 AM, Mark Zelden wrote:
On Sat, 9 Nov 2013 19:47:35 GMT, [email protected] <[email protected]> wrote:
I have been reading and following this thread sine PLO is not an instruction I
use every day.
It would be nice if someone would actually post some working code using a PLO
instruction, to illustrate how one would add an element to a queue and remove
an element from a queue.
Paul D'Angelo
I've not been paying that close of attention, but I'm more curious
about what people did for these situations prior to PLO.
They used smart algorithms using the atomic instructions they had, like RCU
http://en.wikipedia.org/wiki/Read-copy-update. It's interesting that I have
never seen any use of the PLO instruction in the zLinux kernel code.
Paul McKenney, IBMs expert on these things, wrote a good article that suggests
that Hardware Transaction Memory may not be the panacea we all expect it to be,
and in some cases may actually increase CPU
http://paulmck.livejournal.com/31285.html.
Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
mailto:[email protected] ITIL v3 Foundation Certified Mark's MVS
Utilities: http://www.mzelden.com/mvsutil.html
Systems Programming expert at
http://search390.techtarget.com/ateExperts/
----------------------------------------------------------------------
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
----------------------------------------------------------------------
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