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

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 + (PAGE OFFSET * 4)
              VPGPGSTE IN A VPGBK USING A PAGTE ADDRESS
              A PAGE STATUS TABLE RESIDES IN A
              PAGE MANAGEMENT BLOCK ASSOCIATED WITH A MEGABYTE
              OF VIRTUAL STORAGE AND IS POINTED TO BY PGMPGSTB.
              THERE ARE 256 CONTIGUOUS PAGE STATUS TABLE
              ENTRIES (PGSTE'S) CONTAINED IN THE PGMPGSTB.
              ANY SPECIFIC PGS TABLE ENTRY CAN BE OBTAINED BY
              EXTRACTING THE PAGE NUMBER (BITS 12-19) FROM A
              VIRTUAL ADDRESS MULTIPLYING THE PAGE NUMBER TIMES 4
              AND ADDING THE OFFSET OBTAINED TO PGMPGSTB.
              ALSO, USING THE ADDRESS OF A PAGTE AS THE ADDRESS
              OF A VPGBK THE CORRESPONDING PGSTE CAN BE FOUND
              BY ADDRESSING FIELD VPGPGSTE IN THE VPGBK.
 CREATED BY : HCPBPBCU
              HCPBPBIE
              HCPBPBIM
              HCPBPBSL
              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
              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
     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.
0003    3 Bitstring    1 PGSSTAT        VIRTUAL PAGE STATUS BITS
          1... ....      PGSALTPT       X'80' This PTE is part of an
                                        alternate PTE structure.
          .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 V3R1.0.
Last updated on 15 Oct 2001 at 16:28:28 EDT.
Copyright IBM Corporation, 1990, 2001