Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

PGSTE

Prolog  

Control Block Contents  
   PGSTE DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


PGSTE Prolog

 NAME       : HCPPGSTE
 DESCRIPTION: PAGE STATUS TABLE ENTRY
 DSECT      : PGSTE
 FUNCTION   : THE PGSTE DESCRIBES VARIOUS TYPES OF
              STATUS OF ONE PAGE OF VIRTUAL STORAGE.
 LOCATED BY : PGMPGSTB  Field of HCPPGMBK + ESA/390 PTE offset
              PGMGPSTB  Field of HCPPGMBK + ESAME PTE offset
              VPGPGSTE  in a VPGBK using an ESA/390 PTE address
              VPGGPGST  in a VPG64 using an ESAME PTE address
              A PAGE STATUS TABLE RESIDES IN A
              PAGE MANAGEMENT BLOCK ASSOCIATED WITH A MEGABYTE
              of virtual storage and is address by label PGMPGSTB
              (390 build) or PGMGPSTB (ESMAE build).
              THERE ARE 256 CONTIGUOUS PAGE STATUS TABLE
              entries (PGSTEs) contained in the PGMBK.
              ANY SPECIFIC PGS TABLE ENTRY CAN BE OBTAINED BY
              extracting the page number from a virtual address,
              multiplying it by the length of a PTE, and adding
              this offset to the start of the page status table.
              ALSO, USING THE ADDRESS OF A PAGTE AS THE ADDRESS
              OF A VPGBK THE CORRESPONDING PGSTE CAN BE FOUND
              by addressing field VPGPGSTE/VPGGPGST in the VPGBK.
 CREATED BY : HCPBPBCU
              HCPBPBIE
              HCPBPBIM
              HCPBPBSL
              and their clones
              A PAGE STATUS TABLE IS IMBEDDED IN A PAGE
              MANAGEMENT BLOCK AND CONSEQUENTLY SPACE
              IS CREATED FOR IT WHEN THE PGMBK IS CREATED.
 DELETED BY : HCPRCIRL
              HCPRPBPA
              HCPRPBPS
              HCPRPBRM
              HCPRPBSL
              and their clones
              A PAGE STATUS TABLE IS DELETED WHEN
              A PAGE MANAGEMENT BLOCK IS RELEASED.

 

PGSTE Control Block Content


PGSTE DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      PGSTE          PAGE STATUS TABLE ENTRY
0000    0 Signed       4 PGSENTRY       VIRTUAL PAGE STATUS ENTRY
          00000004       PGSLENTH       *-PGSENTRY LENGTH OF ONE STATUS
                                        TABLE ENTRY
0004    4 Signed       4 PGSNEXT (0)    NEXT PAGE STATUS TABLE ENTRY
0000    0 Bitstring    1 PGSVKEY        GUEST STORAGE KEY BITS 0-4
          1111 ....      PGSVKACC       X'F0' Access-control key value
          .... 1...      PGSVKFET       X'08' Fetch-protection control
          1111 1...      PGSVKACF       PGSVKACC+PGSVKFET Acc-ctrl &
                                        fetch-prot bits
     PGSPCL IS USED FOR PAGE SERIALIZATION. THIS BIT (AND THEREFORE PAGE
     SERIALIZATION) MAY ONLY BE OBTAINED THROUGH THE USE OF THE PAGE
     SERIALIZATION MACROS.
     NOTE THAT THE PAGE CONTROL LOCK AND THE RCP INTERLOCK BIT ARE ONE IN
     THE SAME IF THE STORAGE KEY ASSIST IS BEING UTILIZED.
     THE BITS PGSERROR AND PGSTRANS ARE MODIFIERS TO THE PAGE CONTROL LOCK.
     THE FOLLOWING TABLE IDENTIFIES THE MEANING OF THE STATE OF THE PAGE
     CONTROL LOCK AND IT'S MODIFIERS:
 PGSPCL  PGSTRANS PGSERROR
     0 0 0 LOCK AVAILABLE
     0 0 1 INVALID
     0 1 0 INVALID
     0 1 1 INVALID
     1 0 0 LOCK HELD FOR SHORT PERIOD, SPIN OR SKIP
     1 0 1 PAGE IN ERROR, ONLY 'RELEASE' CAN MANIPULATE THE PAGE
     1 1 0 LOCK HELD FOR LONG PERIOD, SKIP OR DEFER, WILL BE REDRIVEN WHEN
     LOCK IS MADE AVAILABLE
     1 1 1 INVALID
