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
     COPYRIGHT -
                  THIS MODULE IS "RESTRICTED MATERIALS OF IBM"
                  5739-A03 (C) COPYRIGHT IBM CORP. - 1985, 2001
                  LICENSED MATERIALS - PROPERTY OF IBM
     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 V4R3.0. Last updated on 30 Apr 2002 at 18:26:44 EDT.
Copyright IBM Corporation, 1990, 2002