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

DSVBK

Prolog  

Control Block Contents  
   DSVBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


DSVBK Prolog

 Name       : HCPDSVBK
 Description: DiSpatch Vector BlocK
 DSECT      : DSVBK
 Function   : The DSVBK maps the format of a Processor Local
              Dispatch Vector (PLDV).  There is one PLDV for each
              real CPU, plus an additional one to contain Master-
              Only work.  This DSECT maps the storage defined in
              the module HCPDSV.
 Located by : HCPDSVMS is the address of the Master-Only PLDV.
              HCPDSVST is the starting address of the other PLDVs.
              They are contiguous in storage.
 Created by : The PLDVs are DCed in module HCPDSV.
 Deleted by : Never deleted

 

DSVBK Control Block Content


DSVBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      DSVBK          DiSpatch Vector BlocK
      Format of the header:
          00000000       DSVHEADR       * Base value to be used when
                                        referencing the PLDV header.
0000    0 Bitstring    1 DSVHDWKB       Byte of Work Bits All bit
                                        manipulations must be serialized
                                        by compare-and-swap logic. See
                                        note in block comment above.
          1... ....      DSVDSCAN       X'80' DSVDSCAN A Steal Task may
                                        need to be started
          .1.. ....      DSVRCGAL       X'40' DSVRCGAL A foreground
                                        replenish of the cleared global
                                        available list is required
          ..1. ....      DSVNOOWN       X'20' DSVNOOWN High priority
                                        reclaim noown resources
          ...1 ....      DSVSXSPM       X'10' DSVSXSPM High priority
                                        SXSPM work
          .... 1...      DSVFOBTR       X'08' DSVFOBTR FOB list trim
                                        function
0001    1 Bitstring    1 DSVHDFLG       Flag byte for PLDV status
          1... ....      DSVHDOFL       X'80' DSVHDOFL Set when PLDV has
                                        "overflowed"
          .1.. ....      DSVTIDLE       X'40' DSVTIDLE Set to indicate
                                        that a scan should be made of the
                                        test-idle users by HCPDSP.
          ...1 ....      DSVIMBAL       X'10' DSVIMBAL Possible processor
                                        workload imbalance
          .... 1...      DSVNOPTL       X'08' DSVNOPTL We could not
                                        obtain the PTIL lock for any of
                                        the VMDBKs in the master-only
                                        PLDV.
          .... .1..      DSVNEWRK       X'04' DSVNEWRK Used to tell
                                        HCPSTLWT that new work was added
                                        to this PLDV between the time the
                                        dispatcher released the PLDV lock
                                        and when HCPSTLWT turns on the
                                        wait bit in SRMCPUWT. This is
                                        necessary since the dispatcher
                                        does not hold the scheduler lock
                                        exclusive or the PLDV lock during
                                        that time and so another
                                        processor could add work to the
                                        PLDV and the dispatcher could go
                                        into wait state without knowing
                                        that work is available. The PLDV
                                        lock must be held to turn this
                                        bit on or off.
          .... ..1.      DSVOFLER       X'02' DSVOFLER Indicates that
                                        this PLDV had the
                                        DSVHDOFL/DSVLOREJ mismatch error
                                        at least one time
0002    2 Address      1 DSVHDFRE       Anchor of the "entries not in
                                        use" queue.
0003    3 Address      1 DSVHDWRK       Anchor of the "entries in use"
                                        queue.
0004    4 Signed       4 DSVNXTDV       Pointer to the next dispatch
                                        vector in a circular linked list
                                        of dispatch vectors that belong
                                        to CPUs of the same CPU type.
                                        i.e: zIIP,zAAP,CP,IFL. Protected
                                        by scheduler lock.
0008    8 Signed       4 DSVLOREJ       Lowest-value (best) priority
                                        which was rejected from this PLDV
000C   12 Signed       2 DSVUSERC       User count - number of VMDBKS in
                                        this PLDV