0001    1 Bitstring    1 PGSRCP         ARCHITECTED AREA FOR RCP BYTE IF
                                        THE STORAGE KEY ASSIST IS BEING
                                        UTILIZED, OR THE PAGE BELONGS TO
                                        THE SYSTEM
          1... ....      PGSPCL         X'80' PAGE CONTROL LOCK
          .1.. ....      PGSRCPHR       X'40' HOST BACKUP REFERENCE BIT
                                        USED FOR SYSTEM PAGES
          ..1. ....      PGSRCPHC       X'20' HOST BACKUP CHANGE BIT USED
                                        FOR SYSTEM PAGES
          .11. ....      PGSHOST        PGSRCPHR+PGSRCPHC MASK FOR HOST
                                        BITS
          .... .1..      PGSGREF        X'04' GUEST BACKUP REFERENCE BIT
          .... ..1.      PGSGCH         X'02' GUEST BACKUP CHANGE BIT
          .... .11.      PGSGUEST       PGSGREF+PGSGCH MASK FOR GUEST
                                        BITS
          1... ....      RCPLOCK        X'80' RCP LOCK HELD
          .1.. ....      RCPHREF        X'40' HOST BACKUP REFERENCE BIT
          ..1. ....      RCPHCH         X'20' HOST BACKUP CHANGE BIT
          .11. ....      RCPHOST        RCPHREF+RCPHCH MASK FOR HOST BITS
          .... .1..      RCPGREF        X'04' GUEST BACKUP REFERENCE BIT
          .... ..1.      RCPGCH         X'02' GUEST BACKUP CHANGE BIT
          .... .11.      RCPGUEST       RCPGREF+RCPGCH MASK FOR GUEST
                                        BITS
     Notes : PGSINVAL, in combination with other PTE, PGSTE, and storage key
     status bits, is used by steal processing to identify first time
     reference pages of zeros which have never been re-referenced or changed
     and can simply be discarded. The "first time reference page of zeros"
     state is identified by the following bit combination:
         PTE:
           PAGINVAL=0  (page is valid and resident)
         PGSTE:
           PGSINVAL=1  (no DASD slot assigned)
           PGSRCPHR=0  (unreferenced)
           PGSRCPHC=0  (unchanged)
         Real frame storage key:
           Reference=0 (unreferenced)
           Change   =0 (unchanged)
     * Note that both reference bits (PGSRCPHR and the real storage frame
     reference bit) can "evaporate" to zero over time due to the action of
     the reorder function. Therefore, the fact that a frame has been
     referenced, or setting PGSRCPHR on, can not prevent a page from
     eventually entering this "first time reference page of zeros" state.
