KCMBK | Back to Index page

| Prolog Control Block Contents KCMBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

KCMBK Prolog | Top of page

     NAME       : HCPKCMBK
     DESCRIPTION: Kernel communication management block
     DSECT      : KCMBK
     FUNCTION   :
                  This structure defines the ISFC socket infrastructure
                  needed for VMPLEX communications.
     LOCATED BY :
                  HCPKCSKM = Area reserved for the KCMBK
     CREATED BY :
                  Storage for the KCMBK is reserved in module HCPKCS
                  when it is compiled.
     DELETED BY :
                  None.
     RELOCATION CONSIDERATIONS : None
     SERIALIZED :
                  The fields in the KCMBK are serialized by the KCMLKWRD.
                  Lock Hierarchy -
                  The following list is arranged to represent the sequence
                  in which these locks must be OBTAINED (when multiple
                  locks are required):
      These tiers show the order for obtaining ISFC locks.
      Jump in at any level, but from that point on, you
      may obtain additional locks ONLY from a lower tier.
      -  When locks appear on the same tier, they cannot be
         held by the same task. If that is a requirement,
         we must make a decision about the order they are
         obtained and put them on separate tiers.
      -  No other locks may be requested when a lock on the
         LAST tier is held.
      -  Columns give some indication of the most common
         combinations of locks held at one time.
      ------------------------------------------------------------
      Tier 0:                  KCMINIT
      ------------------------------------------------------------
      Tier 1:               HCPBDSGL(5) KCMSYNLK(4) KCMINFLX(4)
      ------------------------------------------------------------
      Tier 2:         MNDE_IS_AREA   MNDS_IS_AREA
      ------------------------------------------------------------
      Tier 3: LNKLKWRD
      ------------------------------------------------------------
      Tier 4:   LNKTQ_STAGECTL(1)  KCMLKWRD(4)
      ------------------------------------------------------------
      Tier 5: LDVLKWRD  LDVINUSE(2)   NODXLOCK(4)
      ------------------------------------------------------------
      Tier 6:   LNKTX_LOCK  LNKTX_WAITCTL  KCMSCKLK(4)
      ------------------------------------------------------------
      Tier 7: RDEVAPLK                         SCKLKWRD(4)
      ------------------------------------------------------------
      Tier 8: RDEVLOCK                         SCKILOCK
      ------------------------------------------------------------
      Tier 9:             LNKRX_LOCK
      ------------------------------------------------------------
      Tier LAST:                   MNDDE_CURRP_LOCK
      ------------------------------------------------------------
      Notes:
      (1) LNKTQ_STAGECTL TS lock may be obtained while holding
          a lower lock (e.g. LDVLKWRD) as long as the request
          is conditional (That is, the requester does not spin
          waiting for the lock to clear).
      (2) LDVINUSE TS lock is set while a device is busy
          with a data transfer function.  LDVLKWRD may be
          obtained before or after obtaining LDVINUSE.
          Note: Do NOT use a typical TS spin lock to
          obtain LDVINUSE.  It may be held for a relatively
          long period of time and a spin loop may interfere
          with the active task.
          Note: To use a link device, TS LDVINUSE and give up
          if TS fails. DO NOT retry without giving up control
          of the processor and any resources that might be
          needed by the currently active link device.
      (3) KCMXX_CTL TS lock is not shown in this hierarchy,
          because it is always obtained conditionally.
      (4) HCPCONSL is not allowed on a path where lock is held.
          An HCPCONSL call to HCPERM uses HCPSOCK SEND_REQUEST
          when there is a SCIF definition to a user on another
          SSI member system. This has deadlock potential if the
          lock is held. Use a deferred call to HCPKCBNM to issue
          the message.
      (5) ISFC Global Lock (HCPBDSGL) is obtained and released
          by entry point HCPFCASA.  This is significant because
          the SSI Manager calls this entry point holding SSI
          Manager locks.  At this time, we know that the caller
          holds the PLMCEVLK.  This means ISFC should not hold
          the Global Lock while calling an SSI Manager routine
          that would obtain PLMCEVLK.

