|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure LIMBK Limiting block for a CPU Pool
**** SECTION 1: Fields changed via the CPU Pooling Commands
These are usually serialized by LIMBK CHAIN
LOCK (LCKLLCK). See below for full comments.
0000 0 Address 4 LIMNEXT Next LIMBK address Serialized by
LIMBK CHAIN LOCK
0004 4 Address 4 LIMPREV Previous LIMBK address Serialized
by LIMBK CHAIN LOCK
0008 8 Character 8 LIMPOOL CPU pool name Serialized by LIMBK
CHAIN LOCK
0010 16 Signed 4 LIMCTMEM Count of CPU pool members (ie:
number of ORIGIN VMDBKs and
RLOBKs for users relocating to
this system that point to this
LIMBK) Query CPUPOOL reports this
value. Update serialized by LIMBK
CHAIN LOCK & SCHEDULER LOCK
EXCLUSIVE Read serialized by 1 of
these 2 locks held SHARED or
EXCLUSIVE.
0014 20 Signed 4 LIMMXSHR CPU pool maximum absolute share
(LIMITHARD). 0 means NO LIMIT.
(Analog of VMDMXSHR) Update
serialized by LIMBK CHAIN LOCK &
SCHEDULER LOCK EXCLUSIVE Read
serialized by 1 of these 2 locks
held SHARED or EXCLUSIVE. Unit of
value is a hexadecimal factor
scaled 16 bits. For example,
X'00010000' = 1.00(100%),
X'0000C000' = 0.75(75%),etc The
range is 1% to 100%. The value is
a percentage of the real CPUs on
which the virtual CPU type is
currently being dispatched. For
example: If this is 70% for
virtual CP engines and the system
has 3 real CP CPUs, the limit is
70% x 3 CPUs = 2.10 CPUs.
0018 24 Signed 4 LIMMXENG CPU pool maximum engine share
(CAPACITY). 0 means NO LIMIT.
Update serialized by LIMBK CHAIN
LOCK & SCHEDULER LOCK EXCLUSIVE
Read serialized by 1 of these 2
locks held SHARED or EXCLUSIVE.
Unit of value is a hexadecimal
factor scaled 16 bits. For
example, X'00010000' =
1.00(100%), X'0000C000' =
0.75(75%),etc The range is 0.1 to
999. The value is the number of
CPUs of the virtual CPU type. For
example: 0.7 = 70% = 0.7 CPUs 2.1
= 210% = 2.1 CPUs
001C 28 Bitstring 1 LIMCPUTY Virtual CPU type that this CPU
pool is limiting. Currently, this
can only be CP or IFL. Once it is
set in HCPLMCDF (DEFINE command),
it cannot be changed.
001D 29 Bitstring 3 * Reserved for IBM use
0020 32 Dbl-Word 8 * Reserved for IBM use
0028 40 Signed 4 * Reserved for IBM use
002C 44 Signed 4 LIMCTINM Count of incoming members
(RLOBKs) pointing to this LIMBK.
This is incremented during VSIM
eligibility test for move and
decremented when the CPU type is
set in the dest ORIGIN VMDBK and
RLOLIMBK is moved to VMDLIMBK.
Update serialized by LIMBK CHAIN
LOCK held exclusive. Read
serialized by LIMBK CHAIN LOCK
held shared or exclusive.
**** SECTION 2: Fields changed by the CP SCHEDULER code
These are usually serialized by SCHEDULER LOCK
held EXCLUSIVE. See below for full comments.
0030 48 Signed 4 LIMCTPTR Count of VMDBKs and RLOBKs
pointing to this LIMBK. Includes
VMDBKs (origin, MP-VMDBKs) and
RLOBKs only. LIMCTPTR >=
LIMCTMEM. Update serialized by
LIMBK CHAIN LOCK & SCHEDULER LOCK
EXCLUSIVE Read serialized by 1 of
these 2 locks held SHARED or
EXCLUSIVE.
0034 52 Signed 4 LIMCTLL Count of VMDBKs on the Limit-
List because the group limit was
hit. Includes VMDBKs (origin,
MP-VMDBKs) LIMCTPTR >= LIMCTLL
always. Serialized by SCHEDULER
LOCK held EXCLUSIVE
0038 56 Bitstring 1 LIMFLAGS Limit flags Serialized by
SCHEDULER LOCK held EXCLUSIVE
1... .... LIMITED X'80' LIMITED CPU Pool is limited
The users in this CPU Pool have
hit the group CPU resource limit
and are being limited. When set,
at least one user in the group
should be on the limit list and
time used is counted in the NEXT
group interval (via LIMNTIME).
0039 57 Bitstring 1 LIMRSTRT Reason STaRTed the last group
interval (for DEBUG ONLY)
Serialized by SCHEDULER LOCK held
EXCLUSIVE
00000001 LIMRLIML X'01' LIMRLIML - Remove from
Limit List VMDBKs that were being
limited due to the group limit
(VMDLIMGR = ON) were removed from
the limit list. Their time was
served.
00000002 LIMRNACT X'02' LIMRNACT - No activity
(LIMTODST is 0) There are NO
users in the CPU pool (LIMCTMEM =
0) so there is no activity. A new
group interval is started when
the group becomes active again.
00000003 LIMRSET X'03' LIMRSET - Set command
issued The SET CPUPOOL command
was issued when the group was not
limited.
00000004 LIMRCPUA X'04' LIMRCPUA - IFL CPU Affinity
toggled A system change caused
CPU Affinity to toggle while the
group was not limited.
00000005 LIMRST0 X'05' LIMRST0 - Just Starting
(LIMTODST was 0) A user is being
added to the dispatch list after
a period of group inactivity and
LIMTODST = 0 so need to
initialize it.
00000006 LIMRHITX X'06' LIMRHITX - Hit GRINTMAX
second interval The group is not
being limited but it has been
GRINTMAX seconds since LIMTODST
was reset.
00000007 LIMRPAST X'07' LIMRPAST - LIMTODLM is in
the PAST A new group interval was
not started at LIMTODLM because
no VMDBK was on the limit list at
that time (all were taken off
early). Start one now
this CPU pool. The CPU pool has
been inactive since it was
defined on the system.
LIMTODST was reset because:
003A 58 Bitstring 2 * Reserved for IBM Use
003C 60 Signed 4 LIMCIFLA Sequence number of the IFL CPU
Affinity toggle that is currently
being processed. Since each user
in this CPU pool will visit this
LIMBK once, this value is used to
ensure only one group interval is
started for each CPU Affinity
change/toggle. NOTE: ONLY used
for CPU pools that are limiting
virtual IFLs
0040 64 Signed 8 LIMTODST Group limit interval start TOD
(Analog of VMDTODST) Serialized
by SCHEDULER LOCK held EXCLUSIVE
0048 72 Signed 8 LIMTODLM Group limit list expiration TOD
(Analog of VMDTODLM) If MT is
enabled, this field is calculated
from prorated core time;
Otherwise, this field is
calculated from raw CPU time.
Serialized by SCHEDULER LOCK held
EXCLUSIVE
0050 80 Signed 8 LIMTTIME Total TTIME consumed by users in
this CPU pool in the current
group interval. If the group is
not being limited, time used is
added here until the limit is hit
and applied to the current group
interval. If MT is enabled, this
field contains prorated core
time; Otherwise, this field
contains raw CPU time. Serialized
by SCHEDULER LOCK held EXCLUSIVE
0058 88 Signed 8 LIMNTIME Total TTIME consumed by users in
this CPU pool to be counted in
the next group interval. When the
group is limited, some VMDBKs are
on the limit list and some VMDBKs
can still run until end of time
slice. Time used by running
VMDBKs is tracked and added to
the next group interval. If MT is
enabled, this field contains
prorated core time; Otherwise,
this field contains raw CPU time.
Serialized by SCHEDULER LOCK held
EXCLUSIVE
0060 96 Signed 8 LIMMTTIM FOR MONITOR ONLY: Total TTIME
consumed by users in the CPU pool
since it was created Always
increasing. If MT is enabled,
this field contains prorated core
time; Otherwise, this field
contains raw CPU time. Serialized
by LIMMONLK LOCK held EXCLUSIVE
0068 104 Signed 8 LIMMTODE FOR MONITOR ONLY: TOD when most
recent limiting interval for CPU
pool ended. Serialized by
LIMMONLK LOCK held EXCLUSIVE
0070 112 Signed 4 LIMMTNUM FOR MONITOR ONLY: Total NUMber of
times the CPU pool has been
limited since the CPU pool was
created. Always increasing. Add 1
when group limiting ends.
Serialized by LIMMONLK LOCK held
EXCLUSIVE
0074 116 Signed 4 LIMFACTR Limit factor - most recently
computed group limit, scaled, in
terms of number of CPUs
0078 120 Dbl-Word 8 LIMMONLK (2) Monitor data spin lock
00000015 LIMSIZE (*-LIMBK+7)/8 size in double
words
000000A8 LIMBSIZE LIMSIZE*8 size in bytes
| |