| 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 : 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 a share of
CORBKLOK. 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, even shared.
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,
a share of the CORBKLOK 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. A
share of CORBKLOK is sufficient to read MT counter
related fields in the CORBK. This ensures 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 |///////////////////////////////////////////////////////| * =///////////////////////////////////////////////////////= * |///////////////////////////////////////////////////////| * +-------------+------+------+------+------+------+------+ * 98 | CORID |:THRDS|:POLAR|:CPUTY|:CLASS|:STATE|//////| * +-------------+------+------+------+------+------+------+ * A0 | CORTODON | * +-------------------------------------------------------+ * 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 009D CORCPUM 00A8 CORCPUSP 00CC CORCPUTY 009C CORCSVN 00D2 CORCTLMT 00C4 CORCTMON 00D4 CORDSVBK 00B0 COREXTCT 00C0 COREXTTM 00B8 COREXTTT 0280 CORID 0098 CORMONPR 00D8 CORMON1 02D8 CORMON2 02DC CORMON3 02E0 CORMON4 02E4 CORMTCTA 00C8 CORMTCTL 0100 00000180 CORMTCTR 0100 CORMTDC4 00C8 30 CORMTPRV 0298 COROFFLN 009E 00000000 CORONLIN 009E 00000001 CORPARKD 009E 00000002 CORPOLAR 009B CORPSTTM 00E8 CORP2TTM 00F0 CORREQST 00B4 CORRSRV1 00F8 CORRSRV2 02E8 CORSIZE 02E8 00000060 CORSTATE 009E CORTHRDS 009A CORTLSEQ 00DC CORTMTLT 00E0 CORTODON 00A0 CORUSED1 00F0 000000F8 CORUSED2 02E4 000002E8 PFXPOLHZ 009B 00000000 PFXPOLVH 009B 00000003 PFXPOLVL 009B 00000001 PFXPOLVM 009B 00000002 PSAMaxProcClass 009D 00000008 PSAProcClass_zAAP 009D 00000002 PSAProcClass_zIIP 009D 00000004 PSAProcClass_CP 009D 00000000 PSAProcClass_ICF 009D 00000006 PSAProcClass_IFL 009D 00000008 |
Copyright IBM Corporation, 1990, 2016