Record type 30 (X'1E') — Common address space work

SMFPRMxx parameters are described in SMFPRMxx (system management facilities (SMF) parameters) in z/OS® MVS Initialization and Tuning Reference.

Information about system address spaces and full function start are described in Creating address spaces for system components in z/OS MVS Initialization and Tuning Guide.

The type 30 SMF record provides accounting information. It consolidates data that is found in record types 4, 5, 20, 34, 35, and 40 (which simplifies accounting by installation-written post processing routines), and it provides additional information. Use record type 30, because the record types that it replaces are generally not being updated with new measurement data. SMF writes record type 30 when:
  • A work unit (such as a TSO/E session, APPC/MVS™ transaction program, OMVS forked or spawned address space, started task, or batch job) starts. This subtype 1 record identifies the work unit but contains no resource data.
  • An SMF interval ends, if you requested interval accounting.

    If this is the first interval since the work unit started, then this subtype 2 record contains the total resources used from the start of the work unit until the end of the current interval. With interval synchronization, this span of time is normally shorter than the length of the SMF global recording interval. For global interval recording without interval synchronization, this span of time is the same as the length of the SMF global recording interval.

    For other intervals, this subtype 2 record contains the total resources used from the end of the previous interval until the end of the current interval.

    For system address spaces that do not go through full function start, SMF generates a subtype 6 record that contains the total resources used since the start of the address space. Note that the data in the subtype 6 record is cumulative, unlike the subtype 2 record.

  • A work unit (such as a TSO/E session, APPC/MVS transaction program, OMVS forked or spawned address space, started task, or batch job) completes.

    If you requested interval accounting, SMF generates a subtype 3 record that contains the total resources used from the end of the previous recording interval until the end of the work unit. This span of time is normally shorter than the length of the specified recording interval.

    For a job step, SMF generates a subtype 4 record that contains the total resources used from the time when the job step started until the time when the job step completed. If you requested interval recording, then this subtype 4 record generally contains the accumulated totals of the data in the interval subtype 2 and subtype 3 records that were generated for the step.

    For a job, SMF generates a subtype 5 record that contains the total resources used from the time when the job started until the time when the job completed. This subtype 5 record generally contains the accumulated totals of the data in the step total subtype 4 records that were generated for the job.

The type 30 record contains operation information such as the job and step start and end times, step CPU time, step termination status, number of records in DD DATA and DD * data sets processed by the step and job, device allocation start time, problem program start time, and storage protect key. The record contains the number of page-ins, page-outs, swap-ins, and swap-outs for both virtual input output (VIO) and non-VIO data sets. The record contains information on the number of hiperspace page moves and the movement of pages between expanded storage and central storage. This data can be used in resource planning. Information is added to account for time spent in hiperspace processing on a step or interval basis. The record contains an entry for each data set defined by a DD statement or dynamic allocation. Each entry lists the device class, unit type, device number, the execute channel program (EXCP) count, and device connect time for the data set. The usage data section contains information that can be used to attribute usage of a product to the address space.

The subtypes are:
Subtype
Meaning
1
Job start or start of other work unit
2
Activity since previous interval ended
3
Activity for the last interval before step termination
4
Step total
5
Job termination or termination of other work unit
6
System address space, which did not go through full function start. See Creating address spaces for system components in z/OS MVS Initialization and Tuning Guide for information about system address spaces. When you select subtype 6 for record type 30, the following fields may contain zeros or blank:
  • SMF30PGM
  • SMF30STM
  • SMF30PSN
  • SMF30CL8
  • SMF30UIF
  • SMF30USR
  • SMF30JNM
Information in specific fields may differ for different subtypes. For example, the record identifies the job (and job step) by the:
  • Job log identification (job name, time and date that the reader recognized the job card for this job).
  • Step name
  • Number of the step within the job
  • User identification
  • Program name
  • Performance group number or service class name
  • JES job number.

If accounting numbers (which can be alphanumeric) are specified in the JOB or EXEC statements, they are included. For subtype 1 and subtype 5, the accounting numbers are taken from the JOB statement. For all other subtypes, the accounting numbers are taken from the EXEC statement.

Because some of the information necessary to complete a field is not always available when a type 30 record is written, some fields might be empty. For example, the SMF30AST, SMF30PPS, SMF30SIT, and SMF30STD fields are not filled in for a subtype 1 record.

