Like Transactional execution (TBEGIN/TEND/...) with z12, which I think of as PLO unwrapped.
On 2019-07-30 1:32 p.m., Charles Mills wrote: > FSVO "new" <g>CharlesSent from a mobile; please excuse the brevity. > Gary Weinhold Senior Application Architect DATAKINETICS | Data Performance & Optimization Phone:+1.613.523.5500 x216 Email: [email protected] Visit us online at www.DKL.com E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system. -------- Original message --------From: Paul Gilmartin <[email protected]> Date: 7/30/19 12:39 PM (GMT-05:00) To: [email protected] Subject: Re: Circular Queue Handling in Assembler On 2019-07-30, at 10:19:34, Gary Weinhold wrote:> > After loading the new index value, check if it's 256. If so, do a> compare and swap for 255 to 0; if another process beat you to it, CS> fails and you have to reload the index value you now want (like 0 to 1),> just like you would if compare and swap fails. The check for new index> = 255 has to be done in every loop.> > Or, it more be more efficient to do as was suggested in another answer:> after loading the new index value, aNd the register with '000000FF'.> > This may not be sufficient to protect the data being maintained in the> circular queue. If my instance acquires index 42, for example, with the> above CS logic, there may be nothing to ensure that my instance actually> get the CPU cycles to move data to the associated 64-bit address before> the index is cycled by higher priority processes and some other instance> acquires index 42.> +1... if the producer does the CS first, there's no hazard two instances'acquiring "42"; rather the hazard is that a consumer will fetch the databefore the producer finishes moving it in.Surely, the problem of managing a FIFO queue, whether with a circularbuffer or otherwise, has been posed and solved numerous times. Theremust be a published solution available.Are there new z Series instructions to facilitate this? Perhaps PLO?-- gil
