Flow table

A flow table contains all the metrics that are associated with trace entries. Each row in the flow table represents a trace entry. The flow table concatenates the universal unique identifier (UUID) of the respective IBM unit of work ID (IUOWID) that the table contains to the front of the table name.

For more information about the UUID, see UOW table.

Table 1. Flow table definitions
Table header Description
TRACE_TYPE The type of trace that is being collected, which might be one of the following values:
  • function
  • macro
  • undefined (null)
ECB_SVM The system virtual memory (SVM) address of the ECB, which is in the form of ecbsvm-tod-index-pgmname, where:
ecbsvm
The SVM address of the ECB.
tod
The time-of-day (TOD) when the ECB was created.
index
The collected message index.
pgmname
The name of the first program that the ECB was processing when the collection started. For child ECBs that are created by a collected parent ECB, this field displays the first application program that was entered.
For example, 1107B000-DAB8CD6A6A67E2A0-0-QZZ2
TIMESTAMP_UTC The Coordinated Universal Time (UTC) timestamp that is converted from the time-of-day (TOD) timestamp.

For example, 2021/11/18 15:39:47:047.030232629

TPF_TIME_OF_DAY The z/TPF time-of-day (TOD) value in hexadecimal format.

For example, DAA22409F4CD8A140000000A9C

ECB_LAST_DISPATCH_TIME The last time this ECB was dispatched according to the z/TPF virtual timer.

For example, 0009CA5088C20340

CURRENT_VIRTUAL_TIMER The current value of the z/TPF virtual timer at collection.

For example, 00028DBADA09AA9E

CURRENT_STACK_PTR The current position of the stack pointer for the trace entry.

For example, 0009CA5088FC37CC

TRACE_GROUP_NAME The trace group name.

For example, IBM_DEFT

SUBSYSTEM The z/TPF subsystem that the trace entry was collected from.

For example, BSS

SUBSYSTEM_USER The z/TPF subsystem user (SSU) that the trace entry was collected from.

For example, HPN

ISTREAM The I-stream number of the I-stream that was running when the trace entry was collected.

For example, 1

SHARED_OBJECT_NAME The shared object that this trace entry comes from.

For example, QZZ5

SHARED_OBJECT_VERSION The version of the shared object that this trace entry comes from. If no version was specified for this shared object, this value is null.
SOURCE_NAME The source file name of the trace entry if the TRACE_TYPE field value is function for this trace entry.

For example, qzz5, cnvp, or ccinfc

TRACE_NAME The program name of the trace entry if the TRACE_TYPE field value is macro for this trace entry.

For example, QZZ5

OBJECT_DISPLACEMENT The offset into the object that is indicated in the SOURCE_NAME field where this trace entry was collected.

For example, 0000000000000356

FUNCTION_NAME The name of the function that the trace entry resided in during collection.

For example, cinfc, keyrc_okey, or dlayc

If the TRACE_TYPE field value is macro, this field is null.

FUNCTION_TRACE_TYPE One of the following values:
call
Indicates that this trace entry is for the entry into a C function.
macro
Indicates that this trace entry is for a supervisor call (SVC).
return
Indicates that this trace entry is for the exit from a C function.
stack_info
Indicates the stack nesting information when the collection started.
FUNCTION_PARAMS The parameters that were passed to the function call when the FUNCTION_TRACE_TYPE field value is call. The parameters are displayed as a JSON list in this field.

For example, [{"name":"","type":"void","value":"000000001B2235B0"}]

CALLER_SOURCE_NAME The source file name of the function that called the function that is indicated in the FUNCTION_NAME field.

For example, qzz5 or cnvp

CALLER_SHARED_OBJECT The shared object name of the function that called the function that is indicated in the FUNCTION_NAME field.

For example, CTAL, QZZ5, or CP

SHARED_OBJECT_OFFSET The offset into the shared object where the trace entry was collected. The name of the shared object is in the SHARED_OBJECT_NAME field.

For example, 000000000002C3C6

LOADSET_NAME The loadset that this trace entry was collected in.

For example, BASE or MATRTMC

ERRNO A number that represents the reason for the last error. For example, if an fopen function call fails, this field contains a number that represents the reason that the fopen function call failed. The value in this field is not cleared. Therefore, this field might contain old data.
MACRO_NAME The name of the z/TPF macro that was called.

For example, CINFC or DLAYC

If the FUNCTION_TRACE_TYPE field contains a value other than macro, this field is null.

MACRO_DATA A string that provides additional information about the z/TPF macro that was called.

For example, PAGE-00000000B189C000,ADDRESS-000000000018C606

PSW The program status word (PSW) when a z/TPF macro was called.

For example, 0715000180000000000000008FBD4082

TARGET_PROGRAM The target program that was called by the C shared object (CSO) or BAL shared object (BSO) in this trace entry.

If the FUNCTION_TRACE_TYPE field contains a value other than cbso, this field is null.

TRACE_INFO A free-form text string of as many as 80 characters that was added to trace by using the tpf_trace_info function.
RETURN_INFO_TYPE The return type of the function.

For example, void or int

If the FUNCTION_TRACE_TYPE field contains a value other than return, this field is null.

RETURN_INFO_VALUE The return value of the function.

For example, 00000000B18A22CC

If the FUNCTION_TRACE_TYPE field contains a value other than return, this field is null.

OPT_LEVEL The compile optimization level of the C/C++ function.

For example, O0 or O3

If this trace entry is not for a C/C++ function, this field is null.

NESTING_LEVEL The number of stack frames that are on the stack. This value increases when programs are entered and decreases when programs are exited.
SVC_COUNT The number of supervisor calls (SVCs). These SVCs are added up and attributed to the entry point, a C/CPP function, or an assembler program that called the SVC.
CPU_DD The DEFRC/DLAYC time in nanoseconds.

This value, which is estimated by the control program directly, indicates the amount of time that the message was doing unproductive work as a result of the request to defer, delay, or yield to the virtual file access count (VCT) list, for example, when an ECB was waiting for resources to become available.

CPU_EXIST The estimated time in nanoseconds that a function or an assembler program is on the stack during the trace. This value is the sum of the CPU_USED and CPU_WAIT values.

This value is estimated by using the start time and end time of the call and return trace entries. However, if the call and return trace entries are not found for a program or function, the time on the stack is reported as the time on the stack during the collection. For example, the QZZ5 program might have already been on the stack when the QZZ6 program is entered, and then QZZ6 calls the EXITC macro. The CPU_EXIST time for QZZ5 is calculated from the start of QZZ6 to the EXITC macro call, which is the time that QZZ5 is known to be on the stack.

CPU_USED The actual processing time in nanoseconds that was used by the message. This value includes the CPU_DD time but not the CPU_WAIT time. This value is estimated by using the z/TPF virtual timer to accumulate the processing time.
CPU_WAIT The time in nanoseconds that the message was not processing, for example, when a FIND, COHRC, or ENQC macro was called, or when timeslice occurred. This value is estimated by subtracting the dispatch time from the z/TPF virtual timer.