Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

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
 STATUS     : VM/ESA Version 2, Release 3.0
 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 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 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 0002 2 Bitstring 1 PGSFLAG VIRTUAL PAGE FLAGS 1... .... PGSINVAL X'80' No auxiliary storage assigned 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) * Any resident page in this state is assumed to be * unchanged zeros, and therefore simply discardable * by steal. No page with non-zero contents should * ever be allowed to be in this state, or a lost page * will eventually result. The host change bit, * PGSRCPHC, should be used to indicate that a page * which is unchanged, not already on DASD, and * non-zero, must be eventually written to DASD. * 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. .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 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          |                           |
*     +---------------------------+                           |
*   8 |                                                       |
*     =                       PGSNEXT                         =
*     |                                                       |
*     +-------------------------------------------------------+
*
*** 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

(contains links to field and bit definitions)
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


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 13:46:55 EDT.
Copyright IBM Corporation, 1990, 1999