VCTC Support in VM/ESA - Diagnostic Notes

This section is intended to offer ideas to help you diagnose a problem that might be observed in a VCTC application (whether the problem is caused by the application program, or the internal VCTC logic).

You will find information here about:


Determining which devices are involved

When a problem is detected, it is usually obvious which VM user is involved (e.g. an application message on the user's display indicates that device 041F does not respond).

Locate the primary virtual device

You will need to record the VM userid and virtual address (e.g. "041F") along with any other observations that might pertain to the problem.

Locate the secondary (coupled) virtual device

Use the "CP QUERY VIRTUAL vdev" command (where "vdev" is the known device, like "041F") to find the other side of this adapter. For example, "CP QUERY VIRTUAL 41F" from VM user VMTEST1 might display:

 CTCA 041F COUPLED TO  VMTEST2  041F SUBCHANNEL = 0012
indicating that the secondary device is VMTEST2 041F.

Record the status of both devices

If the adapter appears to be "hung", it may be helpful to record the contents of the VDEV and CACBK control blocks before attempting to reset the adapter. You can use the CP LOCATE command to find the address of the VDEV, and use the DISPLAY command to find the address (at offset x'080' in the VDEV) of the CACBK. A sample exec is available (QVX EXEC) to issue those commands for you automatically.


Collecting VCTC entries in the CP Trace Table

CTCA applications involve relatively independent execution of two programs on two different machines. For VCTC applications, the CP Trace Table is often the best place to look for the failing sequence.

Enable the relevent trace entries

If your system does not ordinarily collect ALL trace entries, you should ensure that the following trace table entries are being collected:

  • Trace Type VINT (Virtual I/O Interrupts) to provide context information.
  • Trace Type VCSW (Virtual CSW updates) to provide context information.
  • Trace Type VCTC (Virtual CTC operations) to provide details about the VCTC Simulation.

For example, the following will ONLY collect this subset of trace entries:

CP SET CPTRACE ALL OFF
CP SET CPTRACE ON VINT VCSW VCTC
 
CP TRSAVE CP ON TO OPERATOR SIZE 256 KEEP 2

Recreate the problem

Repeat the configuration or the application tasks that lead to the problem.

Process the TRACE file

Close the TRSAVE file and process it using TRACERED. For example:

CP TRSAVE CP OFF
 
TRACERED spoolid CMS filename (ALL FORMAT
 
CP SET CPTRACE ALL ON  (to resume normal CPTRACE activity)

The VCTC trace entries start at trace code 7900. If you happen to run a version of TRACERED built prior to VM/ESA Release 2.1.0 it will not recognize these trace entries.


VCTC Trace Codes

Beginning with CP Release 2.1.0, CPTRACE TYPE VCTC entries are collected in the CP Trace Table to record VCTC activity:

  • 7900 VCTC Defined
  • 7901 VCTC Detached
  • 7902 VCTC Coupled
  • 7903 VCTC Interface Disconnect Reset
  • 7904 VCTC Selective Reset
  • 7905 VCTC System Reset
  • 7906 VCTC CCW Simulation
  • 7907 VCTC Unsolicited Interrupt Reflection

    See "Collecting VCTC entries in the CP Trace Table" for advice on collecting these trace entries.


    VCTC Trace Code 7900

     7900 VCTC Defined
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | 00000000   | 00000000   | VDEVDEV/   |
     | VMDBK      | Address    |            |            | 0000       |
     | Address    |            |            |            |            |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVDF.


    VCTC Trace Code 7901

     7901 VCTC Detached
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | CACYPEND/  |
     | VMDBK      | Address    | Address    | CACXACTV/  | CACYACTV/  |
     | Address    |            |            | CACXCNTL/  | CACYCNTL/  |
     |            |            |            | CACXUINT   | CACYUINT   |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVDT.


    VCTC Trace Code 7902

     7902 VCTC Coupled
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | Target     | Target     |
     | VMDBK      | Address    | Address    | VMDBK      | VDEV       |
     | Address    |            |            | Address    | Address    |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVCP.


    VCTC Trace Code 7903

     7903 VCTC Interface Disconnect Reset
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | CACYPEND/  |
     | VMDBK      | Address    | Address    | CACXACTV/  | CACYACTV/  |
     | Address    |            |            | CACXCNTL/  | CACYCNTL/  |
     |            |            |            | CACXUINT   | CACYUINT   |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVID.


    VCTC Trace Code 7904

     7904 VCTC Selective Reset
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | CACYPEND/  |
     | VMDBK      | Address    | Address    | CACXACTV/  | CACYACTV/  |
     | Address    |            |            | CACXCNTL/  | CACYCNTL/  |
     |            |            |            | CACXUINT   | CACYUINT   |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVSR.


    VCTC Trace Code 7905

     7905 VCTC System Reset
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | CACYPEND/  |
     | VMDBK      | Address    | Address    | CACXACTV/  | CACYACTV/  |
     | Address    |            |            | CACXCNTL/  | CACYCNTL/  |
     |            |            |            | CACXUINT   | CACYUINT   |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVSY.


    VCTC Trace Code 7906

     7906 VCTC CCW Simulation
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | CCW opcode/|
     | VMDBK      | Address    | Address    | CACXACTV/  | CCW flags/ |
     | Address    |            |            | CACXCNTL/  | DataLength |
     |            |            |            | CACXUINT   |            |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTCVS.


    VCTC Trace Code 7907

     7907 VCTC Unsolicited Interrupt Reflection
     
     +------------+------------+------------+------------+------------+
     | Reg N      | Reg N+1    | Reg N+2    | Reg N+3    | Reg N+4    |
     +------------+------------+------------+------------+------------+
     | X owner    | X VDEV     | Y VDEV     | CACXPEND/  | VDEVDEV/   |
     | VMDBK      | Address    | Address    | CACXACTV/  | 00/        |
     | Address    |            |            | CACXCNTL/  | UnitStatus |
     |            |            |            | CACXUINT   |            |
     +------------+------------+------------+------------+------------+
    

    This entry is recorded by entry point HCPCTVUI.

    If your system is running CP Release 2.1.0 or 2.2.0 prior to APAR VM60682, this trace entry is recorded after the Adapter lock has been obtained. Later in the routine, we may decide to discard or delay the unsolicited interrupt.

    If your system is running CP Release 2.1.0 or 2.2.0 with APAR VM60682 applied, this trace entry is recorded after both the VDEV and Adapter locks have been obtained and we have decided to present the interrupt.


    (Back to VCTC Main Document)