I should have added that this is how it works in z/VM 5.2.0 and newer releases. z/VM 5.1.0 and older still use the old FRMTE based locking scheme, and there's no host logical / host real differentiation, so there 's only one check, FRMCPLOK.
- Bill Holder, z/VM Development, IBM On Fri, 12 Dec 2008 08:33:14 -0600, Bill Holder <hold...@us.ibm.com> wrot e: >Ok, here are the basic steps: > >- Locate the PTE and PGSTE >- If PGSCPLOK=1, the page is locked to real, and > if PGSPINCT=1, and PGSOVFLW and PGSOVFL1 are all 0, > then you're done. > > Otherwise, check if the page is (also or instead) > locked to logical: > >- If PGSALIAS=0 or PGSPINCT, PGSOVFL1 and PGSOVFLW are > all 0, then the page is not locked to logical. > > Otherwise, if PGSALIAS=1 and any of PGSPINCT, > PGSOVFL1 and PGSOVFLW are not 0, continue: > >- The valid PTE contains the frame address (PFRA) >- Convert the frame address to a FRMTE address > (see AEFRM MACRO for the conversion algorithm) >- Use FRMTE field FRMSXPN to generate the System > Execution Space (Host Logical) page address (tack > 8 0 bits on the right). >- Convert the SXS page address to the SXS Table Entry > (SXSTE) address (see SXSAE MACRO for the conversion > algorithm). >- If SXSCPLOK=1, the page is locked to logical. > >I hope that helps. If you're planning on running these structures >from "outside" of CP, say, from another virtual machine, note that >they're not completely serialized and actions by the target virtual >machine (such as reset, clear, and release functions) can cause >pages locked by command to be unlocked and the links between these >structures disconnected. > >- Bill Holder, z/VM Development, IBM >