CORBK | Back to Index page

| Prolog Control Block Contents CORBK 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.

CORBK Prolog | Top of page

     NAME       : HCPCORBK
     DESCRIPTION: CORE Control Block
     DSECT      : CORBK
     FUNCTION   : contains data unique to a core so the data is
                  common to all CPUs of a core.
     LOCATED BY : RCCCORET - array of fullwords indexed by core ID that
                  contain CORBK addresses for processors with
                  PFXPGs in cyclic list, or zeros otherwise.
                  RCCCORST - starting address of contiguous memory used
                  to sequentially allocate all CORBKs by their
                  core ID for up to MAXRPROC CORBKs.
                  HCPHISMT - contains an internal Core data structure that
                  associates names of fields from the z/OS
                  IHACORE data structure to the corresponding
                  fields in the CORBK. If changes are made to
                  the CORBK to add fields then HCPHIS should be
                  evaluated to determine whether they should be
                  added to its Core data structure. Any changes
                  to field offsets in the CORBK will require
                  corresponding adjustments be made to the Core
                  data structure.
     CREATED BY : HCPISTOR allocates all CORBKs and initializes RCCCORST
                  before the first call to HCPMPSON for the IPL processor.
                  CORBKs are allocated on cache line boundaries.
     DELETED BY : Never deleted. Permanently allocated at initialization.
     REFERENCES : DSVBK - The CORDSVBK field contains the address of the
                  DSVBK associated with the activated processors
                  of this core.
     SERIALIZED : CORBKLOK exclusive serializes all updates to the CORBK.
                  Routines that need to prevent changes to the CORBK
                  while reading multiple fields should hold CORBKLOK
                  exclusive. However, unserialized checks of the CORBK
                  contents may be appropriate in cases where changes to
                  the state of a field after it is fetched are not a
                  problem, or the set of values fetched do not need to
                  be self-consistent. The CORBKLOK must not be held
                  on multiple CORBKs at a time.
                  Vary Proc lock (HCPRCCVA) is used to serialize adding
                  and removing of the CORBK addresses from the RCCCORET
                  entry for the core at the time the core is configured
                  and deconfigured. State changes of the core related to
                  Vary Proc/Core which are required in the CORBK require
                  the CORBKLOK in addition to the Vary Proc Lock.
                  Topology lock exclusive (HCPDSVTL) serializes the
                  (dis)association of the CORBK from/with a DSVBK but
                  recording of the state changes in the CORBK also
                  requires the CORBKLOK in addition to the Topology Lock.
                  HISMT callers must hold a share of the Topology lock
                  whenever DSVBK to CORBK associations must be
                  guaranteed as in the case of calls to HISMT with the
                  CBFAN parameter to calculate DSVCBF values. However,
                  CORBKLOK exclusive is also needed to prevent
                  changes to the MT counter related CORBK fields.
                  Extraction of MT counters to CORMTCTR and updates to
                  related CORBK fields require CORBKLOK exclusive.
                  CORBKLOK exclusive is necessary to read MT counter
                  related fields in the CORBK while ensuring that the
                  set of counter values are self-consistent, and  the
                  timestamp and other related fields are from the time
                  of the extraction of that set of counter values.
                  For tasks that acquire CORBKLOK and the Topology Lock,
                  the share of the Topology lock must be acquired first
                  because of lock hierarchy requirements. Refer to the
                  prolog of HCPHIP for a clear description of the lock
                  hierarchy including the Vary Proc Lock and Topology
                  Lock.  Since HCPHIP acquires the TS DSVBK List Lock
                  before calling HCPHIPAD or HCPHIPRD, the CORBKLOK is
                  lower in the hierarchy than the TS DSVBK list lock.
                  Other field specific serialization is described in the
                  field descriptions and the notes section below.
     RELOCATION CONSIDERATIONS : None
     COMPATIBILITY AND MIGRATION CONCERNS : None

