CORBK | Back to Index page |
Prolog Control Block Contents CORBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
|
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 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 |
Copyright IBM Corporation, 1990, 2022