KCMBK Control Block Content | Top of page

     KCMBK DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      KCMBK          Kernel communication management block
    0000    0 Dbl-Word     8 KCMLKWRD (3)   Kernel Communications Lock
          In addition to protecting the KCMBK, the KCMLKWRD protects
          the Node Table chain.
          - Obtain KCMLKWRD and ISFC Global lock EXCLUSIVE to add or
            remove a node.
          - Obtain KCMLKWRD or ISFC Global lock SHARED to scan the
            table.
          Serialized by the ISFC Global lock OR  KCMLKWRD to use.
          Serialized by the ISFC Global lock AND KCMLKWRD to change.
    0018   24 Address      4 KCMNODHD       Table of NODBKs
          Serialized by the KCMLKWRD
    001C   28 Bitstring    1 KCMFL          General KCMBK flags
              .1.. ....      KCMFLVJH       X'40' KCMFLVJH Hold VMPLEX=JOINED
                                            messages
              ..1. ....      KCMFLVJR       X'20' KCMFLVJR Reject
                                            VMPLEX=JOINED messages
              ...1 ....      KCMFLXMS       X'10' KCMFLXMS Reported socket
                                            limit exceeded
              1... ....      KCMTRLLR       X'80' KCMTRLLR Link load sampling
                                            requested
              .1.. ....      KCMTRLLA       X'40' KCMTRLLA Link load sampling
                                            active
    001D   29 Bitstring    1 KCMTR          Link load sampling rate
          KCMXX_CTL is a TS lock, used to protect the fields related
          to an emergency storage release call to HCPKCLFS.
          Only one instance of HCPKCLFS may be activate at a time.
          KCMXX_CTL protects KCMXXFL, KCMXXLWK, and KCMXXMBH.
    001E   30 Bitstring    1 KCMXX_CTL      TS Lock. HCPKCLFS/HCPKCLXR active
    001F   31 Bitstring    1 KCMXXFL        Storage release flags
              1... ....      KCMXXFLS       X'80' KCMXXFLS Storage was
                                            released
          Socket Services Area
    0020   32 Signed       4 KCMSCKTO       Socket time out value
    0024   36 Bitstring    4 *              Reserved Lock for the HCPHSHSK
                                            (Socket Hash table) and KCMSARRY
                                            (socket array). Notes : LKWRDSIZ
                                            == 3 doublewords.
    0028   40 Dbl-Word     8 KCMSCKLK (3)   Socket Hash Table and socket
                                            array lock. Must be held
                                            Exclusive for add and delete
                                            Shared for look up Serialized by
                                            the KCMSCKLK.
    0040   64 Signed       4 KCMSCKSA       System Assigned Socket Addr Field
                                            Serialized by the KCMSCKLK
    0044   68 Address      4 KCMSCKBK       PTR to first socket block
    0048   72 Address      4 KCMSCFDF       PTR to chain of deferred SCFBKs
                                            for offline devices.
    004C   76 Signed       4 KCMLTMSK       Mask of late responders
          Serialized by the KCMLKWRD
    0050   80 Dbl-Word     8 KCMINFLX (3)   Influx lock for VMPLEX=JOINED
    0068  104 Address      4 KCMSARRY       Socket array anchor Address of an
                                            array of pointers to socket index
                                            pages
                                            +--------------+--------------+--
                                            ------------+ KCMSARRY -> |
                                            Index page 0 | Index page 1 | ...
                                            |
                                            +--------------+--------------+--
                                            ------------+ | |
                                            +----------+----------+----------
                                            + +-> | SCKARY 0 | SCKARY 1 |
                                            |
                                            +----------+----------+----------
                                            +
    006C  108 Signed       4 KCMARENT       Maximum bit number in bit map for
                                            socket array
    0070  112 Address      4 KCMSBTMP       Pointer to socket array bitmap
    0074  116 Signed       4 KCMSCKTS       Highest # of concurrent sockets
              KCMSCKTS       KCMARSSI       65536 KCMARSSI Maximum entries in
                                            the socket array for SSI
              KCMSCKTS       KCMARNSS       512 KCMARNSS # of entries in the
                                            socket array for non-SSI
          Node Synchronization Services Area
    0078  120 Dbl-Word     8 KCMSYNLK (3)   Node sync control lock
    0090  144 Dbl-Word     8 KCMSYNVL       Most recent node check value
    0098  152 Dbl-Word     8 KCMSYNTO       Node Sync Timeout value
    00A0  160 Signed       4 KCMSYMSK       Known VMPLEX nodes mask
    00A4  164 Signed       4 KCMSYRSP       Responding Nodes Mask
          Time Synchronization Services Area
    00A8  168 Dbl-Word     8 KCMSYTTM       Time Sync timestamp
          General Sync Services Area
    00B0  176 Dbl-Word     8 * (0)          The length of the KCMSYNMS field
                                            for DATAMAP is 56
    00B0  176 Bitstring   64 KCMSYNMS       ISFC Sync Message Structure
    00F0  240 Address      4 KCMCSSID       Pointer to *SYNC SCKBK
          Miscellaneous
          Serialized by the KCMLKWRD
    00F4  244 Address      4 KCMSCFBK       PTR to chain of SCFBKs from
                                            SYSTEM CONFIG.
          Serialized by the KCMSYNLK
    00F8  248 Bitstring    1 KCMSFL         Sync services flag PROTECTED by
                                            KCMSYNLK
              1... ....      KCMSFLLK       X'80' KCMSFLLK Sends held up for
                                            node sync cycle (KCMSYNLK held
                                            exclusive)
              .1.. ....      KCMSFLSP       X'40' KCMSFLSP HCPPLMSP called.
    00F9  249 Bitstring    3 *              Reserved for future use
                                            Serialized by the KCMSCKLK
    00FC  252 Signed       4 KCMSCKNM       Socket number field for SCKNUM
          Serialized by the KCMLKWRD
    0100  256 Signed       4 KCMMYMSK       VMPLEX mask value for local node
    0104  260 Signed       4 KCMMBSSZ       Managed buffer set size
                                            Serialized by the KCMLKWRD
    0108  264 Character    8 KCMMYNOD       Node ID for my node
    0110  272 Signed       4 KCMTRACE       KCMBK Trace Table Token
    0114  276 Character    4 KCMIPLRS       Node sync responders' IPL Mask
    0118  280 Dbl-Word     8 KCMSYNHI       Highest node sync completion time
    0120  288 Character    8 KCMLNKTO       Link device timeout value
          The length of SSILIMIT for DATAMAP is 32
    0128  296 Dbl-Word     8 KCMXIPLC (32)  SSI member instance memory
    0228  552 Dbl-Word     8 KCMLWKBK (0)   Available LWKBK management
    0228  552 Signed       2 KCMLWKSQ       Available LWKBK seqno
    022A  554 Signed       2 KCMLWKCT       Available LWKBK count
    022C  556 Address      4 KCMLWKPT       Available LWKBK queue
    0230  560 Signed       4 KCMLNKCT       Count of LNKBKs
    0234  564 Character    8 KCMSAMPL       Link load sampling rate
    023C  572 Signed       4 KCMBADSQ       HCPKCWPI ignored bad SEQNOs
    0240  576 Dbl-Word     8 KCMSYNLR       Late response node sync value
    0248  584 Address      4 KCMXXLWK       Partially-released LWKBK chain
    024C  588 Address      4 KCMXXMBH       Partially-released MBHBK chain
    0250  592 Dbl-Word     8 KCMINIT (3)    ISFC Initialization lock
    0268  616 Dbl-Word     8 * (3)          Reserved
          Equates and Constants
              000000DB       KCMDC219       219 Direct connection changes
              00000280       KCMEND         * End of Socket control block
              00000280       KCMBKLN        *-KCMBK Length of KCMBK in bytes
              00000050       KCMBKSZ        (*-KCMBK+7)/8 Size of KCMBK in
                                            doublewords