CORBK Control Block Content | Top of page

     CORBK DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      CORBK          CORE Control Block
    0000    0 Dbl-Word     8 CORBKLOK (6)   CORBK Lock - exclusive-only
                                            spinlock. See prolog for usage
                                            info.
    0030   48 Dbl-Word     8 * (12)         Reserved for IBM use.
    0090  144 Signed       2 CORID          Core ID.
    0092  146 Bitstring    1 CORTHRDS       Count of threads activated on
                                            this core.
    0093  147 Bitstring    1 CORPOLAR       Polarization of a core.
              00000000       PFXPOLHZ       X'00' PFXPOLHZ - Horizontal
              00000001       PFXPOLVL       X'01' PFXPOLVL - Vertical Low
              00000002       PFXPOLVM       X'02' PFXPOLVM - Vertical Medium
              00000003       PFXPOLVH       X'03' PFXPOLVH - Vertical High
    0094  148 Bitstring    1 CORCPUTY       CPU Type of core.
    0095  149 Address      4 * (0)          Force a cross reference
    0095  149 Bitstring    1 CORCLASS       ProcClass of core.
                                            PSAProcClass_zIIP,PSAProcClass_IC
                                            F,
                                            PSAProcClass_IFL,PSAMaxProcClass
              00000000       PSAProcClass_CP
                                            X'00' PSAProcClass_CP CP code for
                                            HISMT
              00000002       PSAProcClass_zAAP
                                            X'02' PSAProcClass_zAAP zAAP code
                                            for HISMT
              00000004       PSAProcClass_zIIP
                                            X'04' PSAProcClass_zIIP zIIP code
                                            for HISMT
              00000006       PSAProcClass_ICF
                                            X'06' PSAProcClass_ICF ICF code
                                            for HISMT
              00000008       PSAProcClass_IFL
                                            X'08' PSAProcClass_IFL IFL code
                                            for HISMT
              00000008       PSAMaxProcClass
                                            PSAProcClass_IFL PSAMaxProcClass
                                            Maximum ProcC supported by HISMT.
    0096  150 Address      4 * (0)          ,PSAProcClass_ICF,PSAProcClass_IF
                                            L,PSAMaxProcClass) Force a cross
                                            reference
    0096  150 Bitstring    1 CORSTATE       Core configuration state.
              00000000       COROFFLN       X'00' COROFFLN Procs of core
                                            offline.
              00000001       CORONLIN       X'01' CORONLIN Procs of core are
                                            online.
              00000002       CORPARKD       X'02' CORPARKD Procs of core
                                            parked.
    0097  151 Bitstring    1 *              Reserved for IBM use.
    0098  152 Signed       8 CORTODON       Time the core was configured
                                            online in TOD clock units.
    00A0  160 Signed       2 * (3)          Reserved for IBM use
    00A6  166 Signed       2 CORCPUAO       Logical CPU address origin. This
                                            field is the CPU address of the
                                            first CPU in CORCPUM.
    00A8  168 Bitstring    8 CORCPUM        Mask of activated CPUs on this
                                            core starting with the address
                                            specified in CORCPUAO Although
                                            this is a partial mask it will
                                            contain the complete set of
                                            activated thread CPU addresses
    00B0  176 Address      4 CORDSVBK       Pointer to DSVBK for this core if
                                            activated.
          The following fields are used by the HISMT service and
          other related services.
    00B4  180 Bitstring    1 CORREQST       Core data request flags.
              1... ....      CORCEPND       X'80' CORCEPND Counter extraction
                                            request is pending.
    00B5  181 Bitstring    1 CORCESTA       Ctr extraction state codes.
              00000001       CORCEIDL       X'01' CORCEIDL Ctr extraction is
                                            idle.
              00000002       CORCEACT       X'02' CORCEACT Ctr extraction is
                                            active.
    00B6  182 Bitstring    2 *              Reserved for IBM use.
    00B8  184 Signed       8 COREXTTM       Time MT counters were last
                                            extracted in TOD units.
    00C0  192 Signed       4 COREXTCT       Count of times MT counters were
                                            extracted.
    00C4  196 Signed       4 CORCTLMT       Count of loss-of-MT-counter-data
                                            conditions detected by CPUs of
                                            this core. Serialized by CS
                                            rather than the CORBKLOK.
    00C8  200 Address      4 CORMTCTA       Addr MT counter data area.
              ..11 ....      CORMTDC4       48 CORMTDC4 Max of 48
                                            MT-Diagnostic counters when
                                            CSVN=4.
    00CC  204 Signed       4 CORCPUSP       CPU Speed (CPU
                                            cycles/microsecond) Only updated
                                            if MT enabled.
    00D0  208 Signed       2 CORCFVN        Counter First Version Number
    00D2  210 Signed       2 CORCSVN        Counter Second Version Number
    00D4  212 Signed       4 CORCTMON       Count of times CORCTLMT was
                                            incremented when handling a
                                            monotonicity violation.
    00D8  216 Signed       4 CORMONPR       Count of monotonicity violations
                                            detected during prorated core
                                            time calculations.
    00DC  220 Signed       4 CORTLSEQ       Threading level transition
                                            sequence number. Odd during a
                                            threading level change and even
                                            otherwise. When 0, there have not
                                            been any threading level
                                            transitions since the core was
                                            last varied on. Continuous
                                            RCCSMTLK exclusive required for
                                            entire transition.
    00E0  224 Signed       8 CORTMTLT       Time of last threading level
                                            transition after IPL in TOD
                                            units.
    00E8  232 Signed       8 CORPSTTM       Previous single-threaded time in
                                            TOD units. The amount of time the
                                            core ran single-threaded prior to
                                            the transition to the current
                                            threading level at time CORTMTLT.
    00F0  240 Signed       8 CORP2TTM       Previous two-threaded time in TOD
                                            units. The amount of time the
                                            core ran two-threaded prior to
                                            the transition to the current
                                            threading level at time CORTMTLT.
              000000F8       CORUSED1       (*-CORBK) Size of used CORBK
                                            space.
    00F8  248 Bitstring    1 CORRSRV1 (8)   Avail CORBK space.
          Beginning of 2nd cache line.
    0100  256 Dbl-Word     8 CORMTCTR (48)  MT counter data area.
              00000180       CORMTCTL       (*-CORMTCTR) Length MT counter
                                            area.
          Fields only expected to be used during development.
    0280  640 Signed       8 COREXTTT       Total time consumed to extract MT
                                            counters for this core to the
                                            CORBK. In TOD clock units.
    0288  648 Dbl-Word     8 * (2)          Reserved for IBM use.
    0298  664 Dbl-Word     8 CORMTPRV (8)   Previous C and I counters.
                                            2U8206DN
    02D8  728 Signed       4 CORMON1        Count of monotonicity violations
                                            for C1.
    02DC  732 Signed       4 CORMON2        Count of monotonicity violations
                                            for C2.
    02E0  736 Signed       4 CORMON3        Count of monotonicity violations
                                            for ctr 452.
    02E4  740 Signed       4 CORMON4        Count of monotonicity violations
                                            for ctr 453.
              000002E8       CORUSED2       (*-CORBK) Size of used CORBK
                                            space.
    02E8  744 Bitstring    1 CORRSRV2 (24)  Avail CORBK space.
              00000300       CORBSIZE       (*-CORBK+255)/256*256 CORBK
                                            length in bytes
              00000060       CORSIZE        (CORBSIZE+7)/8 CORBK size in
                                            dwords