Because system address spaces do not use full function start, the subtype 6 record is incomplete; that is, only certain fields in each section are valid. All unused fields are set to zero or blank.

The subtype 6 records are written only at the expiration of an interval; the values are cumulative and indicate data collected since the initialization of the address space. If a system address space later goes through full function start, data is not reported for the period between the expiration of the previous interval and the time that the address space goes through full function start. The subtype 6 record contains data for the APPC/MVS Cumulative Resource section, but data in the APPC/MVS Resource section is not reported in subtype 6.

The length of record type 30 is variable. The maximum length of the type 30 record is 32,756 bytes. If the volume of data in the type 30 record is such that the length would exceed the maximum length, one or more additional type 30 records are produced. The additional records contain only the header/self-defining, subsystem, identification, and one or more sections that can repeat. An example of a section that can repeat is the execute channel program (EXCP) section.

Rules for SMF type 30 continuation record processing: For all subtypes (except subtype 1), it is possible to have additional continuation records.
When the value in SMF30SOF is greater than 192 (X'C0'), the following record continuation rules apply:
  • A record is a member of a group of continuation records if any of the following flags is on. A record is not a member of a group of continuation records if all of these flags are off.
    • SMF30_RecCont_FirstRec
    • SMF30_RecCont_AdditionalRec
    • SMF30_RecCont_LastRec
  • When a record is a member of a group of continuation records but not the last record in the group, the value in SMF30_Cont_Recs_To_Follow is the number of continuation records that follow the current record in the group. For the last record in the group of continuation records, SMF30_RecCont_LastRec is on and SMF30_Cont_Recs_To_Follow contains a value of zero.
  • The contents of the SMF type 30 Identification section (DSECT SMF30ID) is the same for all records in a group of continuation records.
When the value in SMF30SOF is less than or equal to 192 (X'C0'), the following record continuation rules apply:
  • A record is the first record if at least one of the following fields is non-zero:
    • SMF30AON
    • SMF30ARN
    • SMF30CON
    • SMF30DRN
    • SMF30OON
    • SMF30PON
    • SMF30RON
    • SMF30TON
    • SMF30UON
  • A record is an additional record if the following fields are all zero:
    • SMF30AON
    • SMF30ARN
    • SMF30CON
    • SMF30DRN
    • SMF30OON
    • SMF30PON
    • SMF30RON
    • SMF30TON
    • SMF30UON
  • In either a first or additional record:
    • There are more records to follow if at least one of the following fields is non-zero:
      • SMF30EOS
      • SMF30MOS
      • SMF30OPM
      • SMF30RMS
      • SMF30UDS
    • This is the last record if the following fields are all zero:
      • SMF30EOS
      • SMF30MOS
      • SMF30OPM
      • SMF30RMS
      • SMF30UDS