KCMBK Storage Layout | Top of page

    *** KCMBK - Kernel communication management block
    *
    *     +-------------------------------------------------------+
    *   0 |                                                       |
    *     =                       KCMLKWRD                        =
    *     |                                                       |
    *     +---------------------------+------+------+------+------+
    *  18 |         KCMNODHD          |KCMFL |KCMTR |(01E) |:XXFL |
    *     +---------------------------+------+------+------+------+
    *  20 |         KCMSCKTO          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  28 |                                                       |
    *     =                       KCMSCKLK                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  40 |         KCMSCKSA          |         KCMSCKBK          |
    *     +---------------------------+---------------------------+
    *  48 |         KCMSCFDF          |         KCMLTMSK          |
    *     +---------------------------+---------------------------+
    *  50 |                                                       |
    *     =                       KCMINFLX                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  68 |         KCMSARRY          |         KCMARENT          |
    *     +---------------------------+---------------------------+
    *  70 |         KCMSBTMP          |         KCMSCKTS          |
    *     +---------------------------+---------------------------+
    *  78 |                                                       |
    *     =                       KCMSYNLK                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  90 |                       KCMSYNVL                        |
    *     +-------------------------------------------------------+
    *  98 |                       KCMSYNTO                        |
    *     +---------------------------+---------------------------+
    *  A0 |         KCMSYMSK          |         KCMSYRSP          |
    *     +---------------------------+---------------------------+
    *  A8 |                       KCMSYTTM                        |
    *     +-------------------------------------------------------+
    *  B0 |                                                       |
    *     =                       KCMSYNMS                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  F0 |         KCMCSSID          |         KCMSCFBK          |
    *     +------+--------------------+---------------------------+
    *  F8 |KCMSFL|////////////////////|         KCMSCKNM          |
    *     +------+--------------------+---------------------------+
    * 100 |         KCMMYMSK          |         KCMMBSSZ          |
    *     +---------------------------+---------------------------+
    * 108 |                       KCMMYNOD                        |
    *     +---------------------------+---------------------------+
    * 110 |         KCMTRACE          |         KCMIPLRS          |
    *     +---------------------------+---------------------------+
    * 118 |                       KCMSYNHI                        |
    *     +-------------------------------------------------------+
    * 120 |                       KCMLNKTO                        |
    *     +-------------------------------------------------------+
    * 128 |                                                       |
    *     =                       KCMXIPLC                        =
    *     |                                                       |
    *     +-------------+-------------+---------------------------+
    * 228 |  KCMLWKSQ   |  KCMLWKCT   |         KCMLWKPT          |
    *     +-------------+-------------+---------------------------+
    * 230 |         KCMLNKCT          |        KCMSAMPL-          |
    *     +---------------------------+---------------------------+
    * 238 |          -(234)           |         KCMBADSQ          |
    *     +---------------------------+---------------------------+
    * 240 |                       KCMSYNLR                        |
    *     +---------------------------+---------------------------+
    * 248 |         KCMXXLWK          |         KCMXXMBH          |
    *     +---------------------------+---------------------------+
    * 250 |                                                       |
    *     =                       KCMINIT                         =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 268 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    * 280
    *
    *** KCMBK - Kernel communication management block

KCMBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    KCMARENT       006C
    KCMARNSS       0074 KCMSCKTS
    KCMARSSI       0074 KCMSCKTS
    KCMBADSQ       023C
    KCMBKLN        0268 00000280
    KCMBKSZ        0268 00000050
    KCMCSSID       00F0
    KCMDC219       0268 000000DB
    KCMEND         0268 00000280
    KCMFL          001C
    KCMFLVJH       001C 40
    KCMFLVJR       001C 20
    KCMFLXMS       001C 10
    KCMINFLX       0050
    KCMINIT        0250
    KCMIPLRS       0114
    KCMLKWRD       0000
    KCMLNKCT       0230
    KCMLNKTO       0120
    KCMLTMSK       004C
    KCMLWKBK       0228
    KCMLWKCT       022A
    KCMLWKPT       022C
    KCMLWKSQ       0228
    KCMMBSSZ       0104
    KCMMYMSK       0100
    KCMMYNOD       0108
    KCMNODHD       0018
    KCMSAMPL       0234
    KCMSARRY       0068
    KCMSBTMP       0070
    KCMSCFBK       00F4
    KCMSCFDF       0048
    KCMSCKBK       0044
    KCMSCKLK       0028
    KCMSCKNM       00FC
    KCMSCKSA       0040
    KCMSCKTO       0020
    KCMSCKTS       0074
    KCMSFL         00F8
    KCMSFLLK       00F8 80
    KCMSFLSP       00F8 40
    KCMSYMSK       00A0
    KCMSYNHI       0118
    KCMSYNLK       0078
    KCMSYNLR       0240
    KCMSYNMS       00B0
    KCMSYNTO       0098
    KCMSYNVL       0090
    KCMSYRSP       00A4
    KCMSYTTM       00A8
    KCMTR          001D
    KCMTRACE       0110
    KCMTRLLA       001C 40
    KCMTRLLR       001C 80
    KCMXIPLC       0128
    KCMXX_CTL      001E
    KCMXXFL        001F
    KCMXXFLS       001F 80
    KCMXXLWK       0248
    KCMXXMBH       024C

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:28:45 EDT.
Copyright IBM Corporation, 1990, 2020