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

PGM64

Prolog  

Control Block Contents  
   PGM64 DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


 

PGM64 Control Block Content


PGM64 DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      PGM64          Page Management Block
0000    0 Bitstring    1 PGM64PG0 (4096)
                                        First page of PGMBK
1000 4096 Bitstring    1 PGM64PG1 (4096)
                                        Second page of PGMBK
          00002000       PGMGBKLN       (*-PGM64) Size of PGMBK in bytes
          00000400       PGMGBKSZ       (*-PGM64+7)/8 Size of PGMBK in
                                        DWs
0000    0 Dbl-Word     8 PGMGMISC (128) Miscellaneous PGMBK fields.
                                        Contains fields global to the
                                        entire PGMBK and/or the entire
                                        megabyte of virtual storage.
0400 1024 Signed       4 PGMGPAUX (256) Auxiliary page status table -
                                        contains 256 4 byte entries each
                                        corresponding to one
                                        PTE/PGSTE/ASATE set (VPGBK).
                                        Currently used to hold pin
                                        overflow counts. Each entry is
                                        mapped by PGAUX in HCPPGSTE COPY.
0800 2048 Dbl-Word     8 PGMGPGTB (256) Page-Table - contains 256 8 byte
                                        Page-Table Entries. Each entry is
                                        used to describe 4K of virtual
                                        storage. The complete 256 entry
                                        table describes 1 Megabyte of
                                        host virtual storage (whether
                                        guest or system owned). The
                                        architected definition of a
                                        Page-Table entry is contained in
                                        the HCPPAGTE COPY file.
          00000008       PGMGPTEL       8 Length of a z/Architecture
                                        Page- Table Entry (in bytes)
          0000F000       PGMPTEM        X'F000' NILL mask to isolate the
                                        PGMBK HRA given the PTE address
          0000000C       PGMPTES        12 SRL/SLL number of bits to
                                        shift to give the PGMBK address
          0000F800       PGMPTOM        X'F800' NILL mask to isolate the
                                        PTO HRA given the PTE address
          0000000B       PGMPTOS        11 SRL/SLL number of bits to
                                        shift to give the PTO address
          00000808       PGMGPTBP1      PGMGPGTB+PGMGPTEL Offset of the
                                        2nd entry in the PAGTB, used for
                                        an MVC to copy the first entry
                                        thru the rest of the first eighth
                                        of the PAGTB
          00000900       PGMGPTBP2      PGMGPGTB+PGMGPTEL*32 2nd eighth
                                        of the PAGTB
          00000A00       PGMGPTBP3      PGMGPGTB+PGMGPTEL*64 3rd eighth
                                        of the PAGTB
          00000B00       PGMGPTBP4      PGMGPGTB+PGMGPTEL*96 4th eighth
                                        of the PAGTB
          00000C00       PGMGPTBP5      PGMGPGTB+PGMGPTEL*128 5th eighth
                                        of the PAGTB
          00000D00       PGMGPTBP6      PGMGPGTB+PGMGPTEL*160 6th eighth
                                        of the PAGTB
          00000E00       PGMGPTBP7      PGMGPGTB+PGMGPTEL*192 7th eighth
                                        of the PAGTB
          00000F00       PGMGPTBP8      PGMGPGTB+PGMGPTEL*224 8th eighth
                                        of the PAGTB
1000 4096 Dbl-Word     8 PGMGPSTB (256) Page Status Table. 256 entries, 8
                                        bytes per entry. Each entry
                                        describes the status of one 4K
                                        page of host virtual storage. The
                                        definition of a Page Status Table
                                        entry is contained in the
                                        HCPPGSTE COPY file.
          00001000       PGMGPSTO       PGMGPSTB-PGM64 Offset of PGSTB in
                                        PGMBK
          00000008       PGMGPSTL       8 Length of a z/Architecture page
                                        status table entry (in bytes)
          00001008       PGMGPSTP1      PGMGPSTB+PGMGPSTL Offset of the
                                        2nd entry in the PGSTB, used for
                                        an MVC to copy the first entry
                                        thru the rest of the first eighth
                                        of the PGSTB
          00001100       PGMGPSTP2      PGMGPSTB+PGMGPSTL*32 2nd eighth
                                        of the PGSTB
          00001200       PGMGPSTP3      PGMGPSTB+PGMGPSTL*64 3rd eighth
                                        of the PGSTB
          00001300       PGMGPSTP4      PGMGPSTB+PGMGPSTL*96 4th eighth
                                        of the PGSTB
          00001400       PGMGPSTP5      PGMGPSTB+PGMGPSTL*128 5th eighth
                                        of the PGSTB
          00001500       PGMGPSTP6      PGMGPSTB+PGMGPSTL*160 6th eighth
                                        of the PGSTB
          00001600       PGMGPSTP7      PGMGPSTB+PGMGPSTL*192 7th eighth
                                        of the PGSTB
          00001700       PGMGPSTP8      PGMGPSTB+PGMGPSTL*224 8th eighth
                                        of the PGSTB
