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

Reply via email to