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

#### DSCBK

Prolog

Control Block Contents
DSCBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### DSCBK Prolog

     NAME       : HCPDSCBK
     Description: Demand Scan Control Block
     DSECT      : DSCBK
     Function   :
                  The Demand Scan Control Block (DSCBK) contains
                  information about the Available List Demand Scan
                  operation.  The DSCBK is persistent and some
                  information is saved between Demand Scans.
     Created by : Assembly at Entry Point HCPRSMSC.
     Deleted by : none

#### DSCBK Control Block Content

#### DSCBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      DSCBK          Demand Scan Control Block
    0000    0 Signed       4 DSCWORD (0)    Demand Scan Status Word
    0000    0 Bitstring    1 DSCPROG        Indicate Demand Scan Progress
              1... ....      DSCPASS1       X'80' DSCPASS1 Working on the
                                            first pass
              .1.. ....      DSCPASS2       X'40' DSCPASS2 Working on the
                                            second pass
              ..1. ....      DSCEMRGP       X'20' DSCEMRGP Working on
                                            EMERGENCY pass
              ...1 ....      DSCLTD         X'10' DSCLTD Working on a user
                                            from the Long-Term Dormant List
              .... 1...      DSCLTDHX       X'08' DSCLTDHX This scan ended on
                                            a user from the Long-Term Dormant
                                            List
              .... .1..      DSCDLSCN       X'04' DSCDLSCN Scanning the
                                            Dormant List
              .... ..1.      DSCTKALL       X'02' DSCTKALL Took ALL possible
                                            frames from the Dormant List
                                            VMDBK base address space (except
                                            locked or reserved frames).
              .... ...1      DSCA2GPP       X'01' DSCA2GPP Stealing >=2G
                                            frames to relieve <2G resident
                                            pageable PGMBK pressure. Causes
                                            steal of >= 2G frames to begin
                                            / continue even if there is no
                                            >=2G system need (DSCREQDG=0)
    0001    1 Bitstring    1 DSCLKFLG       Contains only lock status and is
                                            cleared in RELLOCKS subroutine in
                                            module HCPALS.
              1... ....      DSCPTILK       X'80' DSCPTILK Demand Scan owns
                                            the Page Table Lock (VMDPTIL)
                                            now.
              .1.. ....      DSCPTIL2       X'40' DSCPTIL2 Indicate we
                                            obtained VMDPTIL in the INVAL
                                            routine (in HCPALS).
              ..1. ....      DSCSHDLK       X'20' DSCSHDLK Demand Scan owns
                                            the Shadow Table Lock (VMDSHDLK)
                                            now.
              ...1 ....      DSCDFRCT       X'10' DSCDFRCT Demand Scan has
                                            incremented the Deferred Work
                                            count.
              .... 1...      DSCSHFRM       X'08' DSCSHFRM Stealing shared
                                            frames, which means we must
                                            ALWAYS use IPTE.
              .... .1..      DSCPTILS       X'04' DSCPTILS Note that VMDPTIL
                                            was obtained SHARED (verses
                                            EXCLUSIVE).
    0002    2 Bitstring    1 DSCSTAT        Demand scan status flags
              1... ....      DSCRBINX       X'80' DSCRBINX Do NOT move RABIs
                                            to XSTORE
              .1.. ....      DSCUNREF       X'40' DSCUNREF Take UNREFERENCED
                                            frames only
              ..1. ....      DSCPURGE       X'20' DSCPURGE Perform a PTLB
                                            (Purge Translate Look-Aside
                                            Buffers). DSCA2GRF removed
              .... 1...      DSCPGMFL       X'08' DSCPGMFL PGMBK steal
                                            (HCPALSPS) has used up paging
                                            capacity, so steal must stop for
                                            now.
              .... ...1      DSCAGAIN       X'01' DSCAGAIN Steal should
                                            re-invoke itself at the end of
                                            the current cycle.
    0003    3 Bitstring    1 DSCXSTFL       XSTORE management flags
              1... ....      DSCXSTOR       X'80' DSCXSTOR Try paging pages
                                            out to XSTORE before sending them
                                            to DASD.
    0004    4 Signed       4 DSCINPUT (0)   Demand Scan Input Word DSCINPUT
                                            is a word of "input status" hints
                                            for other parts of the system to
                                            communicate information "hints"
                                            to demand scan. NOTES : DSCINPUT
                                            fields are NOT serialized, by the
                                            demand scan lock or anything
                                            else.
    0004    4 Bitstring    1 DSCINPB0
              1... ....      DSCSFCTG       X'80' DSCSFCTG Single frame
                                            allocation has reached into the
                                            contiguous portion of the
                                            available list since the last
                                            time we checked.
              .1.. ....      DSCCNTGR       X'40' DSCCNTGR Contiguous frames
                                            have been returned to the back of
                                            the available list since the last
                                            time demand scan zeroed this
                                            flag.
              ..1. ....      DSCPGMBK       X'20' DSCPGMBK PGMBK Steal
                                            requested. HCPALSPS will be
                                            invoked prior to normal demand
                                            scan of single frames The
                                            following three bytes are used to
                                            make sure that only one CPEBK is
                                            stacked for the deferred call to
                                            HCPLANRS, HCPFMVDS, or HCPFMVDS
                                            with emergency.
    0005    5 Bitstring    1 DSCLANLK       Indicate that the deferred call
                                            to HCPLANRS has been stacked
    0006    6 Bitstring    1 DSCFMVLK       Indicate that the deferred call
                                            to HCPFMVDS has been stacked
    0007    7 Bitstring    1 DSCFMVEL       Indicate that the deferred call
                                            to HCPFMVDS with emergency has
                                            been stacked.
          The primary Demand Scan may be able to satisfy the
          system requirement without performing every possible
          scan.  In order to drain frames from every possible
          source, a "Round Robin" algorithm is used to select
          a different scan routine each time Demand Scan runs.
          The pointer DSCELEM holds the address of the next
          scan element (a structure defined in HCPALD).  The
          next scan will be performed by the routine associated
          with this scan element.
    0008    8 Signed       4 DSCCYCL        Count the number of scan cycles
    000C   12 Address      4 DSCELEM        Address of next scan element (see
                                            HCPALD SCANELEM structure)
          These fields apply to the current Demand Scan.
    0010   16 Signed       4 DSCTOTAL       Total pages stolen by the current
                                            Demand Scan process
    0014   20 Signed       4 DSCPSSP        Single pages stolen thus far for
                                            PGMBK steal, which are not yet
                                            included in any steal write
                                            counts
    0018   24 Dbl-Word     8 DSCREQD (0)    Frames needed by the system
    0018   24 Signed       4 DSCREQD0       Frames needed from BELOW 2Gb
    001C   28 Signed       4 DSCREQDG       Frames needed from 2G and ABOVE
    0020   32 Signed       4 DSCREQC0       Cont frames needed from BELOW 2G
    0024   36 Signed       4 DSCREQCG       Cont frames needed from ABOVE 2G
              00000010       DSCREQDL       *-DSCREQD Length of all REQ
                                            fields
    0028   40 Dbl-Word     8 DSCTRGT (0)    Target frame limit (Low/High)
    0028   40 Signed       4 DSCTRGT0       Target frames from BELOW 2Gb
    002C   44 Signed       4 DSCTRGTG       Target frames from 2Gb and ABOVE
    0030   48 Signed       4 DSCTRGC0       Cont target frames from BELOW 2G
    0034   52 Signed       4 DSCTRGCG       Cont target frames from ABOVE 2G
              00000010       DSCTRGTL       *-DSCTRGT Length of all TRG
                                            fields
    0038   56 Dbl-Word     8 DSCFRMS (0)    Frame counters (Low/High)
    0038   56 Signed       4 DSCFRMS0       Frames stolen from BELOW 2Gb
    003C   60 Signed       4 DSCFRMSG       Frames stolen from 2Gb and ABOVE
    0040   64 Signed       4 DSCFRMC0       Cont frames stolen from BELOW 2G
    0044   68 Signed       4 DSCFRMCG       Cont frames stolen from ABOVE 2G
              00000010       DSCFRMSL       *-DSCFRMS Length of all FRM
                                            fields
    0048   72 Dbl-Word     8 DSCSTLW (0)    Steal Write counters (Low/High)
    0048   72 Signed       4 DSCSTLW0       Steal Write frames BELOW 2Gb
    004C   76 Signed       4 DSCSTLWG       Steal Write frames 2Gb and ABOVE
    0050   80 Signed       4 DSCSTLP0       Steal Write PGMBKs BELOW 2Gb
    0054   84 Signed       4 DSCSTLPG       Steal Write PGMBKs 2Gb and ABOVE
              00000010       DSCSTLWL       *-DSCSTLW Length of all STL
                                            fields
    0058   88 Address      8 DSCIOLFW       I/O FRMTE list forward pointer
    0060   96 Address      8 DSCIOLST       I/O FRMTE list last FRMTE
    0068  104 Address      8 DSCAVLLF       Immediately available FRMTE list
                                            forward pointer
    0070  112 Address      8 DSCPGMLF       PGMBK FRMTE list forward pointer
    0078  120 Signed       4 DSCPAGQC       Count of FRMTEs on I/O and PGMBK
                                            FRMTE lists
          These fields are primarily for diagnostic purposes.
          They should not affect the operation of Demand Scan.
    007C  124 Bitstring    1 DSCDEBUG       Debug Flags
              1... ....      DSCACTIV       X'80' DSCACTIV Demand Scan is
                                            ACTIVE
    007D  125 Bitstring    3 *              reserved
    0080  128 Signed       4 DSCCOUNT       Count the number of times we
                                            entered Demand Scan (HCPALDSC)
    0084  132 Bitstring    1 DSCALSCN       Track our progress in HCPALSCN
    0085  133 Bitstring    1 DSCALSCS       Track our progress in HCPALSCS
    0086  134 Bitstring    1 DSCALSCD       Track our progress in HCPALSCD
    0087  135 Bitstring    5 *              Reserved
    008C  140 Address      4 DSCWHOCM       Last caller of CALCMORE routine
    0090  144 Address      4 DSCWHOEX       Previous HCPCALL before CALCMORE
    0094  148 Signed       4 DSCANYDB       <>2G frames (frames that
                                            can be anywhere) that were
                                            allocated to the <2G need.
                                            (Demand Below)
    0098  152 Signed       4 DSCANYDA       <>2G frames that were
                                            allocated to the >2G need.
                                            (Demand Above)
    00A0  160 Dbl-Word     8 DSCTOTPB       Total amount of PGMBKs stolen
    00A8  168 Dbl-Word     8 DSCPBKTM       Total time spent stealing PGMBKs
    00B0  176 Bitstring    1 DSC$END (0)    End of DSCBK
              000000B0       DSCBKLN        *-DSCBK DSCBK length (in bytes)
              00000016       DSCBKSZ        (*-DSCBK+7)/8 DSCBK size (in
                                            doublewords)