0002    2 Bitstring    1 PGSFLAG        VIRTUAL PAGE FLAGS
          1... ....      PGSINVAL       X'80' No auxiliary storage
                                        assigned
          .1.. ....      PGSSHARE       X'40' PAGE IS A SHARED PAGE
          ..1. ....      PGS1READ       X'20' ASA MAY BE READ ONLY ONCE.
                                        USED FOR SHARED PAGES. AFTER THE
                                        FIRST READ, THIS SDF (SYSTEM DATA
                                        FILE) ASA IS TO BE IGNORED AND
                                        THE PAGE LEFT AS CHANGED. WHEN
                                        THE PAGE IS FIRST WRITTEN, IT
                                        WILL GO TO A PAGING SPACE ASA AND
                                        THIS FLAG WILL BE TURNED OFF.
                                        PGS1READ ON IMPLIES THAT PAGE IS
                                        READ ONLY FOR THE USER.
          ...1 ....      PGSALLOC       X'10' PAGE IN THE SYSTEM ADDRESS
                                        SPACE (OR A SYSTEM OWNED UTILITY
                                        ADDRESS SPACE) THAT IS ALLOCATED,
                                        OR A SHARED CP PAGE IN THE
                                        MONITOR DCSS THAT CP HAS
                                        TRANSLATED AND THAT HAS NOT YET
                                        BEEN RELEASED BY THE USER
                                        CONNECTED TO THE DCSS. WHEN THIS
                                        BIT IS ON: 1) THE PAGE IS NEVER
                                        PART OF A DASD BLOCK; 2) THE
                                        ASSOCIATED PGMBK IS NEVER PAGED
                                        OUT.
          .... 1...      PGSFIXED       X'08' STORAGE SLOT PERMANENTLY
                                        ASSIGNED
          .... .11.      PGSXSREP       X'06' MASK FOR THE TWO BITS OF
                                        THE XSTORE BLOCK NUMBER THAT ARE
                                        KEPT IN THE PGSTE INSTEAD OF THE
                                        PAGTE. (THE PAGTE ALWAYS CONTAINS
                                        THE TRUE INVALID AND PAGE PROTECT
                                        BITS.)
          .... ...1      PGSREADO       X'01' STORAGE SLOT (DASD) IS READ
                                        ONLY
0003    3 Bitstring    1 PGSSTAT        VIRTUAL PAGE STATUS BITS
          1... ....      PGSALTPT       X'80' This PTE is part of an
                                        alternate PTE structure. Notes :
                                        PGSALTPT indicates that the PTE
                                        is part of an alternate PTE
                                        structure, either as an as yet
                                        unresolved invalid "target"
                                        alternate PTE imbedded in a
                                        user's address space, or as the
                                        "source" page alternate PTE owned
                                        by an NSS/DCSS STLBK. If PGSALTPT
                                        is set in a PTE which is imbedded
                                        in a user's address space and
                                        which is otherwise in the "never
                                        referenced page of zeros" state
                                        (the page is not valid in real
                                        storage or in xstore or on DASD,
                                        PAGINVAL=1, PGSXSTOR=0,
                                        PGSINVAL=1), then it is an
                                        unresolved "target" alternate
                                        PTE, and the source page is
                                        defined by the corresponding
                                        source alternate PTE residing at
                                        the same offset in the source
                                        alternate PGMBK pointed to by
                                        PGMALTPT. If PGSALTPT is set in a
                                        PTE which is owned by an STLBK,
                                        and which is either valid in real
                                        storage or resides in xstore or
                                        on DASD (any of: PAGINVAL=0, or
                                        PAGINVAL=1 and PGSXSTOR=1, or
                                        PAGINVAL=1 and PGSXSTOR=0 and
                                        PGSINVAL=0), then it is a source
                                        alternate PTE, from which the
                                        page contents may be logically
                                        copied to target alternate PTEs
                                        (which are then "unhooked" and
                                        have their PGSALTPT bit set off).
                                        The PGMALTPT field is not set in
                                        source alternate PGMBKs. Also, in
                                        source alternate PGMBKs, the
                                        PGSALTPT bit is only set for
                                        pages for which data was saved;
                                        if it is not set in a particular
                                        source PTE, then no data was
                                        saved for that page, and the page
                                        is logically in the "never
                                        referenced page of zeros" stage.
                                        Therefore, PGSALTPT in source
                                        PTEs can be used to determine if
                                        data was saved for that page.
          .1.. ....      PGSTRANS       X'40' PAGE IS SERIALIZED IN LONG
                                        TERM
          ...1 ....      PGSVMSLK       X'10' VIRTUAL MACHINE STORAGE
                                        LOCK MODE
          .... 1...      PGSXSTOR       X'08' PAGE IS IN XSTORE - THE
                                        BLOCK NUMBER IS IN THE PAGTE WITH
                                        BITS 21 & 22 REPLACED WITH THOSE
                                        BITS FROM THE PGSTE (PGSXSREP)
          .... .1..      PGSBLOCK       X'04' THIS PAGE IS ONE PAGE IN A
                                        BLOCK OF PAGES
          .... ..1.      PGSRABI        X'02' This page was read in as
                                        part of a block of pages. This
                                        bit can NOT be checked for PTRM
                                        pages, as it is redefined as
                                        PGSXSTMB in that case.
          .... ...1      PGSERROR       X'01' PAGE IS IN ERROR. A STORAGE
                                        ERROR WAS DETECTED IN THIS PAGE
                                        AND THE page could not be
                                        recovered. When this bit is set,
                                        VMDRSSFG.VMDRSSUE must be set in
                                        the VMDBK that owns the space.
