|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure RCCBK RCPU DATA AREA MAPPING
SAVBK management zappable constants and queues
0000 0 Dbl-Word 8 RCCURCQ SAVBK reclaim queue (unsorted)
0008 8 Address 4 RCCSRCQ SAVBK reclaim queue (sorted)
000C 12 Address 4 RCCSFQ SAVE frame queue
0010 16 Signed 4 RCCRCNUM Number of SAVBKs being reclaimed
0014 20 Signed 4 RCCSVNUM Number of SAVBKs allocated
0018 24 Dbl-Word 8 RCCSFQL (6) SAVE frame queue lock
0048 72 Signed 8 RCCICFAB Incomplete frame reclaim time
limit in seconds
0050 80 Signed 8 RCCLNINT HCPSAMFS sampling period, 10 sec.
0058 88 Signed 4 RCCNOINT Number of intervals to average
.... 1... RCCMXAVS 8 RCCMXAVS Scaling factor for
below &VX1NASG
005C 92 Signed 4 RCCMAXAV Maximum percentage of buffers
available
0060 96 Signed 4 RCCMINSV Minimum number of saveareas per
processor
0064 100 Address 1 RCCSTFLG Free storage availability flags
1... .... RCCSAVL X'80' RCCSAVL Free storage
available for SAVBKs
0065 101 Bitstring 1 * (3) Reserved for future IBM use
MP Defer Data Area
Checkpoint determination intervals
0068 104 Signed 8 RCCMPDLY 1/10 second, until adjusted by
HCPISR to be a function of the
minor timeslice.
0070 112 Dbl-Word 8 * Reserved for IBM use
0078 120 Address 1 RCCMPDAC MP Defer Active Test & Set flag
0079 121 Bitstring 3 * Reserved
"CP Loss of Control" deferred work queues
007C 124 Address 4 RCCMPCQ0 Work for which 0 or more MP
checkpoints have occurred
0080 128 Address 4 RCCMPCQ1 Work for which 1 or more MP
checkpoints have occurred
"Loss of Control" deferred work queues
0084 132 Address 4 RCCMPSQ0 Work for which 0 or more MP
checkpoints have occurred
0088 136 Address 4 RCCMPSQ1 Work for which 1 or more MP
checkpoints have occurred
RCCCPUAA: Array of CPU addresses for online processors
Function : Used to get the CPU address of a CPU with a
given PFXINDEX. The PFXINDEX divided by 2 is
the displacement of a CPU's entry in this
array. VMDHDSV can also be used to find a
CPU's entry in this array due to the direct
relationship (VMDHDVSH) between VMDHDSV and
PFXINDEX for a given CPU. Finally, since
VMDHDSV is just the displacement of the
DSVBK in the array of DSVBKs (HCPDSVST), the
address of a DSVBK can be used to index into
this array as well. The following are useful
relationships:
1) VMDHDSV = addr(DSVBK) - addr(HCPDSVST)
2) PFXINDEX = VMDHDSV / 2**VMDHDVSH
3) RCCCPUAA index = PFXINDEX / 2
Serialized :
This array should be changed only when the
VARY lock is held or for the IPL processor
at initialization time.
No serialization needed to examine an entry.
When an entry in the array is being examined,
a value of x'FFFF' means the processor is no
longer available. Any value other than
x'FFFF' means either that the processor is
available or that the processor has been
varied off but the 2 minute wait interval
before its storage is released has not
expired. Do not assume that the processor
is available just because its entry in this
array is other than x'FFFF'.
008C 140 Signed 2 RCCCPUAA (64) CPU address array
STSI response data areas.
Function : A managed, in memory copy of STSI output.
The following STSI responses are maintained:
1.1.1 and 1.2.2.
For STSI 1.1.1 and 1.2.2, an additional pair
of data areas is maintained that contains
the most recent responses with non-transient
states indicated. See SSI1TRNS and HCPSSICC.
These are needed for Diagnose x'2E0'.
References to these data areas during CP
initialization must test the pointers to
ensure they are initialized (nonzero pointer)
before using the response areas.
HCPSSIBK maps the STSI responses.
Serialized :
These data areas are updated only during
system initialization while running on a
single processor, or later while running on
the SYSTEM VMDBK.
Each time the STSI responses are updated, a
new data area is allocated and the pointers
below are updated. The prior response area
is released by an MPDFR call to HCPSSIRL to
allow existing references to continue to use
the old response areas until their next loss
of control.
No serialization is provided to consumers of
these data areas that allows access over a
loss of control. The STSI response area may
have been released during the loss of control.
No form of serialization can provide a
self-consistency guarantee for the pair of
responses for STSI 1.1.1 and 1.2.2 since
changes may occur between the STSI instruction
invocations that affect values reported in
both STSI responses. For example, changes to
capability values reported by STSI 1.2.2 may
be explained by corresponding changes to CCR
and CAI values reported by STSI 1.1.1.
010C 268 Address 4 RCC111 Most recent STSI 1.1.1 response.
0110 272 Address 4 RCC122 Most recent STSI 1.2.2 response.
0114 276 Address 4 RCC111NT Non-transient STSI 1.1.1 resp.
0118 280 Address 4 RCC122NT Non-transient STSI 1.2.2 resp.
RCCEMSxx: EMSBK Cleanup Counts and Type flags
Function : Track statistics for cleanup of EMSBKs found
on the PFXPG of a processor during VARY
processing. The individual counts are for
different points in the processing of
VARY OFF PROC/CORE and VARY ON PROC/CORE.
If the EMSBKs are cleaned up after
the HCPMPCLF processing,
then the EMSBKs may have been waiting to be
processed for 2 minutes or more. This should
be avoided because the result will be that
the tasks waiting for completion of HCPSGP's
processing will appear to hang while the
EMSBK is on the PFXEMSAN queue. Currently,
this is only the case for HCPSGPNC's callers
indicated by RCCEMSNF.RCCEMSNC being on.
There should be a count field and flag byte
for each caller of HCPSGPDR.
Serialized :
All RCCEMSxx fields are serialized by
HCPRCCVA - VARY Processor Lock.
011C 284 Signed 4 RCCEMSFL EMSBK cleanups done by HCPMPCLF.
0120 288 Signed 4 RCCEMSOF EMSBK cleanups done by hcpmpsOF.
0124 292 Signed 4 RCCEMSON EMSBK cleanups done by hcpmpsON.
0128 296 Signed 4 RCCEMSFS (0) EMSBK cleanup flags.
0128 296 Bitstring 1 RCCEMSLF EMSBK type flags for RCCEMSFL.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
0129 297 Bitstring 1 RCCEMSFF EMSBK type flags for RCCEMSOF.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
012A 298 Bitstring 1 RCCEMSNF EMSBK type flags for RCCEMSON.
1... .... RCCEMSAR X'80' RCCEMSAR Alt Proc Recovery
type EMSBKs.
.1.. .... RCCEMSSM X'40' RCCEMSSM Switch Master type
EMSBKs.
..1. .... RCCEMSLC X'20' RCCEMSLC Load Control type
EMSBKs.
...1 .... RCCEMSNC X'10' RCCEMSNC New CPU type
EMSBKs.
012B 299 Bitstring 1 * Reserved for IBM use.
RCCLFTIM: Array of CPU-Measurement Facility "counter
lifetime" values.
Function : Used to identify separate "lifetimes" for
CPU-Measurement Facility counters. This
array is indexed by CPU address shifted 2
bits left (multiplied by 4). These are
monotonically incrementing values that
indicate when a new "lifetime" begins.
Cumulative counter values from two different
"lifetimes" should not be used to compute
delta values. New "lifetimes" logically begin
any time the counters are reset to zero.
For our purposes, we will define a new
"lifetime" to begin when we activate CPU-
Measurement Facility counters for a given
CPU. The consequence of this is that we will
start a new "lifetime" when monitor
collection of the counters is stopped and
restarted, even if the counters were not
reset to zeroes.
Serialized :
This array is serialized by processor local
serialization. Each CPU will only ever
update its own entry.
012C 300 Signed 4 RCCLFTIM (64) Counter lifetime array
CPU-Measurement Facility buffers
Function : Per CPU pointers to buffers containing the
most recent output to Query Counter
Information (QCTRI) and Query Sampling
Information (QSI). These pointers are
indexed by CPU address. A value of zero
indicates that this CPU has never issued a
QCTRI or QSI instruction. The first time
a CPU issues the instruction, it will
allocate the buffer and store it into this
array. All subsequent executions of the
instruction will reuse the buffer. These
buffers persist as debug information and are
never released, once allocated.
Serialized :
This array is serialized by processor local
serialization. Each CPU will only ever
update its own entry. Initially, when a
CPU's entry is zero, it will allocate a
buffer and store the address in its entry. On
subsequent uses, it will find a non-zero
value and reuse its buffer.
022C 556 Address 4 RCCQCTRI (64) QCTRI buffer array
032C 812 Address 4 RCCQSI (64) QSI buffer array
042C 1068 Signed 4 * Reserved for future IBM use.
STSI 15.1.x response data area & system topology fields
Function : To save System Topology (STSI 15.1.x) data
and counters related to how often the data
has been updated. A lock is defined as these
fields can only be updated when the lock is
held exclusive and can only be read/copied
when the lock is held shared.
System Topology data is saved in storage for
1st level CP systems. Periodically, CP polls
(via PTF FC 2) to determine if the system
topology has changed. If it has, STSI 15.1.x
is issued to update the System Topology data
in storage.
When monitor needs to cut a system topology
configuration record (D1R26) or an event
record (D5R14), the fields are copied while
the lock is held shared to ensure the values
are not being updated at the time. The lock
is released before the copied data is passed
to the monitor routine because monitor might
lose control while processing the data.
HCPSSIBK maps the STSI responses including
the first part of the STSI 15.1.x response.
Serialized :
The following data areas are serialized by
the Topology lock (HCPDSVTL). This lock must
be held as follows to ensure these fields are
kept in sync and apply to the same instance
of system topology (STSI 15.1.x) response:
EXCLUSIVE:
* Whenever any of the fields are changed.
* For STSI data updates, the lock must be
held from BEFORE the PTF FC 2 until after
the STSI 15.1.x is issued to ensure the
saved STSI data is the most current.
SHARED:
* Whenever 2 or more fields are read/copied
and need to be in sync with each other.
This lock is *NOT* to be held over a loss of
control.
0430 1072 Dbl-Word 8 * (3) Reserved for IBM use
0448 1096 Bitstring 1 RCCTOPFG Flags for STSI 15.1.x information
1... .... RCCTOPSP X'80' RCCTOPSP Indicates whether
system topology facility is
supported. The rest of the system
topology fields are only valid
when this bit is ON.
0449 1097 Bitstring 1 RCCSTSIP STSI Parameters: Bits 0-4 =
Reserved, stored 0
.... .111 RCCMNEST X'07' Bits 5-7 = RCCMNEST (like
PCCMNEST) Value of selector-2 (x)
used in most recent STSI 15.1.x
ins that CP issued. If
PCCMNEST=0, RCCMNEST=2 and use
STSI 15.1.2
044A 1098 Bitstring 2 * Reserved for IBM use
044C 1100 Address 4 RCC151x Most recent STSI 15.1.x response.
This 31-bit address points to the
4K page holding the STSI 15.1.x
response.
0450 1104 Signed 4 RCCTOPPL Count of times system topology
was polled by CP via PTF FC 2.
0454 1108 Signed 4 RCCTOPCH Count of times system topology
was found changed and was updated
in storage (aka number of times
that PTF FC 2 returned CC=1)
HiperDispatch related fields
Function : Fields used to manage the HiperDispatch
environment.
Serialized :
These fields are serialized by the Vary
Processor Lock (HCPRCCVA) and the Topology
Lock (HCPDSVTL), unless otherwise noted.
0458 1112 Signed 4 RCCDEDCT Count of Dedicated vCPUs.
Serialized by vary proc lock
045C 1116 Signed 4 RCCDSVCH Count of times DSVBK association
has been changed. In addition to
when Topology changes are
detected, CPU dedication changes
can also cause us to change DSVBK
association.
0460 1120 Dbl-Word 8 * (0)
0460 1120 Signed 8 RCCDSVTM TOD value at last DSVBK assoc
change.
0468 1128 Bitstring 8 RCCVALID Mask of CPUs that have valid
association to DSVBKs
0470 1136 Bitstring 8 RCCTOPDA (64) Topology description array.
Describes the system topology of
each processor. Indexed by CPU
address.
0470 1136 Signed 2 RCCTOPDI Dispatch vector id to which a CPU
is associated
0472 1138 Bitstring 4 RCCTOPDS Topo descriptor of DSV assigned.
This topology descriptor or
identifier consists of the
container IDs (TOPCNTID) for the
TOPBKs in the topology tree above
the DSVBK specified in RCCTOPDI.
These container IDs are
positioned left to right with the
highest (greatest TOPNL value)
TOPBKs listed first.
0476 1142 Bitstring 2 RCCTOPRS Reserved for IBM use
End of RCCTOPDA entry mapping
0670 1648 Address 4 RCCTOPBF Address of pre-allocated buffer
from which to "allocate" TOPBKs
0674 1652 Signed 4 RCCTOPBS Length in bytes of the RCCTOPBF
buffer
0678 1656 Address 4 RCCTOPCU Cursor/pointer into the RCCTOPBF
buffer from where the next TOPBK
should be allocated.
067C 1660 Signed 4 * Reserved for IBM use
Miscellaneous data fields
0680 1664 Dbl-Word 8 * (0)
0680 1664 Signed 8 RCCSTPST TOD value at last system timer
pop interval
0688 1672 Signed 8 RCCSTPT Smoothed total processor time
(microsec) in last time interval
The RCCTOPDX contains the index into the VMUTOPDA
array that was used during the last rebalance operation.
This field is used to maintain the VMUTOPDA array such
that the Nth entry of each array for every VMUBK is
for the same rebalance operation.
RCCTOPDX is also used as an index into the SRXNICPF,
SRXLIUSG, SRXVMDCT, SRXACGUS and SRXNIPAD, all fields
related to rebalance and park/unpark operations.
0690 1680 Bitstring 1 RCCTOPDX Zero based index into the most
recent element in the SRXNICPF,
SRXLIUSG, SRXVMDCT, SRXACGUS,
SRXNIPAD, and VMUTOPDA arrays.
This field is serialized by the
same mechanism as the rebalance
operation. It is updated by
HCPHIPTM and used by park/unpark
calculations (HCPHIC) and
rebalance (HCPDSBRB).
0691 1681 Bitstring 3 * Reserved for IBM use.
0694 1684 Signed 4 RCCREBAL Count of the number of times a
rebalance was done on this
system.
The following fields are used to build two arrays of
origin VMUBKs for use by the DSVBK rebalance routine.
Storage for the array is obtained at system IPL time.
The arrays are rebuilt each time the guest CPU usage
prediction routine is called. The prediction routine
is called by the Periodic HiperDispatch routine before
it calls the rebalance routine.
There are two arrays built because rebalance wants to
assign new home DSVBKs first to the guests with the
largest predicted future CPU usage. So the first array
is built unordered at the beginning of this buffer and
then a quick sort is done to order them by predicted
usage. The second array is maintained at the end of
the buffer working backward through the buffer. This
This array contains all origin VMUBKs whose predicted
CPU usage is below a certain threshold as defined in
HCPVMU. This second array is built to make the quick
sort as efficient as possible by keeping the potentially
large number of inactive guests out of the array that
needs to be sorted. There is very little difference in
the predicted CPU usage of all of these guests and so
no real need to sort them.
Serialization of these arrays is accomplished with the
RCCVMULK defer lock. This lock is obtained at the
time the arrays are populated with VMUBK addresses.
This is done early in the Periodic HiperDispatch routine
which is driven once every two seconds. The lock is
held from the time population of the arrays begins
until near the end of the Periodic HiperDispatch routine
processing when the rebalance function completes.
This lock is held to ensure no VMUBKs in either array
can be released by logoff before all of the rebalance
function completes. Note that because this lock is
obtained early and held continuously across most of the
Periodic HiperDispatch routine, other locks are obtained
after RCCVMULK was obtained. Therefore RCCVMULK must
always be obtained prior to obtaining any of the
following: vary lock, scheduler lock, topology lock.
An entry (element) in the arrays consists of two fields
which are mapped by the VMUARYEN DSECT in HCPVMUBK:
1) a fullword pointer to an origin VMUBK
2) a fullword CPU usage value which is a scaled
percentage of the guest's total predicted CPU usage
for the next interval.
0698 1688 Dbl-Word 8 RCCVMULK (3) Defer lock used to serialize the
ordered and unordered arrays of
VMUBKs (see lock heirarchy info
in the block comment above)
00000100 RCCVMUPC 256 Count of pages of contiguous
storage to reserve at IPL time
for these arrays. This number is
enough to have origin VMUBKs for
100,000 guests plus 20,000+ extra
for things like AT command
VMDBKs. A CKMAINT macro
invocation in the module that
obtains this storage verifies it
is enough.
06B0 1712 Address 4 RCCVMUOA HLA start address of the ordered
array of origin VMUBKs
06B4 1716 Signed 4 RCCVMUOC Count of the number of elements
in use in the RCCVMUOA array
06B8 1720 Signed 4 RCCVMUUC Count of the number of elements
in use in the RCCVMUUA array
06BC 1724 Address 4 RCCVMUUA HLA addr of 1st entry in array of
origin VMUBKs with small
predicted CPU usage. This is at
the end of the storage buffer
that starts at the address in
RCCVMUOA. This array will be
filled in by backing up into the
buffer
06C0 1728 Address 4 RCCVMUPP HLA pointer to a one-page buffer
to be used as a work area by the
VMUBK array sort routine and also
by the dispatch vector rebalance
routine
Park/unpark mask fields
Function : Fields used to decide parked CPUs, master,
and unparked CPUs when there are topology
or white space changes.
Serialized :
These fields are serialized by the Vary
Processor Lock (HCPRCCVA).
Notes : It is the desired end state, not what needs to
change. The request is created by HCPHICCU
while holding the Vary Processor Lock, and the
entire request is processed by HCPMPCTP with
a continuous hold of the Vary Processor Lock.
06C4 1732 Bitstring 1 RCCPKFLG Flag indicating new request
.... ...1 RCCPKNEW X'01' RCCPKNEW New request to be
processed
06C5 1733 Bitstring 3 * Reserved for IBM use
06C8 1736 Dbl-Word 8 * (0)
06C8 1736 Dbl-Word 8 RCCPKMST Mask of master CPU
06D0 1744 Dbl-Word 8 RCCUPMKS (6) Desired unpark masks
06D0 1744 Dbl-Word 8 RCCCPMK Unpark mask for CP CPUs
06D8 1752 Dbl-Word 8 * Reserved for IBM use
06E0 1760 Dbl-Word 8 RCCZAPMK Unpark mask for zAAP CPUs
06E8 1768 Dbl-Word 8 RCCIFLMK Unpark mask for IFL CPUs
06F0 1776 Dbl-Word 8 RCCICFMK Unpark mask for ICF CPUs
06F8 1784 Dbl-Word 8 RCCZIPMK Unpark mask for zIIP CPUs
0700 1792 Bitstring 112 RCCPKWRK Work area for HCPMPCTP
0700 1792 Dbl-Word 8 RCCWUPKS (6) Array of calculated unpark masks
0730 1840 Dbl-Word 8 RCCWPRKS (6) Array of calculated park masks
0760 1888 Dbl-Word 8 RCCWVOUP Vary-off mask of unparked procs
0768 1896 Dbl-Word 8 RCCWVOPK Vary-off mask of parked procs
Other fields used for HiperDispatch.
The WHIBK pointer and the WHIBK control block are
serialized by restricting their use within a loop of
sequential routines which execute after a timer pop.
These fields are modified by HCPWHI and viewed by HCPHIC.
These routines cannot be re-entered until the next timer
pop because a single TRQBK is repeatedly used for this
purpose and it is not re-stacked by the calling routine
until all of the routines complete.
0770 1904 Signed 4 RCCWHIBK HLA pointer to the WHIBK,
obtained and used by HCPWHI for
white-space predictions.
0774 1908 Signed 2 RCCCPUCT (24) Array of counts of CPUs which are
associated with DSVBKs, indexed
first by CPU type, then by
polarization. Serialized by the
topology lock. Counts include
dedicated CPUs.
00000030 RCCCPUCT_len *-RCCCPUCT Length of array
Similar to RCCWHIBK above, RCCNUPK is serialized by being
set and used in sequential routines executed after a timer
pop. RCCNUPK is set in HCPHIC when the decision about
which CPUs should be in the unparked state is made.
RCCNUPK is later used when creating the park/unpark
decision monitor event record. The timer is not restacked
until after the monitor record has been generated, thus
preventing HCPHIC from running again and modifying this
field until it has been consumed.
07A4 1956 Signed 2 RCCNUPK (6) Array of counts of CPUs that are
requested to be in the unparked
state for the next interval,
indexed by CPU type.
RCPU side car trace table token. No serialization is needed,
as the RCCTRACE field is modified only at initialization.
07B0 1968 Signed 4 RCCTRACE Token for RCPU function trace
table.
Similar to RCCWHIBK and RCCNUPK, RCCOSCCT is serialized by
being set and used in sequential routines executed after a
timer pop. RCCOSCCT is used in HCPHICCC to decide whether
to leave one extra CPU unparked to avoid park/unpark
oscillation.
07B4 1972 Signed 2 RCCOSCCT (6) Array of times in a row that
HCPHICCC has predicted it will
need exactly one less CPU than it
currently has unparked. Indexed
by CPU type.
These arrays are allocated for two purposes:
1. When CP is running in a dedicated partition, they
(RCCTUTIL and RCCTTIME) are used in calculating
utilization which must be done differently when the
logical processors are dedicated to physical
processors.
2. Calculating a (per-CPU-type-pool) T/V ratio. That
is, within a given CPU type, a ratio of non-wait
execution time to guest emulation (run under SIE)
time. This is used when making park/unpark decisions
to gauge the potential MP overhead savings by parking
a CPU.
The arrays have MAXRPROC doubleword entries and are
indexed by cpu address. At each interval the value of
non-wait execution time in microseconds since the CPU was
brought online is calculated using PFXTMSYS and PFXUTIME.
HCPWHI calculates utilization for the interval as the
difference from the non-wait execution time of the prior
interval. The same calculation is performed for guest
emulation time.
07C0 1984 Address 4 RCCTUTIL HLA pointer to the array of
interval utilization in micro-
seconds calculated from PFXTMSYS
and PFXUTIME since the last
interval.
07C4 1988 Address 4 RCCTTIME HLA pointer to the array of
non-wait execution time in
microseconds calculated from
PFXTMSYS and PFXUTIME.
07C8 1992 Address 4 RCCVUTIL HLA pointer to the array of
interval utilization in micro-
seconds calculated from PFXPRBTM
since the last interval.
07CC 1996 Address 4 RCCVTIME HLA pointer to the array of guest
emulation time in microseconds
calculated from PFXPRBTM.
These fields are used to record the duration of HCPSGRSP
SIGP Restarts. Monitor record MRPRCPUP (D5R16) records
the duration and count in the D5R16 record.
Note, however, that RCCSIGTD and RCCSIGCT include SIGP
Restarts for operations unrelated to processor parking.
07D0 2000 Dbl-Word 8 RCCSIGTM Work area for timestamp used to
calculate the duration of SIGP
restart operations. Serialized by
vary proc lock.
07D8 2008 Dbl-Word 8 RCCSIGTE Work area for timestamp used to
calculate the duration of SIGP
restart operations. Serialized by
vary proc lock.
07E0 2016 Dbl-Word 8 RCCSIGTD Cumulative duration of time spent
in SIGP restarts expressed as the
sum of the TOD clock increments
between the time the SIGP restart
started and returned. Serialized
by vary proc lock.
07E8 2024 Signed 4 RCCSIGCT Cumulative count of successful
SIGP restarts. Serialized by vary
proc lock.
07EC 2028 Signed 4 * Reserved for IBM use Space 1
RCCxCAPy: CPU Capability formats from STSI 1.2.2
in integer and binary floating point formats.
- If the secondary value (integer or BFP) is
zero, then all processors have the same
capability, reflected in the primary value.
- If the nominal value (integer or BFP)
is zero, then processors are currently
operating at their nominal capability,
reflected in the primary or secondary value.
- Integer values are rounded from BFP values,
except that a near-zero BFP value is
rounded up to integer 1.
Function : In zEC12 and earlier machines, STSI 1.2.2
reports only integer values for CPU
capability fields. In z13 and later
machines, the CPU capability is given as
an integer or as a binary floating point
number. We want to store both values for
all architectures for monitor and accounting
records' backward compatibility.
Serialized :
Serialized by SYSTEM VMDBK Dispatch lock for store
and none for fetch (it's just a snapshot of fields).
07F0 2032 Signed 4 RCCCCAPF CPU Capability in BFP format
07F4 2036 Signed 4 RCCCCAPI CPU Capability in integer format
07F8 2040 Signed 4 RCCSCAPF Secondary CPU Cap in BFP format
07FC 2044 Signed 4 RCCSCAPI Secondary CPU Cap in int format
0800 2048 Signed 4 RCCNCAPF Nominal CPU Cap in BFP format
0804 2052 Signed 4 RCCNCAPI Nominal CPU Cap in int format
START OF MULTITHREADING CONFIGURATION DATA.
Multithreading(MT) facility related fields.
0808 2056 Bitstring 1 RCCMTRSM MT not enabled reason mask
1... .... RCCMTNTI X'80' RCCMTNTI MT facility is not
installed
.1.. .... RCCMT390 X'40' RCCMT390 ESA/390 or GENERAL
LPAR mode
..1. .... RCCMTLCP X'20' RCCMTLCP LINUX only LPAR
with CP processors
...1 .... RCCMTCRF X'10' RCCMTCRF Missing
corequisite facilities
.... 1... RCCMTRBL X'08' RCCMTRBL SRM statement
specified rebalance
.... .1.. RCCMTHOR X'04' RCCMTHOR Horizontal
polarization
.... ..1. RCCMTHIG X'02' RCCMTHIG IPL CPU addr is
too high
.... ...1 RCCMTSFA X'01' RCCMTSFA SIGP failure. See
RCCMTFRS.
0809 2057 Bitstring 1 * Reserved
080A 2058 Bitstring 1 RCCMTCFM Missing MT corequisite facility
mask
1... .... RCCMTRF1 X'80' RCCMTRF1 Facility 1
required by MT missing
.1.. .... RCCMTCSV X'40' RCCMTCSV No MT counter sets
support
..1. .... RCCSCCMV X'20' RCCSCCMV
Store-CPU-counter-multiple
facility is not available.
080B 2059 Bitstring 1 RCCMTPMT Multithreading program-specified
maximum thread ID
080C 2060 Bitstring 1 RCCMTTDW Multithreading thread id width
080D 2061 Bitstring 1 RCCMTFRS SIGP set-multithreading order
failure reason code
080E 2062 Signed 2 * Reserved
0810 2064 Signed 4 RCCMTFST Detailed failure status when
RCCMTFRS=1
0814 2068 Signed 4 RCCSMTSQ Multithreading config change
Sequence number. Odd when a SET
MT command is in progress and
even otherwise. When 0, the
multithreading config has not
been modified by SET MT. Updates
are serialized by CS.
RCCSMTLK held exclusive serializes updates to all fields
following the lock up to the end of the RCCSMTLK serialized
data section and must be held continuously until all
processing associated with changes to activated thread
counts have completed. Self-consistent reads are guaranteed
by holding RCCSMTLK shared. Processing of the MULTITHREADING
statement during initialization occurs while the system is
running uniprocessor so use of RCCSMTLK can be skipped then.
Processor configuration changes needed because of changes
to the Activated thread counts require the Vary Proc lock
exclusive obtained while continuously holding the SMT
Configuration lock exclusive. Therefore the RCCACMNT array
is serialized by SMT Configuration Lock plus Vary Proc Lock.
A consequence of an SMT configuration change is
that the number of activated threads per core may
change. Therefore functions that alter the processor
configuration such as VARY CORE require protection
against changes to the activated thread count while it
makes the processor configuration change. Because VARY
CORE operates on a single core, the Vary Processor Lock
is sufficient protection because the change of the
activated thread count resulting from an SMT configura-
tion change is done while holding both the SMT config-
uration lock and the Vary Proc Lock. However, functions
like hiperdispatch that make decisions for an entire
CPU type require at least a share of SMT Configuration
Lock as protection. In some cases it may be sufficient
to use a continuous hold of the Vary Proc Lock if the
only portion of the SMT configuration data that is used
is serialized by both locks. Hiperdispatch functions
that do not hold the Vary Proc Lock continuously use
the SMT Configuration Lock over the entire transition
that requires protection from SMT configuration changes.
The SMT Configuration Lock is higher in the hierarchy
that the Vary Proc Lock.
0818 2072 Dbl-Word 8 RCCSMTLK (3) SMT Configuration (defer) Lock.
Used to serialize the
multithreading configuration data
changed by SET MT command. If
both this lock and HCPRCCVA are
needed this lock must be acquired
first if deferring on the locks.
Otherwise make a conditional
request and back out if it isn't
acquired.
START OF RCCSMTLK SERIALIZED DATA SECTION.
0830 2096 Signed 8 RCCSMTTM TOD value at completion of the
last successful multithreading
configuration change.
Mask of CPU Types supported in the MULTITHREADING
config statement.
00000000 RCCMTCTM PUMCP+PUMZIP+PUMIFL+PUMICF
Information from MultiThreading statement in config file.
If MAX is specified for any operand, the operand value
will be set to X'FF'
0838 2104 Bitstring 1 RCCCOMXT Value specified on MAX_THREADS
0839 2105 Bitstring 1 RCCCOALL Value specified on type ALL This
field is used only during
statement processing and has no
meaning during system operation
083A 2106 Signed 2 * Reserved
083C 2108 Signed 4 * Reserved for IBM use.
0840 2112 Bitstring 1 RCCCOMNT (6) Array of values specified on
config statement per CPU type
0840 2112 Bitstring 1 RCCCOCP Requested threads for CP cores
0841 2113 Bitstring 1 * Reserved
0842 2114 Bitstring 1 * Reserved
0843 2115 Bitstring 1 RCCCOIFL Requested threads for IFL cores
0844 2116 Bitstring 1 RCCCOICF Requested threads for ICF cores
0845 2117 Bitstring 1 RCCCOZIP Requested threads for ZIIP cores
0846 2118 Bitstring 1 * (2) Reserved
Max numbers of threads per CPU type supported by hardware
0848 2120 Bitstring 1 RCCHWMNT (6) Maximum numbers of threads per
CPU type supported by hardware
0848 2120 Bitstring 1 RCCHWCP Maximum threads for CP cores
0849 2121 Bitstring 1 * Reserved
084A 2122 Bitstring 1 * Reserved
084B 2123 Bitstring 1 RCCHWIFL Maximum threads for IFL cores
084C 2124 Bitstring 1 RCCHWICF Maximum threads for ICF cores
084D 2125 Bitstring 1 RCCHWZIP Maximum threads for ZIIP cores
084E 2126 Bitstring 1 * (2) Reserved
Max numbers of threads per CPU type supported by z/VM CP
0850 2128 Bitstring 1 RCCSYMNT (6) Maximum numbers of threads per
CPU type supported by z/VM CP
0850 2128 Address 1 RCCSYCP Maximum threads for CP cores
0851 2129 Bitstring 1 * RESERVED
0852 2130 Bitstring 1 * RESERVED
0853 2131 Address 1 RCCSYIFL Maximum threads for IFL cores
0854 2132 Address 1 RCCSYICF Maximum threads for ICF cores
0855 2133 Address 1 RCCSYZIP Maximum threads for ZIIP cores
0856 2134 Bitstring 1 * (2) Reserved
SET MULTITHREAD command information. The requested thread
count fields map 1:1 to the fields for the MULTITHREADING
system config file statement. The values are from the
most recent successful SET MT command. Additional fields
provide serialization and related information.
Parameters from most recent successful SET MT command.
If MAX is specified for any operand, the operand value
will be set to X'FF'. If ALL was not specified, any
unspecified CPU type will have a value of x'00'. All
values will be zero if INITIAL was specified.
RCCSMFLG is used to inform Monitor about the stage of
processing to report in MRPRCSMT (D5 R21).
0858 2136 Bitstring 1 RCCSMALL Value specified on type ALL of
the most recent successful SET MT
command.
0859 2137 Bitstring 1 RCCSMSET SET MT flags.
1... .... RCCSMINI X'80' RCCSMINI SET MT INITIAL
specified.
085A 2138 Bitstring 1 RCCSMFLG Multithreading config change
flags. In MRPRCSMT (D5 R21) this
flag distinguishes between the
start and completion records.
00000080 RCCSMSTA X'80' RCCSMSTA Multithreading
config change processing has
started.
00000040 RCCSMFIN X'40' RCCSMFIN Multithreading
config change processing has
finished.
00000000 RCCSMINA X'00' RCCSMINA Multithreading
config change processing is not
active.
085B 2139 Bitstring 1 * Reserved for IBM use.
085C 2140 Signed 4 * Reserved for IBM use.
0860 2144 Bitstring 1 RCCSMMNT (6) Array of values specified on SET
MT command per CPU type.
0860 2144 Bitstring 1 RCCSMCP Specified threads for CP cores.
0861 2145 Bitstring 1 * Reserved for IBM use.
0862 2146 Bitstring 1 * Reserved for IBM use.
0863 2147 Bitstring 1 RCCSMIFL Specified threads for IFL cores.
0864 2148 Bitstring 1 RCCSMICF Specified threads for ICF cores.
0865 2149 Bitstring 1 RCCSMZIP Specified threads for zIIP cores.
0866 2150 Bitstring 1 * (2) Reserved for IBM use.
Resulting Requested Multithreading Configuration:
These values are the same as above, but with the zeros
replaced with the prior values because those CPU types are
unchanged.
0868 2152 Bitstring 1 RCCCRMNT (6) Array of new multithreading
configuration values.
0868 2152 Bitstring 1 RCCCRCP Requested threads for CP cores.
0869 2153 Bitstring 1 * Reserved for IBM use.
086A 2154 Bitstring 1 * Reserved for IBM use.
086B 2155 Bitstring 1 RCCCRIFL Requested threads for IFL cores.
086C 2156 Bitstring 1 RCCCRICF Requested threads for ICF cores.
086D 2157 Bitstring 1 RCCCRZIP Requested threads for zIIP cores.
086E 2158 Bitstring 1 * (2) Reserved for IBM use.
Per CPU Type activated thread count transition sequence
number. These values can be used to determine whether a
transition is active, as well as how many transitions
have occurred for each CPU type. The sequence number is
incremented only if the activated thread count changes.
When the sequence number is 0, there has not been a
change to the activated thread count for the CPU type
since IPL. If it is odd then a transition is active,
and if it is even and greater than 0 the value is
twice the number of transitions because the value is
incremented at the start and end of the transition.
0870 2160 Signed 4 RCCATSEQ (6) Array of activated-thread-cnt
transition sequence numbers.
0870 2160 Signed 4 RCCATSCP Sequence number for CP activated
thread count transitions.
0874 2164 Signed 4 * Reserved for IBM use.
0878 2168 Signed 4 * Reserved for IBM use.
087C 2172 Signed 4 RCCATSIFL Sequence number for IFL activated
thread count transitions.
0880 2176 Signed 4 RCCATSICF Sequence number for ICF activated
thread count transitions.
0884 2180 Signed 4 RCCATSZIP Sequence number for zIIP
activated thread count
transitions.
0888 2184 Signed 4 * (2) Reserved for IBM use.
Actual numbers of activated threads per CPU type.
This array is serialized by SMT Configuration Lock (RCCSMTLK)
plus Vary Proc Lock (HCPRCCVA).
0890 2192 Bitstring 1 RCCACMNT (6) Actual numbers of activated
threads per CPU type
0890 2192 Address 1 RCCACCP Activated threads for CP cores
0891 2193 Bitstring 1 * RESERVED
0892 2194 Address 1 RCCACZAP Activated threads for ZAAP cores
0893 2195 Address 1 RCCACIFL Activated threads for IFL cores
0894 2196 Address 1 RCCACICF Activated threads for ICF cores
0895 2197 Address 1 RCCACZIP Activated threads for ZIIP cores
0896 2198 Bitstring 1 * (2) Reserved
Per CPU Type activated processor masks are used only
during the activated thread count transitions. They are
used in the processing to define the desired end state.
0898 2200 Bitstring 8 RCCACTMKS (6) Desired per CPU type activated
processor masks.
0898 2200 Bitstring 8 RCCACTCP Activated CP processor mask.
08A0 2208 Bitstring 1 * Reserved for IBM use.
08A8 2216 Bitstring 1 * Reserved for IBM use.
08B0 2224 Bitstring 8 RCCACTIF Activated IFL processor mask.
08B8 2232 Bitstring 8 RCCACTIC Activated ICF processor mask.
08C0 2240 Bitstring 8 RCCACTZI Activated zIIP processor mask.
08C8 2248 Bitstring 1 * (16) Reserved for IBM use.
END OF RCCSMTLK SERIALIZED DATA SECTION.
END OF MULTITHREADING CONFIGURATION DATA.
These arrays are allocated for dedicated partition
utilization calculation when multithreading is enabled.
The arrays have RCCMXCOR+1 doubleword entries and are
indexed by core ID.
08D8 2264 Address 4 RCCDPTUT HLA pointer to the array of
interval utilization in micro-
seconds calculated from CPUMF
MT-1 counters and core cycle
speed since the last interval
08DC 2268 Address 4 RCCDPTTM HLA pointer to the array of
non-wait execution time in
microseconds calculated from
CPUMF MT-1 counters and core
cycle speed
00000000 RCCCORLO 0 Lowest valid core ID (0).
08E0 2272 Address 2 RCCMXCOR Max core ID supported for current
multithreading configuration
settings.
08E2 2274 Signed 2 * Reserved for IBM use.
08E4 2276 Address 4 RCCCORET (64) Host logical addr of Core Table
indexed by core ID.
09E4 2532 Address 4 RCCCORST Start address of CORBKs
contiguously allocated and
indexed by core ID.
09E8 2536 Signed 4 RCCSPCP CP engine speed in cycles per
microsecond.
09EC 2540 Signed 4 RCCSCCP Count of speed changes for CPs.
09F0 2544 Signed 4 RCCSPSPC Specialty engine speed in cycles
per microsecond.
09F4 2548 Signed 4 RCCSCSPC Count of speed changes for
specialty engines.
Start of HISMT related information used by the HISMT
service or invokers of the service.
09F8 2552 Dbl-Word 8 RCCCTtoPC (0) CPU Type to HISMT ProcClassIndex
conversion table. Used to convert
from architected CPU type codes
to the ProcClass values used by
the HISMT service. x'FF'
indicates an unsupported CPU type
value.
09F8 2552 Address 4 * (0) Force a cross reference
09F8 2552 Address 1 * CP CPU Type
09F9 2553 Bitstring 1 * RESERVED FOR IBM USE.
09FA 2554 Address 1 * zAAP CPU Type
09FB 2555 Address 1 * IFL CPU Type
09FC 2556 Address 1 * ICF CPU Type
09FD 2557 Address 1 * zIIP CPU Type
09FE 2558 Bitstring 1 * RESERVED FOR IBM USE.
09FF 2559 Bitstring 1 * RESERVED FOR IBM USE.
0A00 2560 Dbl-Word 8 RCCPCtoCT (0) ProcClass to HISMT ProcClass
Index conversion table. Used to
convert from ProcClass values
used by the HISMT service to
architected CPU type codes. x'FF'
indicates an unsupported CPU type
value.
0A00 2560 Address 1 * CP ProcClassIndex
0A01 2561 Address 1 * zAAP ProcClassIndex
0A02 2562 Address 1 * zIIP ProcClassIndex
0A03 2563 Address 1 * ICF ProcClassIndex
0A04 2564 Address 1 * IFL ProcClassIndex
0A05 2565 Bitstring 1 * RESERVED FOR IBM USE.
0A06 2566 Bitstring 1 * RESERVED FOR IBM USE.
0A07 2567 Bitstring 1 * RESERVED FOR IBM USE.
0A08 2568 Signed 8 RCCHSTTM Time for next HISMT call for
historic values. Value is in TOD
units.
0A10 2576 Address 4 RCCMTCTR HCPMTC Timer Task TRQBK address
used to control timing of calls
for CBF and historic metric data
calculations.
HCPMTC function identifiers used internally to identify the
specific function using the HISMT service.
These equates must be assigned values corresponding
to the ordering of the bits in RCCHMDIS and the entries
in the RCCYMTUS array.
00000001 RCCYMTCB 1 ID for HISMT user = CBF
00000002 RCCYMTHD 2 ID for HISMT user = historic
metric data.
00000003 RCCYMTMC 3 ID for HISMT user = SRXMCF.
00000004 RCCYMTIN 4 ID for HISMT user = Indicate
Multithread.
00000005 RCCYMTMN 5 ID for HISMT user = MT sample
data for Monitor.
00000005 RCCYMTMX RCCYMTMN Maximum function
identifier.
HISMT/HISYMT related data areas.
These data areas contain values needed for HISMT
invocations. These data areas are allocated only
MT is enabled. The contents of the data area are
mapped by the RCCYMTDS DSECT. Each of the data areas
is serialized by the task that invokes it which are
singleton tasks, each of which never executes on
multiple processors concurrently.
0A14 2580 Address 4 RCCYMTUS (5) Array of HISMT related data
areas.
0A14 2580 Address 4 RCCCBYMT HISMT related data area for CBF
Timer Task (HCPMTCTL). Serialized
by singleton nature of CBF Timer
Task. Mapped by RCCYMTDS.
0A18 2584 Address 4 RCCHDYMT HISMT related data area for
historic Data requests
(HCPMTCTL). Serialized by
singleton nature of CBF Timer
Task. Mapped by RCCYMTDS.
0A1C 2588 Address 4 RCCMCYMT HISMT related data area for
SRXMCF and CoreBusyTime
calculations (HCPMTCSR).
Serialized by singleton nature of
Hiperdispatch timer task. Mapped
by RCCYMTDS.
0A20 2592 Address 4 RCCINYMT HISMT related data area for
HCPSTPGS usage for Serialized by
singleton nature of HCPSTPGS.
Indicate Multithread. Mapped by
RCCYMTDS.
0A24 2596 Address 4 RCCMNYMT HISMT related data area Monitor
MT Sample data. Serialized by the
Monitor command lock. Mapped by
RCCYMTDS.
End of HISMT/HISYMT related data areas.
0A28 2600 Signed 4 RCCHMSTA (0) HISMT usage status word.
0A28 2600 Address 1 RCCHMDIS HISMT service disabled. RCCHMDIS
is used to indicate when an error
was returned from a call to
HISMT, or MT is not enabled so
the use of the HISMT service was
disabled.
1... .... RCCCBDIS X'80' RCCCBDIS CBF Task use of
HISMT disabled.
.1.. .... RCCHDDIS X'40' RCCHDDIS Historic data use
of HISMT disabled.
..1. .... RCCMCDIS X'20' RCCMCDIS SRXMCF management
and CoreBusyTime use of HISMT
disabled.
...1 .... RCCINDIS X'10' RCCINDIS Indicate MT use of
HISMT disabled.
.... 1... RCCMNDIS X'08' RCCMNDIS Monitor data use
of HISMT disabled.
1111 1... RCCALDIS RCCCBDIS+RCCHDDIS+RCCMCDIS+RCCIND
IS+RCCMNDIS RCCALDIS All
disabled.
0A29 2601 Bitstring 1 * Reserved for IBM use.
0A2A 2602 Address 1 RCCHMCSF HISMT Caller-specific flags.
1... .... RCCMNCS1 X'80' RCCMNCS1 Monitor has
initialized HISMT but not
extracted the first set of
metrics, which should be
discarded.
0A2B 2603 Bitstring 1 * Reserved for IBM use.
0A2C 2604 Address 4 RCCHMT Pointer to a table of HISMT data
by CPU type used by HCPSTP. Rows
of the table are indexed by
values of PFXCPUTY. Rows of the
table are mapped by the RCCHMTDS
DSECT. The table is allocated
during initialization by HCPIOP.
Row count is RCCHMTCT. Row length
is RCCHMTLN.
00000006 RCCHMTCT 6 Count of rows (CPU types) in
the table.
Historic HISMT metric values
The historic values are kept in fullword arrays indexed
by ProcClass. The arrays are only updated by the HISMT
service when invoked by the MTC Timer Task. The
serialization for updates to the arrays is provided
implicitly by the fact that there is a single instance of
the task in the system. These arrays are initialized to
default values at CP initialization.
The default for all values will be 1 with the scaling
HISMT uses which is defined by HisMT_Entry_kMetricFactor
to be 1024.
0A30 2608 Address 4 * (0) Force a cross reference
0A30 2608 Address 4 RCCHPROD (5) ProcClass historic values per
ProcClass.
0A44 2628 Address 4 RCCHCAP (5) CapClass historic values per
ProcClass.
0A58 2648 Address 4 RCCHMCAP (5) MaxCapClass historic values per
ProcClass.
0A6C 2668 Address 4 RCCHCBF (5) CBFClass historic values per
ProcClass.
0A80 2688 Signed 8 RCCSTPCR Time of second to last system
timer pop interval
RCCCORTY - Core CPU type byte array. This array contains
one byte per core to allow an indexed lookup of CPU type
using the core ID. The values are the same as CORCPUTY.
Array updates are serialized by the Vary Proc Lock.
The entries will be set to x'FF' for offline cores since
a value of x'00' is a valid CPU type.
0A88 2696 Address 1 RCCCORTY (64) Array of core CPU types.
0AC8 2760 Signed 4 RCCBKEND (0) End of the RCCBK
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure RCCHMTDS RCPU DATA AREA MAPPING
0000 0 Signed 4 RCCCF Capacity factor.
0004 4 Signed 4 RCCMCF Max capacity factor.
0008 8 Signed 4 RCCUTIL Utilization
000C 12 Signed 4 RCCPROD Productivity.
0010 16 Signed 4 RCCDENS Thread Density.
0014 20 Signed 4 RCCBUSY Type busy percentage.
0018 24 Signed 4 RCCTHRCL Activated thread count.
001C 28 Bitstring 1 RCCCHANG Flag byte for nonfatal HISMT
return codes
1... .... RCCSPCH X'80' RCCSPCH A speed change was
detected.
001D 29 Bitstring 3 * Reserved for IBM use.
00000020 RCCHMTLN *-RCCHMTDS Length of array
element.
This DSECT maps the HISMT/HISYMT related data areas.
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure RCCYMTDS RCPU DATA AREA MAPPING
0000 0 Address 4 RCCYMTAD Address of HISYMT area.
0004 4 Signed 4 RCCYMTLN HISYMT area length in bytes.
0008 8 Signed 4 RCCYMTRC Last HISMT return code.
000C 12 Signed 4 RCCYMTRS (0) Last HISMT reason code.
000C 12 Signed 2 RCCYMTR1 Bits 0-15 undefined, but are set
to zeros by HISMT MACRO. HCPMTC
overlays it with the flags below
after HISMT. Reason code testing
should be done using RCCYMTR2.
000C 12 Bitstring 1 RCCYMTFL Copy of HisMTHdr.HisMTFlg.
000D 13 Bitstring 1 * Reserved for IBM use.
000E 14 Signed 2 RCCYMTR2 Reason code is bits 16-31.
0010 16 Dbl-Word 8 RCCYMTPL (8) HISMT parmeter list plus room for
growth.
00000050 RCCYMTDL *-RCCYMTDS HISMT/HISYMT related
data area length in bytes.
0000000A RCCYMTDD (RCCYMTDL+7)/8 HISMT/HISYMT
related data area length in
doublewords.
| |