IOTRACE (I/O Trace Table)

The IOTRACE command causes the I/O trace table, or a portion of the I/O trace table, to be printed. Entries are placed in the I/O trace table by the MCP to trace the flow of control through I/O recovery and reconfiguration.

No special MCP compile-time options are necessary to cause the MCP to create an I/O trace table; all MCPs unconditionally generate it. The I/O trace table eases the task of analyzing dumps related to I/O without impacting main-path performance.

Syntax

── IOTRACE ─┬─────────┬─┬─────────────┬─┬──────────────────────┬───────┤
            └─<count>─┘ └─<timerange>─┘ └─<selection criteria>─┘

<timerange>

── RANGE ──<seconds>─┬─────────────────────┬───────────────────────────┤
                     ├─ FOR ─┬─<seconds_2>─┘
                     └─ TO ──┘

<selection criteria>

──┬───────────────────────┬────────────────────────────────────────────►
  └─ SNR ──<stack number>─┘
►─┬────────────────────────┬─┬───────────────────────┬─────────────────┤
  ├─ UNIT ──<unit number>──┤ ├─ TRACE ──<trace type>─┤
  ├─ EXTID ──<unit number>─┤ └─ CIA ─┬───────────────┤
  └─ IOP ─┬────────────────┤         └─ + ───────────┘
          └─<IOP number>───┘

Explanation

The following text describes the meaning of each construct. Refer to “Basic Constructs” in this section for information about the <number> construct.

IOTRACE

Prints the entire I/O trace table without including ClearPath Interconnect Architecture (CIA) entries.

IOTRACE <count>

Prints the specified number of most recent entries in the I/O trace table.

IOTRACE RANGE 5

Prints the most recent entries in the IOTRACE table going back at most five seconds. The most recent timestamp I/O trace table entry found is considered to be one second back. Assuming that the I/O trace table holds more than five seconds of entries, analysis ends with the first timestamp entry that is at least five seconds back.

IOTRACE SNR <stack number>

Prints all entries in the I/O trace table entered by the specified stack number register (SNR). The specification is a hexadecimal number.

IOTRACE <count> SNR <stack number>

The <count> parameter is a decimal number that limits the number of entries from the I/O trace table to be printed. The <stack number> parameter is a hexadecimal number. At most, the specified number of most recent I/O trace table entries made from the specified SNR is printed.

IOTRACE UNIT <unit number>

IOTRACE EXTID <unit number>

Prints all entries in the I/O trace table entered for the external unit number indicated by the number. The specification is a decimal number.

IOTRACE IOP

Prints all entries in the I/O trace table entered for IOP devices.

IOTRACE IOP <IOP number>

Prints all entries in the I/O trace table entered for the specified IOP.

IOTRACE <count> IOP <IOP number> RANGE 5 to 10

Prints up to <count> entries from the I/O trace table entered for the specified IOP. Only entries made between the timestamp entries that encompass the range from five seconds back to ten seconds back are printed. If more than <count> entries were made for the specified IOP in this time range, analysis stops after the <count> most recent entries have been printed.

IOTRACE TRACE <trace type>

Prints all entries in the I/O trace table with the trace reason indicated by the number. The specification is a hexadecimal number indicating a specific trace point within the MCP. This number is printed under the heading “TRACE REASON” on the IOTRACE output.

IOTRACE CIA

Prints all the CIA entries without including I/O entries.

IOTRACE CIA +

Prints the entire I/O trace table including both I/O entries and CIA entries.

IOTRACE CIA TERSE

Prints all the CIA entries; however, expanded analysis of MCB trace entries and array strings greater than 4 words is suppressed.

Example

The following shows an example of output from the IOTRACE command:

UNIT  TRACE REASON                  SNR INFO
----  ----------------------------  --- ----------------------------
MT74  02 REPORTIOOPERATIONCOMPLETE  02E ASD=004210 MISCINFO=0002
      15 IOPREADY                   02E RSLT=E004 STATE=READY IDLE
      04 QUEUESTATETRANSITION       02E CQ=0
                                        SUSPNDFORXONLY > RUNNING
      09 DECREMENTSTOPCOUNT         02E CQ=0 SUSPNDFORXONLY 1-1=0
      45 XDECREMENTSTOPCOUNT        02E CQ=0 SUSPNDFORXONLY 2-1=1
      44 XINCREMENTSTOPCOUNT        02E CQ=0 SUSPNDFORXONLY 1+1=2
      06 TERMINATEIOOPERATION       02E ASD=00176F
              MK = 10CB032DC425 VERIFY_CACHE SHUN_CACHE
                                SPECIFIED_CONTROL SPECIALBILLING
                                TIMELIMIT=40 IGNORECNTERR BYTEMODE
                                TAGCONTROL=4 READ-OP
                                SOFTWAREATTENTION INPROCESS
              CR = 090C09D27077 COMMAND=4'09' INITIATING_PORT=12
                                INITIATING_CTL=39 TIMEOUT_VALUE=39
                                DEVICE_ID=119
              RD = 000000000007 EXCEPTION ATTENTION: IDLE SOFTWARE
              MT = 000009C000FF SPECIFIED_CONTROL=39
                                MAXTRANSFER=255
              SW = 002E00128A30 INITIATINGSTACK=4'02E'
                                OWNERSTACK=4'012' REQUESTOR=34
              ST = 0006A3086759 19:00:12.04
              LR = 0002C0000000 UNITSXFERRED=44
              XR = 000000000000 EXCEPTIONID=0
              CW = 120200000000 READ 8-BIT
              28 = 003C04000032 LU=60 CQ=0 EXECUTE INTERNAL
                                LOGGEDRDSCOUNT=0 RETRYCOUNT=0
                                SRREADEXTENDEDSTATUS
              30 = 000000000000
              CTL CMD & RESULT= 03000000FF00 000000000000
      43 EXTENDEDLRD                02E XLRD=000000000403
                                        EXCEPTIONID=0
      01 INTERCEPT                  02E ASD=00176F
-----------------------------------------------1940.943---------
SC20  23 IOPEXECUTE                 582 RSLT=7004 STATE=SUSPENDED
                                                   IDLE
      05 INITIATESPECIALTESTOP      582 Test/Wait for XMIT
      04 QUEUESTATETRANSITION       582 CQ=0
                                        RUNNING > MONITORSTATUS
      12 IOPSUSPEND                 582 RSLT=7004 STATE=SUSPENDED
                                                  IDLE
Notes:
  • To find a specific trace point in the MCP, insert “TR_” for CPIO_RMM or “TI_” for CPIO_IOP at the beginning of the name printed under “TRACE REASON,” then locate occurrences of this identifier within the MCP source. For example, to find out where in the MCP the first trace entry in the preceding example was traced, find occurrences of TR_REPORTIOOPERATIONCOMPLETE in the MCP.

    (The name under “TRACE REASON” might be truncated if the I/O trace table is printed on the screen. To ensure no truncation occurs, use the PRINTER command to print the I/O trace table on the printer.)

  • The line immediately preceding the first trace entry for SC20 is an I/O trace table timestamp. These timestamps are placed in the I/O trace table every 4 seconds by CHECKFORHUNGIOS. The number indicates the seconds since the last halt/load.