1800 6144 Dbl-Word     8 PGMGASAT (256) Auxiliary Storage Address Table.
                                        256 entries, 8 bytes per entry.
                                        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.
          00000008       PGMGASAL       8 Length of a z/Architecture ASA
                                        table entry (in bytes)
          00001800       PGMGASAO       PGMGASAT-PGM64 Offset of ASATB in
                                        PGMBK
          00001000       PGMGPABS       *-PGMGPSTB Size of PGSTB and
                                        ASATB in bytes
0000    0 Signed       4 PGMGVM         VMDBK address of PGMBK owner -
                                        SYSTEM VMDBK address for an
                                        NSS/DCSS shared segment PGBMBK,
                                        the SNTBK can be found via
                                        PGMGASCB-> ASCBK field
                                        ASCSNTBK. For exclusive imbedded
                                        NSS/DCSS segments, points to the
                                        user VMDBK.
0004    4 Signed       4 *              Reserved for IBM use
0008    8 Dbl-Word     8 PGMGVIRT       Virtual address of segment
                                        described by this block (contains
                                        Rx and Sx only)
0010   16 Signed       4 PGMGMIGP       Count of pages currently being
                                        migrated from xstore to DASD
0014   20 Address      4 PGMGDEFA       Deferred page translations queue
                                        anchor (points to CPEBK or 0).
                                        Serialized by PGMPDQLK
0018   24 Signed       4 PGMPDQLK       Page serialization deferral queue
                                        lock. Serializes the PGMBK page
                                        serialization deferral queue
                                        based at PGMGDEFA. Lock is
                                        obtained and released by HCPPTEDR
                                        and HCPPTERD as needed. HCPPGSER
                                        with IFHELD=MUSTHAVE invokes
                                        HCPPTEDR when deferring. HCPPGSER
                                        with REDRIVE=YES invokes HCPPTERD
                                        when redriving.
                                  Note that PGMPDQLK does NOT
                                  serialize the PGMBK itself in
                                  any way.  The high order
                                  halfword of the PGMGFRMC field
                                  is used (via the HCPLKPGM and
                                  HCPULPGM macros) to lock the
                                  PGMBK itself into storage.
001C   28 Signed       4 PGMGSNTU       Count of users sharing this NSS
                                        shared segment megabyte
0020   32 Bitstring    1 PGMGSTAT       Status indicators
          1... ....      PGMGSVSE       X'80' PGMGSVSE PGMBK represents
                                        storage for an NSS/DCSS saved
                                        segment. PGMGSVSE is set for all
                                        NSS/DCSS PGMBKs regardless of
                                        whether the segment is imbedded
                                        shared or exclusive.
          .1.. ....      PGMGIGRT       X'40' PGMGIGRT PGMBK WAS PAGED IN
                                        DURING XSTORE MIGRATION
          ..1. ....      PGMNOOWN       X'20' PGMNOOWN Indicates PGMBK is
                                        no-owned
0021   33 Bitstring    1 PGMVMQST       VMDPGMLS queue status, for
                                        pageable PGMBKs, serialized by
                                        the owning base VMDBK's VMDPGMLK
          1... ....      PGMVMDLS       X'80' PGMBK is on a VMDPGMLS
                                        queue
0022   34 Signed       2 *              Reserved for IBM use
0024   36 Signed       4 PGMGXSTC       Count of PTEs with pages in
                                        xstore
0028   40 Dbl-Word     8 PGMNOQFP       No-owned PGMBK queue forward
                                        pointer
0030   48 Dbl-Word     8 PGMNOQBP       No-owned PGMBK queue backward
                                        pointer
0038   56 Address      8 PGMGALTP       HRA of the alternate PGMBK which
                                        contains the source alternate
                                        PTEs for any target alternate
                                        PTEs (with PGSALTPT set) in this
                                        PGMBK.
