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. |
PGMBK
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. LOCATED BY : SEGENTRY FIELD OF HCPSEGTE (BITS 1 THROUGH 19) 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 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 SEGTE associated with this PGMBK (valid only for "live" PGMBKs associated with attached SEGTEs; may be zero otherwise). 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). 1000 4096 Address 4 * (0) N)))) IEV075 will result if PGMBKLEN NE 4096 @P3714FM (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
(contains links to field and bit definitions)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 3 Aug 1999 at 12:22:48 EDT.
Copyright IBM Corporation, 1990, 1999