Programming Interface Information:
The Monitor Records are intended Programming Interfaces that
allow the customer to write programs to obtain services of z/VM.


Control Block Contents
Cross Reference


 FUNCTION - Map a Monitor record.
           Through the Monitor Control Area
        MRRECHDR    Monitor Record Header
 DESCRIPTIVE NAME - Monitor Event Record
                    Domain 5 - Processor Domain
                    Record 21 - Multithreading config change event
 DESCRIPTION - Records parameters of a successful SET MULTITHREAD
               command and the resulting configuration settings.
               This record will be generated only if multithreading
               is enabled.
               For each multithreading Configuration change,
               this record is generated once at the start of
               the change and again at the end of the change.
               Both the start and end records describe the
               new configuration details.
               Values for use with PRCSMT_CAL_STATUS:
               x'80' - Multithreading config change processing
                       has started. Another record of this type with
                       PRCSMT_CAL_END set will indicate the end of the
               x'40' - Multithreading config change processing
                       has finished. An earlier record of this type
                       with PRCSMT_CAL_START set indicates the start
                       of the transition.
               The SET MULTITHREAD command allows the
               requested number of threads per core to be
               changed.  Changes to the requested number
               of threads do not necessarily cause changes
               to the number of activated threads per core
               of any CPU type for several reasons:
               - The SET MULTITHREAD command was successful
                 but it did not cause an actual change to
                 any of the requested thread counts. For
                 example, SET MULTITHREAD INITIAL was issued
                 but the multithreading configuration had
                 never been modified by a previous SET
                 MULTITHREAD command.
               - The requested thread counts changed, but
                 did not cause a change in activated thread
                 counts for one of the following reasons:
                 - A change between MAX and a number, but
                   both of the values result in the same
                   effective requested thread count.
                 - The previous and new requested thread
                   counts are greater than the supported
                   thread count for the CPU type so the
                   resulting activated thread count does
                   not change.
                   - At this time, z/VM only supports IFLs
                     for multithreading so activated thread
                     count changes can only occur for the
                     IFL CPU type.
               When the activated thread count per core of
               a CPU type changes, each online core of the
               CPU type will have threads either activated
               or deactivated. If there are no online cores
               of the CPU type then the change will not
               result in a processor configuration change.
               Activation and deactivation of threads cause
               processors associated with those threads to
               be logically varied on or off, respectively.
               Processors associated with thread 0 are never
               activated or deactivated as a result of a
               multithreading configuration change. Monitor
               is notified about each thread activation or
               deactivation by event records MRPRCVON
               and MRPRCVOF which will indicate that the
               reason is because of thread activation or
               deactivation. Those event records are
               generated between the start and end copies
               of this record as indicated by the value in
               After threads are activated or deactivated:
               - The total number of logical processors is
                 increased or decreased accordingly.
                 Therefore more or fewer per processor
                 Monitor records will be generated per
                 sample interval.
               - The number of threads/logical processors
                 per core changes. Therefore any data that
                 is sensitive to threading levels will be
               Sample intervals that end or start between the
               start and end of the multithreading transition
               reported by the start and end versions of
               this record will contain data that spans
               different configurations. The times of the
               start and end records can be used to bound
               the interval affected. Sample records that
               contain data related to multithreading contain
               additional flags and indicators to describe
               the implications of the configuration change
               on the data.
               - MRPRCMFM
                 - These are per processor records so the
                   number of records generated will change
                   due to thread activations/deactivations.
                   However, the metrics are repeated in
                   records for the same core.
                 - PRCMFM_CORTHRDS increases or decreases
                   due to activations/deactivations.
                 - PRCMFM_CORTLSEQ provides information on
                   the number of times the core threading
                   level changed.
               - MRSYTPRP
                 - These are per processor records so the
                   number of records generated will change
                   due to thread activations/deactivations.
                   be set when a multithreading configuration
                   change occurs during the interval.
                 - Cores that had a threading level change
                   during the interval will report
                   SYTPRP_KNODATA_TRANSITION in data values
                   affected by the transition.
                   be set when a multithreading configuration
                   change occurs during the interval.
                 - Several fields report the time of the
                   threading level change for the core, the
                   amount of time at each threading level,
                   as well as SYTPRP_CORTHRDS and
               Sample records that are generated during
               the transition for different cores of a CPU
               type may report different CORTHRDS values.
               Per processor records are generated at
               different times, and it is possible that
               when a record for one thread of a core is
               generated the threading level was different
               than when the record for the other processor
               is generated.
               It is possible that the core threading level
               changed and returned to the original value
               during the interval. Although the prior and
               final configurations look the same, there
               were multithreading configuration changes
               that would affect the reported data. Any of
               the processors that were deactivated and then
               activated again would appear as having been
               brought online during the interval. CORTHRDS
               would report the same value before and after
               the transition.  Therefore it is recommended
               that the CORTLSEQ field in records should be
               used to determine whether a multithreading
               configuration change has occurred.  If the
               value is odd then a core threading-level
               transition is in progress.  The value is
               incremented back to an even number at the
               completion of the threading-level change.
               If it is even and unchanged from the
               previous record then there have been no
               changes to the multithreading configuration
               for the core reported in the record.
               For these and other reasons, caution should
               be used in interpreting data from Monitor
               records during the transition if there is an
               actual change in threading level. It would be
               reasonable to treat the periods prior to and
               after the multithreading configuration change
               as completely different configurations for
               analysis purposes and completely exclude the
               period of the transition.