The IEFACTRT exit is called at step and job termination for each type 30 (subtype 4 and subtype 5) record written to the SMF data set. A separate call to IEFACTRT is made for each additional record.
Notes:
  1. Data sets are recorded in the order of the DD statements; they are not identified by name. However, the data definition name (ddname) is included in the record. (An installation-written IEFUJV exit routine can record this order as each statement is validated). For concatenated DD statements, the ddname is the same on each entry, respectively.
  2. CPU time is not expected to be constant between different runs of the same job step.
  3. If the SMFPRMxx parameter DDCONS(YES) is specified, then duplicate execute channel program (EXCP) entries are consolidated. If DDCONS(NO) is specified, then duplicate EXCP entries are not consolidated. SMFPRMxx parameters are described in z/OS MVS Initialization and Tuning Reference.
  4. If a section is not included in the record, the “number of” entry is zero. For example, subtype 1 does not have a completion segment, and SMF30TON is set to zero to indicate this.
  5. If the IEFUSI exit changes the size of the private area, a flag is set in SMF30SFL in the paging and storage section.
  6. Specifying the DETAIL parameter of the SMFPRMxx parmlib member for STC includes all EXCP sections in subtypes 4 and 5 for the step or job.
  7. Specifying the NODETAIL parameter excludes EXCP sections from subtypes 4 and 5 for STC class subsystem jobs, but not for batch or TSO/E subsystems. NODETAIL is enforced for the master address space.

    For OMVS, the OMVS address space is considered a started task (STC), so NODETAIL is honored for processes running in the OMVS address space. However, processes that run under a BPXAS initiator are considered batch work, so NODETAIL has no effect.

  8. Considerations for jobs that are evicted via the $EJxx,STEP (or equivalent) command:
    • SMF30CNR (bit 14 of SMF30STI) is set in the subtype 4 record of the last step that executed prior to the eviction.
    • A subtype 5 record is not generated for a job that is evicted until the job resumes and completes execution.
    • Except for the following fields, subtype 5 fields that contain aggregated data will not include data from all steps in a job that resumes and completes execution following an eviction. In this case, subtype 5 fields will contain data aggregated from the steps that ran after the job resumes execution up until the job completes execution. In the subtype 5 record of an evicted job, these fields will contain data aggregated from all of the steps in the job:
      • SMF30CPT
      • SMF30CPS
      • SMF30_TIME_ON_IFA
      • SMF30_TIME_IFA_ON_CP
      • SMF30_TIME_ON_SUP
      • SMF30_TIME_SUP_ON_CP
  9. While a job is executing, SMF writes the type 30, subtype 1, 4, and 5 records associated with each job step to the job’s EVENTLOG data set. You can use the Job Step panel of the Spool Display and Search Facility (SDSF) to view these records. To control access to this information, the EVENTLOG is protected with two SAF resources in the JESSPOOL class: nodeid.userid.jobname.jobid.EVENTLOG.SMFSTEP and nodeid.userid.jobname.jobid.EVENTLOG.STEPDATA. For more information, see Jobs, job groups, output groups, and SYSIN/SYSOUT data sets in z/OS SDSF Operation and Customization.

Using the SMF30CPT field in the Accounting section

Note that a workload may generate different values for SMF30CPT, if some eligible work for the IBM® zEnterprise® Application Assist Processor (zAAP) or IBM z Integrated Information Processor (zIIP) running on a standard processor. If a repeatable value is more desirable than the possible performance benefits of letting zAAP or zIIP eligible work run on both specialty CPs and standard processors, specify IFAHONORPRIORITY=NO or IIPHONORPRIORITY=NO in the IEAOPTxx parmlib member.

Interval records may show this number to be hundredth (1/100) of a second less than other related SMF30 fields (such as SMF30_TIME_IFA_ON_CP). This difference is due to rounding differentials while calculating delta values, and will not occur for step end or job end.

If SMF30CPT is zero, and you would like to understand how much CPU time was used by the address space or you require more precise values in general, you can calculate the CPU and SRB time in microseconds (1 / 10-6) using the following formulas:
  • CPU time:
     (SMF30CSU × 10) / SMF30CPC × SMF30SUS / 16 = CPU time in microseconds
  • SRB time:
    (SMF30SRB × 10) / SMF30SRC × SMF30SUS / 16 = SRB time in microseconds

The CPU and SRB times computed from service units include zAAP time and zIIP time in addition to CP time. The time derived from CPU service is comparable to the sum of fields SMF30CPT, SMF30_TIME_ON_IFA and SMF30_TIME_ON_zIIP for work with no enclave activity. If the zAAP or zIIP processors are faster than the CP, zAAP or zIIP time is normalized to the time expected on the slower CP before service units are computed. Therefore, the derived time contains normalized zAAP or zIIP time. Field SMF30ZNF contains the normalization factor used. The normalization factor is 256 when the standard CPs are of the same speed as the zAAP or zIIP. Enclave time is summed with address space time in SMF30CPT. The preceding CPU time formula includes dependent enclave time but does not include independent enclave time. To compute independent enclave time, substitute SMF30ESU for SMF30CSU in the formula.

If you use derived processor times, you determine:

derived CP time = CPT / (CPT + zAAPNT + zIIPNT) × derived CPU time

derived Normalized zIIP time = zIIPNT / (CPT + zAAPNT time + zIIPNT) × derived CPU time

derived Normalized zAAP time =  zAAPNT / (CPT + zAAPNT + zIIPNT) × derived CPU time
where:
CPT = SMF30CPT
zAAPNT = SMF30_TIME_ON_IFA × (SMF30ZNF / 256)
zIIPNT = SMF30_TIME_ON_ZIIP × (SMF30SNF / 256)
assuming the denominator is not zero.