Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
PGSTE
Control Block Contents
PGSTE DSECT
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 + (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 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 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: noformat 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) enoformat 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. 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
Last updated on 16 Oct 2001 at 07:35:35 EDT.
Copyright IBM Corporation, 1990, 2001