On 10/17/2016 08:23 AM, Paul Schuster wrote:
> I am issuing DIAGNOSE 8 on my z/os image under VM (z/vm) to do a QUERY 
> VIRTUAL DASD.  It works—up to a certain point:
> The QUERY VIRTUAL DASD command returns (for me) 38617 (decimal) bytes, 
> according to the CC=0 after the DIAGNOSE 8 command.  My buffer is large 
> enough to accommodate this.  I have tried several different sub-pools of 
> storage.  I PGSER FIX the buffer pages.  I do a SYSEVENT DONTSWAP.  I do a 
> LRA of the virtual address of the start of the buffer.  The DIAGNOSE 
> completes CC=0. But, in my buffer, I am only seeing the first page (4095) 
> bytes of the output.  
> My question: I don’t see any documented restriction in the VM manuals that 
> limits the DIAGNOSE 8 output buffer to 4K (rather the limitation is the 
> architecture limit depending on your amode.) The z/vm manuals say the buffer 
> can cross page boundaries.  So is there a way to force the real storage 
> addresses of the page-fixed pages to be consecutive?  According to the 
> diagnose 8 doc., the buffer needs to be in guest-real storage, hence the LRA. 
>  And it is working for the first 4k page.
> Thank you for any insight you can provide. 

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.

I do not know if there is an interface to get consective real memory as I am 
not an Z/OS expert. 

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