MRPRCSMT Control Block Contents

Dec  Hex  Type        Len  Name (Dim)             Description
   0   0  Structure    36+ PRCSMT                 Start of monitor record.
   0   0  Character     0  PRCSMT_MRHDR           Record header.
   0   0  Character    20  MRHDR
   0   0  Unsigned      2  MRHDRLEN
   2   2  Unsigned      2  MRHDRZER
   4   4  Unsigned      1  MRHDRDM
   5   5  Unsigned      1  *
   6   6  Unsigned      2  MRHDRRC
   8   8  Character     8  MRHDRTOD
  16  10  Character     4  *
  20  14  Character     0  MRHDR_END

The multithreading configuration change sequence number is incremented twice per configuration change. Therefore, (PRCSMT_RCCSMTSQ+1)/2 is the number of configuration changes since IPL.
20 14 Unsigned 4 PRCSMT_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. Always odd and the same value in the start and end records for the same transition.
Information describing the MULTITHREADING configuration change. These records are issued as a start/end pair to bound the multithreading config transition interval. During that interval, logical processors may be added or removed as a result of thread activation or deactivation, respectively. Unless fields state otherwise, the content of the start and end records will match, describing the target configuration.
24 18 Unsigned 1 PRCSMT_CAL_STATUS Status codes. Different flags may be set in the start and end records.
Fields and arrays that contain thread counts might have values from 0 to the configured max threads value (PRCSMT_CALMAXTC) or the value 255 (x'FF) to indicate that MAX was specified for that CPU type or for ALL. Multithreading enablement setting which limit possible config changes. - When multithreading is enabled, the maximum thread count is set. The SET MULTITHREAD command cannot allow requests for activated thread counts larger than that value.
25 19 Unsigned 1 PRCSMT_CALMAXTC Configured maximum thread count.
Parameters from MULTITHREADING configuration statement and most recent completed SET MULTITHREAD command along with the resulting activated thread counts. See the CPUTINFO description for a detailed description of array entry contents.
26 1A Unsigned 1 PRCSMT_RCCCOALL Thread count specified on ALL parameter of the Multithreading Statement. 27 1B Unsigned 1 PRCSMT_RCCSMALL Thread count specified for ALL parameter of SET MULTITHREAD command. 28 1C Bitstring 1 PRCSMT_RCCSMSET SET MULTITHREAD flags. 1... .... PRCSMT_RCCSMINI SET MULTITHREAD INITIAL was specified. .1.. .... * ..1. .... * ...1 .... * .... 1... * .... .1.. * .... ..1. * .... ...1 * 29 1D Unsigned 1 PRCSMT_CAL_CPUTACNT Number of entries in PRCSMT_CPUTINFO array. 30 1E Unsigned 2 PRCSMT_CAL_CPUTAESZ Size of an entry in the PRCSMT_CPUTINFO array. 32 20 Unsigned 2 PRCSMT_CAL_CPUTAOFF Offset to array PRCSMT_CPUTINFO of numbers for threads per core by CPU type. 34 22 Unsigned 2 * Reserved for IBM use. 36 24 Character 0 PRCSMT_END End of record
Array of per-CPU-type data. Each CPU type entry includes number of threads per core as specified on SET MULTITHREAD command and MULTITHREADING statement, resulting requested values, hardware and z/VM supported thread counts, and activated thread counts given the requested multithreading configuration. This is a variable length array with one entry per CPU type. The entries are ordered by the numeric CPU type ID but are not indexed by that value because entries are note included for unused numeric CPU type IDs. Therefore the CPU type ID is included in each array entry. PRCSMT_CPUTINFO describes the structure of one array entry. Use PRCSMT_CAL_CPUTAOFF to determine the offset within this monitor record to the beginning of the PRCSMT_CPUTINFO array. Use PRCSMT_CAL_CPUTACNT to determine the number of entries present in the array. Use PRCSMT_CPUTAESZ to determine the size of each entry. The most recent successful SET MULTITHREAD command overrides setting from the MULTITHREADING statement and any previous SET MULTITHREAD Command. For the SET MULTITHREAD Command parms in _RCCSMMNT: - 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'. - If INITIAL was specified, the ALL and all CPU type values will be x'00'. The results of the multithreading config change are described by _RCCCRMNT - current requested values. These are from the most recent SET MULTITHREAD command (_RCCSMxxx) if issued, otherwise from the Multithreading statement (_RCCCOxxx). For SET MULTITITHREAD without ALL specified, any unspecified CPU types retain the previous requested value. _RCCACMNT - actual activated thread counts given current requested values (RCCCRMNT), and the supported threading level for hardware (_RCCHWMNT) and z/VM (_RCCSYMNT).
Offsets Dec Hex Type Len Name (Dim) Description 0 0 Structure 8 PRCSMT_CPUTINFO 0 0 Unsigned 1 PRCSMT_CAL_CPUTYPE CPU Type for this entry. 1 1 Unsigned 1 PRCSMT_CAL_RCCCOMNT Requested threads for this CPU type on the Multithreading Statement. 2 2 Unsigned 1 PRCSMT_CAL_RCCHWMNT Maximum number of threads supported by hardware for this CPU type. 3 3 Unsigned 1 PRCSMT_CAL_RCCSYMNT Maximum number of threads supported by z/VM for this CPU type. 4 4 Unsigned 1 PRCSMT_CAL_RCCACMNT Number of activated threads for this CPU type. The start record contains the values from before the change and the end record contains the new values. 5 5 Unsigned 1 PRCSMT_CAL_RCCSMMNT Specified threads for this CPU type requested on the most recent SET MULTITHREAD command. 6 6 Unsigned 1 PRCSMT_CAL_RCCCRMNT The current requested threads for this CPU type. The values are from the most recent SET MULTITHREAD command if issued, or the Multithreading statement. The start record contains the values from before the change and the end record contains the new values. 7 7 Unsigned 1 * Reserved for IBM use. 8 8 Character 0 PRCSMT_CPUTINFO_END End of CPUTINFO entry

MRPRCSMT Cross Reference

                      Hex           Hex
Name                  Offset Length Value 
MRHDR                      0     20
MRHDR_END                 14      0
MRHDRDM                    4      1
MRHDRLEN                   0      2
MRHDRRC                    6      2
MRHDRTOD                   8      8
MRHDRZER                   2      2
PRCSMT                     0     36+
PRCSMT_CAL_CPUTAOFF       20      2
PRCSMT_CAL_CPUTYPE         0      1
PRCSMT_CAL_RCCACMNT        4      1
PRCSMT_CAL_RCCCOMNT        1      1
PRCSMT_CAL_RCCCRMNT        6      1
PRCSMT_CAL_RCCHWMNT        2      1
PRCSMT_CAL_RCCSMMNT        5      1
PRCSMT_CAL_RCCSYMNT        3      1
PRCSMT_CAL_STATUS         18      1
PRCSMT_CALMAXTC           19      1
PRCSMT_CPUTINFO            0      8
PRCSMT_CPUTINFO_END        8      0
PRCSMT_END                24      0
PRCSMT_MRHDR               0      0
PRCSMT_RCCCOALL           1A      1
PRCSMT_RCCSMALL           1B      1
PRCSMT_RCCSMINI           1C           80
PRCSMT_RCCSMSET           1C      1
PRCSMT_RCCSMTSQ           14      4

This information is
based on z/VM V6R4.0.

Last updated on 5 Oct 2016 at 13:56:20.
Copyright IBM Corporation, 1990, 2016