On Mon, 17 Oct 2016 12:12:38 +0200, Christian Borntraeger wrote:
>As you already guessed, the memory you get is virtual, so the pages are not 
>consecutive. The LRA will give you the address of the first page, but the 2nd, 
>3rd and so on will be somewhere else. Please note that your code will even 
>cause random memory overwrites in your z/OS as the diag8 will write to the 
>real address of your LRA, the real address of your LRA+4096 and so on.
Ouch!  But can't physical pages nowadays be much larger than 4096 bytes?  Might
the real address be above the bar?  Does DIAG 8 support buffers above the bar?
Otherwise it would be prudent design for DIAG 8 to reject requests when the
reply buffer might cross physical page boundaries?

Do some OSes support allocation of contiguous pages?  I suppose V=R is
obsolete nowadays.

Hmmm... What happens if AMODE 31 code issues LRA and the real address
is above the bar?  Program check?  Or does LRA simply (always?) load a
64-bit register?  Is there an LRAG instruction?

-- gil

For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to