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