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
>

Reply via email to