CORBK Storage Layout | Top of page

    *** CORBK - CORE Control Block
    *
    *     +-------------------------------------------------------+
    *   0 |                                                       |
    *     =                       CORBKLOK                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  30 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------+------+------+------+------+------+------+
    *  90 |   CORID     |:THRDS|:POLAR|:CPUTY|:CLASS|:STATE|//////|
    *     +-------------+------+------+------+------+------+------+
    *  98 |                       CORTODON                        |
    *     +-----------------------------------------+-------------+
    *  A0 |/////////////////////////////////////////|  CORCPUAO   |
    *     +-----------------------------------------+-------------+
    *  A8 |                       CORCPUM                         |
    *     +---------------------------+------+------+-------------+
    *  B0 |         CORDSVBK          |:REQST|:CESTA|/////////////|
    *     +---------------------------+------+------+-------------+
    *  B8 |                       COREXTTM                        |
    *     +---------------------------+---------------------------+
    *  C0 |         COREXTCT          |         CORCTLMT          |
    *     +---------------------------+---------------------------+
    *  C8 |         CORMTCTA          |         CORCPUSP          |
    *     +-------------+-------------+---------------------------+
    *  D0 |  CORCFVN    |  CORCSVN    |         CORCTMON          |
    *     +-------------+-------------+---------------------------+
    *  D8 |         CORMONPR          |         CORTLSEQ          |
    *     +---------------------------+---------------------------+
    *  E0 |                       CORTMTLT                        |
    *     +-------------------------------------------------------+
    *  E8 |                       CORPSTTM                        |
    *     +-------------------------------------------------------+
    *  F0 |                       CORP2TTM                        |
    *     +-------------------------------------------------------+
    *  F8 |                       CORRSRV1                        |
    *     +-------------------------------------------------------+
    * 100 |                                                       |
    *     =                       CORMTCTR                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 280 |                       COREXTTT                        |
    *     +-------------------------------------------------------+
    * 288 |///////////////////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    * 298 |                                                       |
    *     =                       CORMTPRV                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    * 2D8 |         CORMON1           |         CORMON2           |
    *     +---------------------------+---------------------------+
    * 2E0 |         CORMON3           |         CORMON4           |
    *     +---------------------------+---------------------------+
    * 2E8 |                                                       |
    *     =                       CORRSRV2                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 300
    *
    *** CORBK - CORE Control Block

CORBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    CORBKLOK       0000
    CORBSIZE       02E8 00000300
    CORCEACT       00B5 00000002
    CORCEIDL       00B5 00000001
    CORCEPND       00B4 80
    CORCESTA       00B5
    CORCFVN        00D0
    CORCLASS       0095
    CORCPUAO       00A6
    CORCPUM        00A8
    CORCPUSP       00CC
    CORCPUTY       0094
    CORCSVN        00D2
    CORCTLMT       00C4
    CORCTMON       00D4
    CORDSVBK       00B0
    COREXTCT       00C0
    COREXTTM       00B8
    COREXTTT       0280
    CORID          0090
    CORMONPR       00D8
    CORMON1        02D8
    CORMON2        02DC
    CORMON3        02E0
    CORMON4        02E4
    CORMTCTA       00C8
    CORMTCTL       0100 00000180
    CORMTCTR       0100
    CORMTDC4       00C8 30
    CORMTPRV       0298
    COROFFLN       0096 00000000
    CORONLIN       0096 00000001
    CORPARKD       0096 00000002
    CORPOLAR       0093
    CORPSTTM       00E8
    CORP2TTM       00F0
    CORREQST       00B4
    CORRSRV1       00F8
    CORRSRV2       02E8
    CORSIZE        02E8 00000060
    CORSTATE       0096
    CORTHRDS       0092
    CORTLSEQ       00DC
    CORTMTLT       00E0
    CORTODON       0098
    CORUSED1       00F0 000000F8
    CORUSED2       02E4 000002E8
    PFXPOLHZ       0093 00000000
    PFXPOLVH       0093 00000003
    PFXPOLVL       0093 00000001
    PFXPOLVM       0093 00000002
    PSAMaxProcClass
                   0095 00000008
    PSAProcClass_zAAP
                   0095 00000002
    PSAProcClass_zIIP
                   0095 00000004
    PSAProcClass_CP
                   0095 00000000
    PSAProcClass_ICF
                   0095 00000006
    PSAProcClass_IFL
                   0095 00000008

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