Characteristics of the I/O interface timeout function

In the CPC, each channel path has I/O interface timeout functions that time the control unit delays in completing the following I/O interface sequences:
  • A 4-second timeout for all selection and status presentation sequences. A timeout occurs if the sequence is not complete within 4 seconds.
  • A 30-second timeout for data transfer. A timeout occurs if a byte of data is not transferred within 30 seconds.

If a timeout occurs, the channel terminates the I/O request to the control unit and generates an interface-control-check interruption.

For additional information about these sequences, see System/360 and System/370 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information, GA22-6974.

Malfunctions in control units and I/O devices can cause a channel path to be unavailable to other control units and I/O devices. The timeout function detects these malfunctions.

When the timeout function is inactive (timeout is inhibited), control unit delays are not timed and the channel unconditionally waits until the control unit completes the sequence or initiates the next tag sequence. If the control unit fails to complete a sequence because of a malfunction, the channel path remains active to the control unit. In this situation, the channel path is unavailable for I/O requests to other control units until the failing control unit deactivates all in-tags (except metering-in and request-in) or until the channel path is reset.

The channel times I/O requests as follows:
  • If TIMEOUT=Y is specified, the I/O interface timeout function is active and the channel times all I/O tag sequences and delays between dependent tag sequences that are initiated by either the channel or the control unit. Some examples are:
    • The initial selection sequence resulting from a Start I/O instruction or a Start I/O Fast Release instruction
    • A request-in tag sequence initiated by the control unit to reconnect to the I/O interface
    • Delays between data transfer tag sequences
  • If TIMEOUT=N is specified, the I/O interface timeout function is inactive (timeout is inhibited) for:
    • Data transfer tag sequence
    • Delays between data transfer tag sequences

Timeout is inhibited from the rise of service-out that follows status-in during the initial selection sequence until the rise of service-out that follows status-in during the ending sequence.

Examples follow that show when the timeout function is inactive if TIMEOUT=N is specified.

Example A. Channel initiated sequence (for example, SIO)
Initial          Data                 Ending status:   
selection        transfer             channel end and   
sequence         sequences            device end sequence 

<---Timed-----><---Not timed-----><--------Timed------------->
Example B. Command chaining control unit initiated reconnection sequence
Device end   Initial        Data              Ending status:   
reconnect    selection      transfer          channel end and   
sequence     sequence       sequences         device end sequence 

<--------Timed------------><--Not timed--><---------Timed-----------> 

When a timeout condition is detected, the channel terminates the I/O request to the control unit by issuing a selective reset to the control unit and then generating an interface-control-check interruption. A channel report word (CRW) is made pending, which indicates a channel-path-terminal condition.

If TIMEOUT=N is specified, detection of a timeout condition as a result of an interface associated malfunction might not occur (see the beginning of this appendix for a description of sequences that are not timed when TIMEOUT=N is specified). Failure to detect and recover this condition might make various resources unavailable to the control program. If continued operation is dependent on the availability of these resources, system degradation might be experienced until those resources are recovered. Recovery might occur as a consequence of detecting a secondary error the CPC might develop from failing to detect the timeout condition. Generally, this situation does not occur and recovery of the resources requires operator intervention. For these reasons, code TIMEOUT=N only when you decide a real need exists that justifies the exposure.