000E   14 Address      1 DSVLSTEN       Last entry in the PLDV
000F   15 Address      1 *              Reserved for future IBM use
0010   16 Dbl-Word     8 DSVLOCK (6)    Lock area for the PLDV lock. This
                                        lock is a formal exclusive spin
                                        lock and it is used to serialize
                                        access to a PLDV. The HCPLKPLD
                                        and HCPULPLD macros are used to
                                        obtain and release it. At least a
                                        share of the scheduler lock must
                                        be held before requesting this
                                        lock. This means that any PLDV
                                        can be accessed or even changed
                                        without its PLDV lock if the
                                        scheduler lock is held in
                                        exclusive mode. More than one
                                        PLDV lock can be held by a
                                        processor only if the scheduler
                                        lock is first held in exclusive
                                        mode. The scheduler lock cannot
                                        be obtained in exclusive mode
                                        while a PLDV lock is held.
          00000040       DSVHDLEN       *-DSVHEADR Length in bytes of the
                                        PLDV header.
      Format of each entry:
          00000040       DSVENTRY       * Base value to be use when
                                        referencing a PLDV entry.
0040   64 Address      3 DSVVMDBK       Bits 0 to 19 of the user's VMDBK
                                        address. Bits 20 to 31 are known
                                        to be zero and need not be stored
                                        in the Vector entry.
          1... ....      DSVINUSE       X'80' DSVINUSE High-order bit is
                                        set when the PLDV entry is "in
                                        use", whenever the entry is in
                                        the chain starting from DSVHDWRK.
0042   66 Bitstring    1 DSVFLAGS       A flag nibble
          .... 1...      DSVNOSTL       X'08' DSVNOSTL Set when work MUST
                                        not be stolen, in order to
                                        respect VMDBK's affinity
                                        requirements
0043   67 Address      1 DSVFPNT        Forward pointer to next entry in
                                        queue. Zero if this is the last
                                        entry.
0044   68 Signed       4 DSVPRIOR       A representation of this VMDBK's
                                        priority in the dispatch list.
                                        The value in this field is a
                                        function of the VMDBK's VMDDPRTY.
          00000008       DSVENTLN       *-DSVENTRY Length in bytes of a
                                        PLDV entry
          0000000E       DSVMAXUS       14 Maximum number of users in a
                                        PLDV
          00000050       DSVRESER       80 Number of reserved bytes
                                        following the PLDV entries
          00000100       DSVLEN         DSVHDLEN+DSVMAXUS*DSVENTLN+DSVRES
                                        ER Length in bytes of a PLDV.
          00000020       DSVSIZE        (DSVLEN+7)/8 Size in doublewords
                                        of a PLDV

 

DSVBK Storage Layout

          
*** DSVBK - DiSpatch Vector BlocK
*
*     +------+------+------+------+---------------------------+
*   0 |:HDWKB|:HDFLG|:HDFRE|:HDWRK|         DSVNXTDV          |
*     +------+------+------+------+-------------+------+------+
*   8 |         DSVLOREJ          |  DSVUSERC   |:LSTEN|//////|
*     +---------------------------+-------------+------+------+
*  10 |                                                       |
*     =                       DSVLOCK                         =
*     |                                                       |
*     +--------------------+----------------------------------+
*  40 |     DSVVMDBK       | 43
*     +--------------------+
*
*** DSVBK - DiSpatch Vector BlocK
          
*** Overlay for DSVVMDBK+2 in DSVBK
*
*                   +------+------+---------------------------+
*  40 ...        42 |:FLAGS|:FPNT |         DSVPRIOR          |
*                   +------+------+---------------------------+
*  48
*
*** Overlay for DSVVMDBK+2 in DSVBK

 

DSVBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
DSVDSCAN       0000 80
DSVENTLN       0044 00000008
DSVENTRY       0010 00000040
DSVFLAGS       0042
DSVFOBTR       0000 08
DSVFPNT        0043
DSVHDFLG       0001
DSVHDFRE       0002
DSVHDLEN       0010 00000040
DSVHDOFL       0001 80
DSVHDWKB       0000
DSVHDWRK       0003
DSVHEADR       0000 00000000
DSVIMBAL       0001 10
DSVINUSE       0040 80
DSVLEN         0044 00000100
DSVLOCK        0010
DSVLOREJ       0008
DSVLSTEN       000E
DSVMAXUS       0044 0000000E
DSVNEWRK       0001 04
DSVNOOWN       0000 20
DSVNOPTL       0001 08
DSVNOSTL       0042 08
DSVNXTDV       0004
DSVOFLER       0001 02
DSVPRIOR       0044
DSVRCGAL       0000 40
DSVRESER       0044 00000050
DSVSIZE        0044 00000020
DSVSXSPM       0000 10
DSVTIDLE       0001 40
DSVUSERC       000C
DSVVMDBK       0040

This information is based on z/VM V5R4.0. Last updated on 18 Feb 2010 at 03:38:37 EDT.
Copyright IBM Corporation, 1990, 2009