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 : HCPRCCCT - array of fullwords indexed by core ID that
              contain CORBK addresses for processors with
              PFXPGs in cyclic list, or zeros otherwise.
              (previously RCCCORET).
              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 HCPRCCCT
              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.3.0 Last updated on 22 Jun 2022 at 15:48:25 EDT.
Copyright IBM Corporation, 1990, 2022