0003    3 Bitstring    1 PGSPSTAT       PAGEABLE PGMBK VIRTUAL PAGE
                                        STATUS BITS.
          .... ..1.      PGSXSTMB       X'02' This page (a pageable
                                        PGMBK) itself supports pages in
                                        XSTORE. This bit is only used for
                                        PTRM pages that currently reside
                                        in XSTORE (PGSXSTOR must also be
                                        on if PGSXSTMB is on). Note that
                                        this bit is a redefinition of the
                                        PGSRABI bit, which is acceptable
                                        since pageable PGMBKs (PTRM
                                        pages) are never blocked. .* .*

 

PGSTE Storage Layout

          
*** PGSTE - PAGE STATUS TABLE ENTRY
*
*     +---------------------------+
*   0 |         PGSENTRY          |
*     +---------------------------+
*
*** PGSTE - PAGE STATUS TABLE ENTRY
          
*** Overlay for PGSENTRY in PGSTE
*
*     +------+------+------+------+
*   0 |:VKEY |PGSRCP|:FLAG |:STAT | 4
*     +------+------+------+------+
*
*** Overlay for PGSENTRY in PGSTE
          
*** Overlay for PGSSTAT in PGSTE
*
*                          +------+
*   0 ...                3 |:PSTAT| 4
*                          +------+
*
*** Overlay for PGSSTAT in PGSTE

 

PGSTE Cross Reference

Symbol         Dspl Value
-------------- ---- -----
PGSALLOC       0002 10
PGSALTPT       0003 80
PGSBLOCK       0003 04
PGSENTRY       0000
PGSERROR       0003 01
PGSFIXED       0002 08
PGSFLAG        0002
PGSGCH         0001 02
PGSGREF        0001 04
PGSGUEST       0001 06
PGSHOST        0001 60
PGSINVAL       0002 80
PGSLENTH       0000 00000004
PGSNEXT        0004
PGSPCL         0001 80
PGSPSTAT       0003
PGSRABI        0003 02
PGSRCP         0001
PGSRCPHC       0001 20
PGSRCPHR       0001 40
PGSREADO       0002 01
PGSSHARE       0002 40
PGSSTAT        0003
PGSTRANS       0003 40
PGSVKACC       0000 F0
PGSVKACF       0000 F8
PGSVKEY        0000
PGSVKFET       0000 08
PGSVMSLK       0003 10
PGSXSREP       0002 06
PGSXSTMB       0003 02
PGSXSTOR       0003 08
PGS1READ       0002 20
RCPGCH         0001 02
RCPGREF        0001 04
RCPGUEST       0001 06
RCPHCH         0001 20
RCPHOST        0001 60
RCPHREF        0001 40
RCPLOCK        0001 80

This information is based on z/VM V4R2.0. Last updated on 18 Oct 2001 at 09:26:21 EDT.
Copyright IBM Corporation, 1990, 2001