#### DSCBK Storage Layout

    *** DSCBK - Demand Scan Control Block
    *
    *     +------+------+------+------+------+------+------+------+
    *   0 |:PROG |:LKFLG|:STAT |:XSTFL|:INPB0|:LANLK|:FMVLK|:FMVEL|
    *     +------+------+------+------+------+------+------+------+
    *   8 |         DSCCYCL           |         DSCELEM           |
    *     +---------------------------+---------------------------+
    *  10 |         DSCTOTAL          |         DSCPSSP           |
    *     +---------------------------+---------------------------+
    *  18 |         DSCREQD0          |         DSCREQDG          |
    *     +---------------------------+---------------------------+
    *  20 |         DSCREQC0          |         DSCREQCG          |
    *     +---------------------------+---------------------------+
    *  28 |         DSCTRGT0          |         DSCTRGTG          |
    *     +---------------------------+---------------------------+
    *  30 |         DSCTRGC0          |         DSCTRGCG          |
    *     +---------------------------+---------------------------+
    *  38 |         DSCFRMS0          |         DSCFRMSG          |
    *     +---------------------------+---------------------------+
    *  40 |         DSCFRMC0          |         DSCFRMCG          |
    *     +---------------------------+---------------------------+
    *  48 |         DSCSTLW0          |         DSCSTLWG          |
    *     +---------------------------+---------------------------+
    *  50 |         DSCSTLP0          |         DSCSTLPG          |
    *     +---------------------------+---------------------------+
    *  58 |                       DSCIOLFW                        |
    *     +-------------------------------------------------------+
    *  60 |                       DSCIOLST                        |
    *     +-------------------------------------------------------+
    *  68 |                       DSCAVLLF                        |
    *     +-------------------------------------------------------+
    *  70 |                       DSCPGMLF                        |
    *     +---------------------------+------+--------------------+
    *  78 |         DSCPAGQC          |:DEBUG|////////////////////|
    *     +---------------------------+------+------+------+------+
    *  80 |         DSCCOUNT          |:ALSCN|:ALSCS|:ALSCD|//////|
    *     +---------------------------+------+------+------+------+
    *  88 |///////////////////////////|         DSCWHOCM          |
    *     +---------------------------+---------------------------+
    *  90 |         DSCWHOEX          |         DSCANYDB          |
    *     +---------------------------+---------------------------+
    *  98 |         DSCANYDA          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  A0 |                       DSCTOTPB                        |
    *     +-------------------------------------------------------+
    *  A8 |                       DSCPBKTM                        |
    *     +-------------------------------------------------------+
    *
    *** DSCBK - Demand Scan Control Block

#### DSCBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    DSC$END        00B0
    DSCACTIV       007C 80
    DSCAGAIN       0002 01
    DSCALSCD       0086
    DSCALSCN       0084
    DSCALSCS       0085
    DSCANYDA       0098
    DSCANYDB       0094
    DSCAVLLF       0068
    DSCA2GPP       0000 01
    DSCBKLN        00B0 000000B0
    DSCBKSZ        00B0 00000016
    DSCCNTGR       0004 40
    DSCCOUNT       0080
    DSCCYCL        0008
    DSCDEBUG       007C
    DSCDFRCT       0001 10
    DSCDLSCN       0000 04
    DSCELEM        000C
    DSCEMRGP       0000 20
    DSCFMVEL       0007
    DSCFMVLK       0006
    DSCFRMCG       0044
    DSCFRMC0       0040
    DSCFRMS        0038
    DSCFRMSG       003C
    DSCFRMSL       0044 00000010
    DSCFRMS0       0038
    DSCINPB0       0004
    DSCINPUT       0004
    DSCIOLFW       0058
    DSCIOLST       0060
    DSCLANLK       0005
    DSCLKFLG       0001
    DSCLTD         0000 10
    DSCLTDHX       0000 08
    DSCPAGQC       0078
    DSCPASS1       0000 80
    DSCPASS2       0000 40
    DSCPBKTM       00A8
    DSCPGMBK       0004 20
    DSCPGMFL       0002 08
    DSCPGMLF       0070
    DSCPROG        0000
    DSCPSSP        0014
    DSCPTILK       0001 80
    DSCPTILS       0001 04
    DSCPTIL2       0001 40
    DSCPURGE       0002 20
    DSCRBINX       0002 80
    DSCREQCG       0024
    DSCREQC0       0020
    DSCREQD        0018
    DSCREQDG       001C
    DSCREQDL       0024 00000010
    DSCREQD0       0018
    DSCSFCTG       0004 80
    DSCSHDLK       0001 20
    DSCSHFRM       0001 08
    DSCSTAT        0002
    DSCSTLPG       0054
    DSCSTLP0       0050
    DSCSTLW        0048
    DSCSTLWG       004C
    DSCSTLWL       0054 00000010
    DSCSTLW0       0048
    DSCTKALL       0000 02
    DSCTOTAL       0010
    DSCTOTPB       00A0
    DSCTRGCG       0034
    DSCTRGC0       0030
    DSCTRGT        0028
    DSCTRGTG       002C
    DSCTRGTL       0034 00000010
    DSCTRGT0       0028
    DSCUNREF       0002 40
    DSCWHOCM       008C
    DSCWHOEX       0090
    DSCWORD        0000
    DSCXSTFL       0003
    DSCXSTOR       0003 80

This information is based on z/VM V6R1.0. Last updated on 18 Feb 2010 at 08:36:00 EDT.
Copyright IBM Corporation, 1990, 2008