0040   64 Signed       4 PGMNOLCK       No-owned processing lock. This
                                        lock is obtained via CS, but it
                                        is not a typical CS spin lock.
                                        The only task which can spin
                                        obtaining PGMNOLCK is the full
                                        segment release "make no-owned"
                                        processing in HCPHPCPR. Other
                                        places which obtain the lock may
                                        not spin, and must defer or skip
                                        any processing of resources in
                                        the PGMBK if the lock cannot be
                                        obtained without spinning.
0044   68 Signed       4 PGMGASCB       ASCBK address. For imbedded
                                        NSS/DCSS segments, points to the
                                        NSS/DCSS dummy ASCBK if the
                                        segment is loaded shared, but
                                        points to the user ASCBK if the
                                        segment is loaded exclusive
                                        (either defined as exclusive, or
                                        loaded exclusive via the LOADNSHR
                                        subcode).
0048   72 Signed       4 PGMGFRMC       Frames in use count in low-order
                                        halfword and PGMBK lock count in
                                        high-order halfword. Update
                                        counts using Compare and Swap
                                        logic.
004C   76 Signed       4 PGMGMPEB       Address of the Minidisk Pool
                                        Extent block for converting a
                                        PRBN ASA into 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).
0050   80 Address      8 PGMGNPGM       Address of the next PGMBK in the
                                        steal sort PGMBK list. Contains
                                        all 00s if the PGMBK is not yet
                                        on the list, all FFs if the PGMBK
                                        is last on the list. Used only
                                        when processing NSS/DCSS shared
                                        segment FRMTEs.
0058   88 Address      8 PGMLFRMG       Points to the last FRMTE so far
                                        chained (sorted) for this PGMBK.
                                        Used only when processing
                                        NSS/DCSS shared segment FRMTEs.
0060   96 Signed       4 PGMPSSQ        Queue for PTE sequential
                                        serialization (See HCPPSSPR for
                                        details.)
0064  100 Bitstring    1 PGMPSSQL       Spin lock for PGMPSSQ X'00' -
                                        Lock not held
0065  101 Bitstring    3 *              Reserved for IBM use.
0068  104 Signed       4 PGMGP4EX       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.
006C  108 Signed       4 PGMGMTAR       Migrate target age last used
                                        against this PGMBK
0070  112 Address      8 PGMGSTE        64-bit HRA 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.
                                  For imbedded NSS/DCSS segments,
                                  points to the NSS/DCSS STLTE if
                                  the segment is loaded shared,
                                  but points to the user segment
                                  table STE if the segment is
                                  loaded exclusive (either defined
                                  as exclusive, or loaded
                                  exclusive via the LOADNSHR
                                  subcode).
0078  120 Address      8 PGMGPPTE       Address of PTRM PTE when PGMBK is
                                        connected to a PTRM space.
0080  128 Dbl-Word     8 PGMCRTOD       TOD clock value at which this
                                        PGMBK was first created
0088  136 Dbl-Word     8 PGMSVTOD       TOD clock value at which the
                                        SEGTE for this pageable PGMBK was
                                        last validated. May differ from
                                        PGMPVTOD.
0090  144 Dbl-Word     8 PGMPVTOD       TOD clock value at which the PTRM
                                        PTE for this pageable PGMBK was
                                        last validated. May differ from
                                        PGMSVTOD.
0098  152 Dbl-Word     8 PGMSITOD       TOD clock value at which the
                                        SEGTE for this pageable PGMBK was
                                        invalidated (for either paging or
                                        release). Should always equal
                                        PGMPITOD.
00A0  160 Dbl-Word     8 PGMPITOD       TOD clock value at which the PTRM
                                        PTE for this pageable PGMBK was
                                        last invalidated. Should always
                                        equal PGMSITOD.
00A8  168 Address      8 PGMGLSFP       PGMBK list forward pointer
00B0  176 Address      8 PGMGLSBP       PGMBK list backward pointer
00B8  184 Signed       4 PGMNWRCT       Newly resident frame count
00BC  188 Signed       4 PGMRPGCT       Count of referenced pages
00C0  192 Signed       4 PGMTMORD       Last time (sequence) this PGMBK
                                        was reordered
00C4  196 Signed       4 PGMLTRPF       Last time (sequence) this PGMBK
                                        was reordered and referenced
                                        pages were found
