|
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
PGMBK
Control Block Contents
PGMBK DSECT
Cross Reference (Contains links to field and bit definitions)
PGMBK Prolog
Name : HCPPGMBK
Description: Page Management Block
DSECT : PGMBK
Function : The page management block describes 1 megabyte
of virtual storage. It contains the page table,
the page status table, and the auxiliary storage
address table for the megabyte.
The PGMBK is a 4K aligned 4K block for ESA/390
mode. For ESAME mode, the PGMBK is a 4K aligned
8K block.
Located by : SEGENTRY field of HCPSEGTE
In ESA/390 mode, bits 1-25 of a valid
segment table (with 6 "0" bits appended
on the right) determine the 31 bit address
Page-Table Origin (bits 20-25 must be zero).
In ESAME mode, bits 0-28 (with 12 "0" bits
appended on the right) determine the 64
bit address Page-Table Origin (implying
that ESAME page tables must reside below
the 1 Terabyte (1024 Gigabyte) line.
FRMPTE THE FRAME TABLE ENTRY POINTS TO A PAGE TABLE
ENTRY WITHIN THE PAGE TABLE. THE PGMBK ADDRESS
CAN BE FOUND BY ZEROING THE DISPLACEMENT
OF THE PAGE TABLE ENTRY'S ADDRESS SINCE THE PAGE
TABLE IS LOCATED AT THE BEGINNING OF THE PGMBK.
CREATED BY : HCPBPBCU
HCPBPBIE
HCPBPBIM
HCPBPBSL
DELETED BY : HCPRCIRL
HCPRPBPA
HCPRPBPS
HCPRPBRM
HCPRPBSL
PGMBK Control Block Content
PGMBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure PGMBK Page Management Block
ESA/390 mode PGMBK format
0000 0 Signed 4 PGMPAGTB (256) PAGE TABLE-CONTAINS 256 4 BYTE
ENTRIES. EACH ENTRY IS USED TO
DESCRIBE 4K OF VIRTUAL STORAGE.
THE COMPLETE 256-ENTRY TABLE WILL
DESCRIBE 1 MEGABYTE OF GUEST
ABSOLUTE STORAGE, OR 1 MEGABYTE
OF SYSTEM STORAGE AREA. THE
ARCHITECTED DEFINITION OF ONE
ENTRY IS CONTAINED IN THE
HCPPAGTE COPY FILE.
00000004 PGMPTELN 4 LENGTH OF A PAGE TABLE ENTRY IN
THE PGMPAGTB (IN BYTES)
00000004 PGMPTBP1 PGMPAGTB+PGMPTELN OFFSET OF THE
2ND ENTRY IN THE PAGTB, USED FOR
AN MVC TO COPY THE FIRST ENTRY
THRU THE REST OF THE FIRST
QUARTER OF THE PAGTB
00000100 PGMPTBP2 PGMPAGTB+PGMPTELN*64 THE SECOND
QUARTER OF THE PAGTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000200 PGMPTBP3 PGMPAGTB+PGMPTELN*128 THE THIRD
QUARTER OF THE PAGTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000300 PGMPTBP4 PGMPAGTB+PGMPTELN*192 THE FOURTH
QUARTER OF THE PAGTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000000 PGMOFPAG PGMPAGTB-PGMBK OFFSET OF PAGTB IN
PGMBK
0400 1024 Signed 4 PGMPGSTB (256) PAGE STATUS TABLE. 256 ENTRIES, 4
BYTES IN EACH ENTRY. EACH ENTRY
DESCRIBES THE STATUS OF THE
VIRTUAL STORAGE. THE DEFINITION
OF ONE ENTRY IS CONTAINED IN THE
HCPPGSTE COPY FILE.
00000004 PGMPGSLN 4 LENGTH OF A PAGE STATUS TABLE
ENTRY IN THE PGMPAGTB (IN BYTES)
00000404 PGMPSTP1 PGMPGSTB+PGMPGSLN OFFSET OF THE
2ND ENTRY IN THE PGSTB, USED FOR
AN MVC TO COPY THE FIRST ENTRY
THRU THE REST OF THE FIRST
QUARTER OF THE PGSTB
00000500 PGMPSTP2 PGMPGSTB+PGMPGSLN*64 THE SECOND
QUARTER OF THE PGSTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000600 PGMPSTP3 PGMPGSTB+PGMPGSLN*128 THE THIRD
QUARTER OF THE PAGTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000700 PGMPSTP4 PGMPGSTB+PGMPGSLN*192 THE FOURTH
QUARTER OF THE PGSTB STARTS AT
THIS OFFSET INTO THE PGMBK
00000400 PGMOFPGS PGMPGSTB-PGMBK OFFSET OF PGSTB IN
PGMBK
0800 2048 Signed 4 PGMASATB (256) AUXILIARY STORAGE ADDRESS TABLE.
256 ENTRIES, 4 BYTES IN EACH
ENTRY. EACH ENTRY IS THE LOCATION
ON AUXILIARY STORAGE WHERE THE
VIRTUAL STORAGE IS BACKED UP. THE
DEFINITION OF ONE ENTRY IS
CONTAINED IN THE HCPASATE COPY
FILE.
00000800 PGMOFASA PGMASATB-PGMBK OFFSET OF ASATB IN
PGMBK
00000800 PGMPABSZ *-PGMPGSTB SIZE OF PGSTB AND
ASATB IN BYTES
0C00 3072 Bitstring 32 PGMPRBNM BIT MAP TO INDICATE IF THE ASA IS
A POOL-RELATIVE-BLOCK-NUMBER. IF
THE BIT IS ONE THEN THE ASA IS A
PRBN. THERE ARE 256 ASAs.
0C20 3104 Signed 4 PGMVM VMDBK ADDRESS OF PGMBK OWNER (OR
SNTBK ADDRESS FOR A SHARED
SEGMENT OR SYSTEM OR DUMMY VMDBK
FOR AN ADDRESS SPACE)
0C24 3108 Signed 4 PGMUVIRT VIRTUAL ADDRESS OF STORAGE
DESCRIBED BY THIS BLOCK
0C28 3112 Signed 4 PGMMIGCT COUNT OF PAGES CURRENTLY BEING
MIGRATED FROM XSTORE TO DASD
0C2C 3116 Address 4 PGMDEFAN DEFERRED PAGE TRANSLATIONS QUEUE
ANCHOR (POINTS TO CPEBK OR 0)
0C30 3120 Signed 4 PGMBKLK PGMBK multiple PTE serialization
lock. This lock must be held when
obtaining or releasing page
serialization for multiple PTEs
to prevent deadlocks. It also
serializes the PGMBK page
serialization deferral queue
based at PGMDEFAN. It contains 0
when the lock is available, or
the address of the CS loop that
obtained the lock in the routine
that currently holds the lock.
Note that PGMBKLK does NOT serialize the PGMBK itself in any way. The
high order halfword of the PGMFRMCT field is used (via the HCPLKPGM and
HCPULPGM macros) to lock the PGMBK itself into storage.
0C34 3124 Signed 4 PGMSNTCT COUNT OF USERS SHARING THIS
MEGABYTE
0C38 3128 Bitstring 1 PGMSTAT STATUS INDICATORS
1... .... PGMSVSEG X'80' PGMBK REPRESENTS STORAGE
FOR A SAVED SEGMENT
.1.. .... PGMIGRTE X'40' PGMBK WAS PAGED IN DURING
XSTORE MIGRATION
0C39 3129 Bitstring 1 * RESERVED FOR FUTURE IBM USE
0C3A 3130 Signed 2 PGMEPOCH Epoch for this PGMBK. The time
stamps in this PGMBK have been
adjusted to this epoch.
0C3C 3132 Signed 4 PGMXSTCT COUNT OF XSTORE PTE'S
0C40 3136 Signed 4 PGMALTPT Pointer to the alternate PGMBK
which contains the source
alternate PTEs for any target
alternate PTEs (with PGSALTPT
set) in this PGMBK.
0C44 3140 Address 4 PGMASCBK ASCBK ADDRESS.
0C48 3144 Signed 4 PGMFRMCT Frames in use count in low-order
halfword and PGMBK lock count in
high-order halfword. Update
counts using Compare and Swap
logic.
0C4C 3148 Address 4 PGMMPEBK ADDRESS OF THE MINIDISK POOL
EXTENT BLOCK FOR CONVERTING AN
ASA INTO A CCHHR.
The following two fields are covered by the VMDUFOLK. They are used for
sorting FRMTEs during steal.
0C50 3152 Address 4 PGMNXPGM ADDRESS OF THE NEXT PGMBK IN THE
'SORT' PGMBK LIST. X'00000000'-
IF THE PGMBK DOESN'T RESIDES ON
THE LIST, X'FFFFFFFF' TERMINATES
THE LIST.
0C54 3156 Address 4 PGMLTFRM POINTS TO THE LAST FRMTE CHAINED
FOR THIS PGMBK.
0C58 3160 Signed 4 * RESERVED FOR IBM USE.
0C5C 3164 Signed 4 PGMPA4EX Virtual Free Storage Manager
virtual address of saved copy of
the original PGSTB/ASATB for this
megabyte - only used in NSS/DCSS
saved segment STLBK PGMBKs for
megabytes which contain shared
writeable pages. The saved ASATEs
point to the original spool
slots, so that original shared
writeable page contents can be
provided for non-shared loads.
Must be zero in normal user
PGMBKs or STLBK PGMBKs which do
not contain any shared writeable
pages.
0C60 3168 Signed 8 PGMSITOD TOD CLOCK VALUE AT WHICH THE
SEGTE FOR THIS PAGEABLE PGMBK WAS
INVALIDATED.
0C68 3176 Signed 4 PGMMTARG MIGRATE TARGET LAST USED AGAINST
THIS PGMBK
0C6C 3180 Signed 4 PGMSEGTE Address of the STE associated
with this PGMBK (valid only for
"live" PGMBKs associated with
attached STEs; may be zero
otherwise). In pageable PGMBKs,
is only reliable if the PGMBK is
resident and attached to the STE
and at least a share of VMDPTIL
is held or if serialization
(VMDPTIL and/or PTRM PTE PCL) has
been held continuously since the
STE was invalidated (to keep the
segment table from being moved).
Must be set to the current STE
address whenever the STE is
validated, and must be relocated
for any valid STEs and/or valid
PTRM PTEs whenever a segment
table is moved.
0C70 3184 Signed 4 PGMPTLNG Page table length field for this
PGMBK, in SEGTE SEGPTLNG format
(SEGPTLNG value in bits 28-31,
all other PGMPTLNG bits are 0).
Used to restore the SEGPTLNG
field value when validating or
clearing the SEGTE. STEPTLNG bits
are redefined as status bits when
the PGMBK is paged out (the STE
is invalid with SEGINVAL=1 and
also contains a PTRM "virtual
address"). Valid only when
PGMSEGTE is non- zero, indicating
that the PGMBK is associated with
an attached SEGTE.
0C74 3188 Signed 4 * (99) Reserved for IBM use
0E00 3584 Signed 2 PGMAUXTB (256) AUXILIARY TABLE. CONTAINS 256 HW
TIME STAMP ENTRIES THAT
CORRESPOND TO THE TIME THE PAGE
WAS MOVED TO XSTORE.
00001000 PGMBKLEN (*-PGMBK) SIZE OF PGM BLOCK IN
BYTES
00000200 PGMBKSIZ (*-PGMBK+7)/8 SIZE OF PGM BLOCK
IN DOUBLEWORDS
The following macro invocation ensures the length of the PGMBK is
exactly 4096 bytes (one 4K page). (GIVES ASSEMBLY ERROR IF NOT A
FULL-PAGE LENGTH)
PGMBK Storage Layout
*** PGMBK - Page Management Block
*
* +-------------------------------------------------------+
* 0 | |
* = PGMPAGTB =
* | |
* +-------------------------------------------------------+
* 400 | |
* = PGMPGSTB =
* | |
* +-------------------------------------------------------+
* 800 | |
* = PGMASATB =
* | |
* +-------------------------------------------------------+
* C00 | |
* = PGMPRBNM =
* | |
* +---------------------------+---------------------------+
* C20 | PGMVM | PGMUVIRT |
* +---------------------------+---------------------------+
* C28 | PGMMIGCT | PGMDEFAN |
* +---------------------------+---------------------------+
* C30 | PGMBKLK | PGMSNTCT |
* +------+------+-------------+---------------------------+
* C38 |:STAT |//////| PGMEPOCH | PGMXSTCT |
* +------+------+-------------+---------------------------+
* C40 | PGMALTPT | PGMASCBK |
* +---------------------------+---------------------------+
* C48 | PGMFRMCT | PGMMPEBK |
* +---------------------------+---------------------------+
* C50 | PGMNXPGM | PGMLTFRM |
* +---------------------------+---------------------------+
* C58 |///////////////////////////| PGMPA4EX |
* +---------------------------+---------------------------+
* C60 | PGMSITOD |
* +---------------------------+---------------------------+
* C68 | PGMMTARG | PGMSEGTE |
* +---------------------------+---------------------------+
* C70 | PGMPTLNG |///////////////////////////|
* +---------------------------+///////////////////////////|
* C78 |///////////////////////////////////////////////////////|
* =///////////////////////////////////////////////////////=
* |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
* E00 | |
* = PGMAUXTB =
* | |
* +-------------------------------------------------------+
*1000
*
*** PGMBK - Page Management Block
PGMBK Cross Reference
Symbol Dspl Value -------------- ---- ----- PGMALTPT 0C40 PGMASATB 0800 PGMASCBK 0C44 PGMAUXTB 0E00 PGMBKLEN 0E00 00001000 PGMBKLK 0C30 PGMBKSIZ 0E00 00000200 PGMDEFAN 0C2C PGMEPOCH 0C3A PGMFRMCT 0C48 PGMIGRTE 0C38 40 PGMLTFRM 0C54 PGMMIGCT 0C28 PGMMPEBK 0C4C PGMMTARG 0C68 PGMNXPGM 0C50 PGMOFASA 0800 00000800 PGMOFPAG 0000 00000000 PGMOFPGS 0400 00000400 PGMPABSZ 0800 00000800 PGMPAGTB 0000 PGMPA4EX 0C5C PGMPGSLN 0400 00000004 PGMPGSTB 0400 PGMPRBNM 0C00 PGMPSTP1 0400 00000404 PGMPSTP2 0400 00000500 PGMPSTP3 0400 00000600 PGMPSTP4 0400 00000700 PGMPTBP1 0000 00000004 PGMPTBP2 0000 00000100 PGMPTBP3 0000 00000200 PGMPTBP4 0000 00000300 PGMPTELN 0000 00000004 PGMPTLNG 0C70 PGMSEGTE 0C6C PGMSITOD 0C60 PGMSNTCT 0C34 PGMSTAT 0C38 PGMSVSEG 0C38 80 PGMUVIRT 0C24 PGMVM 0C20 PGMXSTCT 0C3C
Last updated on 5 Jun 2001 at 16:11:32 EDT.
Copyright IBM Corporation, 1990, 2001