Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

PGMBK

Prolog  

Control Block Contents  
   PGMBK DSECT

Storage Layout  

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/SEGGENTR 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-52 (with 11 "0" bits
              appended on the right) determine the 64
              bit address Page-Table Origin.  Note that
              in the 64-bit image of CP this PTO is NOT
              the address of the PGMBK itself.
              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 in the same page as the
              PGMBK.
 CREATED BY : HCPBPBCU
              HCPBPBIE
              HCPBPBIM
              HCPBPBSL
              and their clones
 DELETED BY : HCPRCIRL
              HCPRPBPA
              HCPRPBPS
              HCPRPBRM
              HCPRPBSL
              and their clones

 

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 serialized by the available list
     replenishment demand scan lock, and are used to sort outbound FRMTEs
     for NSS/DCSS shared segment pages by segment (virtual address
     megabyte). They are not used for other types of pages (normal user page
     FRMTEs and VDISK FRMTEs are sorted by address space, but not megabyte,
     other non-blocked page FRMTEs are not sorted at all).
0C50 3152 Address      4 PGMNXPGM       Address of the next PGMBK in the
                                        steal sort PGMBK list. Contains
                                        x'00000000' if the PGMBK is not
                                        yet on the list, x'FFFFFFFF' if
                                        the PGMBK is last on the list.
                                        Used only when processing
                                        NSS/DCSS shared segment FRMTEs.
0C54 3156 Address      4 PGMLTFRM       Points to the last FRMTE so far
                                        chained (sorted) for this PGMBK.
                                        Used only when processing
                                        NSS/DCSS shared segment FRMTEs.
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

This information is based on z/VM V4R2.0. Last updated on 18 Oct 2001 at 08:32:17 EDT.
Copyright IBM Corporation, 1990, 2001