00C8  200 Signed       4 PGMGLSLA       Last "adder" to VMDPGMLS /
                                        PGMGLS*P queue. Only used when
                                        &HCPDBG = 1 (debug on build)
00CC  204 Signed       4 PGMGLSLR       Last "remover" from VMDPGMLS /
                                        PGMGLS*P queue. Only used when
                                        &HCPDBG = 1 (debug on build)
00D0  208 Signed       4 PGMPTEWT       Count of outstanding asynchronous
                                        requests for PTE processing
                                        during VMRELOCATE. Incremented
                                        before stacked request.
                                        Decremented when PTE
                                        serialization queue is processed
                                        by HCPRLMPQ. Serialized by using
                                        compare and swap logic.
00D4  212 Signed       4 PGMPIURL       Count of pages "in use" for
                                        VMRELOCATE. Incremented when PTE
                                        serialization is obtained or
                                        deferred by live guest
                                        relocation. Decremented when PTE
                                        serialization is released by LGR.
                                        Serialized by using compare and
                                        swap logic. A non-zero value in
                                        this field will prevent the PGMBK
                                        from being stolen.
          000000D8       PGMrsrv        *,(128*8-(*-PGMGMISC))
00D8  216 Bitstring    1 * (808)        Reserved for IBM use.
0400 1024 Bitstring    1 * (0)          Where it ends
          00000400       PGMMSCLN       (*-PGMGVM) Size of common area in
                                        bytes

 

PGM64 Storage Layout

          
*** PGM64 - Page Management Block
*
*     +-------------------------------------------------------+
*   0 |                                                       |
*     =                       PGM64PG0                        =
*     |                                                       |
*     +-------------------------------------------------------+
*1000 |                                                       |
*     =                       PGM64PG1                        =
*     |                                                       |
*     +-------------------------------------------------------+
*2000
*
*** PGM64 - Page Management Block
          
*** Overlay for PGM64PG0 in PGM64
*
*     +-------------------------------------------------------+
*   0 |                                                       |
*     =                       PGMGMISC                        =
*     |                                                       |
*     +-------------------------------------------------------+
* 400 |                                                       |
*     =                       PGMGPAUX                        =
*     |                                                       |
*     +-------------------------------------------------------+
* 800 |                                                       |
*     =                       PGMGPGTB                        =
*     |                                                       |
*     +-------------------------------------------------------+
*1000
*
*** Overlay for PGM64PG0 in PGM64
          
*** Overlay for PGM64PG1 in PGM64
*
*     +-------------------------------------------------------+
*1000 |                                                       |
*     =                       PGMGPSTB                        =
*     |                                                       |
*     +-------------------------------------------------------+
*1800 |                                                       |
*     =                       PGMGASAT                        =
*     |                                                       |
*     +-------------------------------------------------------+
*2000
*
*** Overlay for PGM64PG1 in PGM64
          
*** Overlay for PGMGMISC in PGM64
*
*     +---------------------------+---------------------------+
*   0 |          PGMGVM           |///////////////////////////|
*     +---------------------------+---------------------------+
*   8 |                       PGMGVIRT                        |
*     +---------------------------+---------------------------+
*  10 |         PGMGMIGP          |         PGMGDEFA          |
*     +---------------------------+---------------------------+
*  18 |         PGMPDQLK          |         PGMGSNTU          |
*     +------+------+-------------+---------------------------+
*  20 |:GSTAT|:VMQST|/////////////|         PGMGXSTC          |
*     +------+------+-------------+---------------------------+
*  28 |                       PGMNOQFP                        |
*     +-------------------------------------------------------+
*  30 |                       PGMNOQBP                        |
*     +-------------------------------------------------------+
*  38 |                       PGMGALTP                        |
*     +---------------------------+---------------------------+
*  40 |         PGMNOLCK          |         PGMGASCB          |
*     +---------------------------+---------------------------+
*  48 |         PGMGFRMC          |         PGMGMPEB          |
*     +---------------------------+---------------------------+
*  50 |                       PGMGNPGM                        |
*     +-------------------------------------------------------+
*  58 |                       PGMLFRMG                        |
*     +---------------------------+------+--------------------+
*  60 |         PGMPSSQ           |:PSSQL|////////////////////|
*     +---------------------------+------+--------------------+
*  68 |         PGMGP4EX          |         PGMGMTAR          |
*     +---------------------------+---------------------------+
*  70 |                       PGMGSTE                         |
*     +-------------------------------------------------------+
*  78 |                       PGMGPPTE                        |
*     +-------------------------------------------------------+
*  80 |                       PGMCRTOD                        |
*     +-------------------------------------------------------+
*  88 |                       PGMSVTOD                        |
*     +-------------------------------------------------------+
*  90 |                       PGMPVTOD                        |
*     +-------------------------------------------------------+
*  98 |                       PGMSITOD                        |
*     +-------------------------------------------------------+
*  A0 |                       PGMPITOD                        |
*     +-------------------------------------------------------+
*  A8 |                       PGMGLSFP                        |
*     +-------------------------------------------------------+
*  B0 |                       PGMGLSBP                        |
*     +---------------------------+---------------------------+
*  B8 |         PGMNWRCT          |         PGMRPGCT          |
*     +---------------------------+---------------------------+
*  C0 |         PGMTMORD          |         PGMLTRPF          |
*     +---------------------------+---------------------------+
*  C8 |         PGMGLSLA          |         PGMGLSLR          |
*     +---------------------------+---------------------------+
*  D0 |         PGMPTEWT          |         PGMPIURL          |
*     +---------------------------+---------------------------+
*  D8 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
* 400
*
*** Overlay for PGMGMISC in PGM64

 

