gtpm3m0u | Multi-Processor Interconnect Facility Reference |
Since a user may wish to activate this post-processing application several times, having different search criteria for each execution, each report will identify user-defined search criteria on its first report page.
A sample report has been provided for PRINT (or DEFAULT) commands (refer to Sample Print/Default Report). As can be seen in this sample, all fields in the 4K header have been printed at the top of each page. For each traced MPIF activity, all traced fields defined in DCTTRC DSECT have been formatted in an "easy-to-read" char display. The I/O flag and MSRB function code have been translated, reporting both their hexadecimal contents and their definition.
FUNCTION X'nn', = 'UNDEFINED TO PGM'
When this message appears, the function code identified as X'nn' (in hexadecimal notation) must be added to the table of function codes labeled FUNCTBLE (MPIF Function Codes) and the maximum code must be revised to reflect a new maximum (labeled MAX#FUNC).
A portion of the transmitted message is also printed in hexadecimal and character format. If the MSRB function code is zero or if the message length is zero, the message area in this report will contain:
SIZE = 000 (MSG = NONE)
Each traced MPIF activity will generate a five or six line report entry if the PRINT or DEFAULT command is issued with a one line variation depending on the absence or presence of a transmitted message. If a message is not present, only the line above will be printed. Otherwise, the line above will be printed (with the transmitted message size displayed) preceded by a line containing a portion of the transmitted message in hexadecimal and character notation (as shown in the report sample).
It should be pointed out that if the user-transmitted message contains a greater than or less than mathematical sign, some printer-supported software packages are designed to recognize these mathematical signs as "character shift then print", if carriage control characters (CC) are imbedded in the report. As a result, the right-most bar (|) that should otherwise enclose report contents may be shifted left or right by 6 characters, depending on the greater than or less than sign incurred within the message.
The COMPARE command generates a more compressed report version, with one report line per logged MPIF message entry.
As shown in the CPU-to-CPU report sample (see Sample CPU-to-CPU Report), the report heading identifies the primary CPU and its connected CPU. Each reported line then identifies another message transmission. If a given message was sent from the primary CPU and received by the connected CPU or vice versa, transmission (lag) time is derived by subtracting the sending CPU time stamp (DCTMMSSC) from the receiving CPU time stamp (DCTMMSSC). The result is printed in a column labeled "Transmit". At the end of this report, a statistical summary provides the average transmission time derived from the sum of transmission (lag) time divided by the number of transmitted messages.
If a message cannot be found on both (to-from) CPU log tapes, the column labeled "Transmit" will have the words "Not Found" in it for that message. Furthermore, an attempt was made to identify the CPU containing the unmatched message by placing an asterisk (*) in front of the I/O activity code if a "Not Found" (unable to match messages) condition occurred on the log tape referenced by CPU2= parameter. See the report sample below:
MPIF Tape-to-Tape Trace Analysis TPFXX1 Sent To or Received from TPFXX2 I/O Dest. Origin Path Size Time Transmit Sent TPF01 TPF02 C/U-3088 059 2-24 Not Found *Sent TPF03 TPF04 Dev-3088 059 2-24 Not Found
In this example, TPFXX1 (primary CPU) sent one message to TPFXX2 that was not found on TPFXX2's log tape. TPFXX2 sent one message to TPFXX1 that was not found on TPFXX1's log tape. An asterisk (*) before the word Sent above denotes that a message on the connected CPU's log tape that could not be found on the primary CPU log tape.
For each "Not Found" condition, you could also obtain a portion of the transmitted message and its path send sequence number (for further investigation). Keep in mind that a "Not Found" condition can occur from several possibilities:
If message traffic differs between CPUs causing the 4K blocks to be dumped at different time intervals, a "Not Found" condition (outside time range) may result.
In other words, a "Not Found" condition may result, as opposed to losing a message. The user would have to further research the cause.
In addition to reporting one line per transmitted message on log tapes, these post-processing programs will also generate the following statistics:
Minimum Transmission Time .................. :00 (MIN:SEC) Maximum Transmission Time .................. :01 (MIN:SEC) Average Transmission Time .................. 01.87 (SEC.%SEC) Number of Messages Matched ................. 02 Number of Msg. Not Found ................... 00 Number of Clock Sync. Errors ............... 01
A Minimum Transmission Time of zero indicates that a message was transmitted from one CPU and received at another CPU within the same second (or zero elapsed time). This should be viewed as an optimum condition, since the phase "transmission time" equates to user response time (elapsed time between sending and receiving). Maximum Transmission Time indicates the largest lag time between sending and receiving a given message. Average Transmission Time is the sum of transmission lag time (among all match messages) divided by the volume of matched messages. An Average Transmission Time = 0 and Number of Messages Matched = 300 is equivalent to:
300 messages were transmitted between these CPUs within the same second.
The Number of Messages Matched and the Number Msg. Not Found are self-explanatory. Lastly, a Clock Sync. Error is reported if the time stamp of a sending (WRITE) CPU exceeds the time stamp of the receiving (READ) CPU for a given message.
With Clock Sync. Errors, each message is counted and discarded. To trace messages causing this error, the user can revise the program to write these messages to an error file.