PGM64 Cross Reference

Symbol         Dspl Value
-------------- ---- -----
PGMrsrv        00D4 000000D8
PGMCRTOD       0080
PGMGALTP       0038
PGMGASAL       1800 00000008
PGMGASAO       1800 00001800
PGMGASAT       1800
PGMGASCB       0044
PGMGBKLN       1000 00002000
PGMGBKSZ       1000 00000400
PGMGDEFA       0014
PGMGFRMC       0048
PGMGIGRT       0020 40
PGMGLSBP       00B0
PGMGLSFP       00A8
PGMGLSLA       00C8
PGMGLSLR       00CC
PGMGMIGP       0010
PGMGMISC       0000
PGMGMPEB       004C
PGMGMTAR       006C
PGMGNPGM       0050
PGMGPABS       1800 00001000
PGMGPAUX       0400
PGMGPGTB       0800
PGMGPPTE       0078
PGMGPSTB       1000
PGMGPSTL       1000 00000008
PGMGPSTO       1000 00001000
PGMGPSTP1      1000 00001008
PGMGPSTP2      1000 00001100
PGMGPSTP3      1000 00001200
PGMGPSTP4      1000 00001300
PGMGPSTP5      1000 00001400
PGMGPSTP6      1000 00001500
PGMGPSTP7      1000 00001600
PGMGPSTP8      1000 00001700
PGMGPTBP1      0800 00000808
PGMGPTBP2      0800 00000900
PGMGPTBP3      0800 00000A00
PGMGPTBP4      0800 00000B00
PGMGPTBP5      0800 00000C00
PGMGPTBP6      0800 00000D00
PGMGPTBP7      0800 00000E00
PGMGPTBP8      0800 00000F00
PGMGPTEL       0800 00000008
PGMGP4EX       0068
PGMGSNTU       001C
PGMGSTAT       0020
PGMGSTE        0070
PGMGSVSE       0020 80
PGMGVIRT       0008
PGMGVM         0000
PGMGXSTC       0024
PGMLFRMG       0058
PGMLTRPF       00C4
PGMMSCLN       0400 00000400
PGMNOLCK       0040
PGMNOOWN       0020 20
PGMNOQBP       0030
PGMNOQFP       0028
PGMNWRCT       00B8
PGMPDQLK       0018
PGMPITOD       00A0
PGMPIURL       00D4
PGMPSSQ        0060
PGMPSSQL       0064
PGMPTEM        0800 0000F000
PGMPTES        0800 0000000C
PGMPTEWT       00D0
PGMPTOM        0800 0000F800
PGMPTOS        0800 0000000B
PGMPVTOD       0090
PGMRPGCT       00BC
PGMSITOD       0098
PGMSVTOD       0088
PGMTMORD       00C0
PGMVMDLS       0021 80
PGMVMQST       0021
PGM64PG0       0000
PGM64PG1       1000

This information is based on z/VM V6R2.0. Last updated on 21 Nov 2011 at 11:14:37 EDT.
Copyright IBM Corporation, 1990, 2011