DASD I/O requests can time out at two levels in the software stack.
About this task
When the DASD device driver receives an I/O request from an application, it issues one or
more low-level I/O requests to the affected storage system. Both the initial I/O request from the
application and the resulting low-level requests to the storage system can time out. You set the
timeout values through two sysfs attributes of the DASD.
- expires
- specifies the maximum time, in seconds, that the DASD device driver waits for a response to a
low-level I/O request from a storage server.
The default for the maximum response time depends on
the type of DASD:
- ECKD
- uses the default that is provided by the storage server.
- FBA
- 300 s
- DIAG
- 50 s
If the maximum response time is exceeded, the DASD device driver cancels the request.
Depending on your setup, the DASD device driver might then try the request again, possibly in
combination with other recovery actions.
- timeout
- specifies the time interval, in seconds, within which the DASD device driver must respond to an
I/O request from a software layer above it. If the specified time expires before the request is
completed, the DASD device driver cancels all related low-level I/O requests to storage systems and
reports the request as failed.
This setting is useful in setups where the software layer above
the DASD device driver requires an absolute upper limit for I/O requests.
A value of
0
means that there is no time limit. This value is the default.
Procedure
You can use the expires and timeout
attributes of a DASD to change the timeout values for that DASD.
-
To find out the current timeout values, issue commands of this form:
# cat /sys/bus/ccw/devices/<device_bus_id>/expires
# cat /sys/bus/ccw/devices/<device_bus_id>/timeout
Example:
# cat /sys/bus/ccw/devices/0.0.7008/expires
30
# cat /sys/bus/ccw/devices/0.0.7008/timeout
0
In the example, a maximum response time of 30 seconds applies to the storage server for a
DASD with bus ID
0.0.7008
. No total time limit is set for I/O requests to this
DASD.
-
To set different timeout values, issue commands of this form:
# echo <max_wait> > /sys/bus/ccw/devices/<device_bus_id>/expires
# echo <total_max> > /sys/bus/ccw/devices/<device_bus_id>/timeout
where:
- <max_wait>
- is the new maximum response time, in seconds, for the storage server. The value must be a
positive integer.
- <total_max>
- is the new maximum total time in seconds. The value must be a positive integer or
0
. 0
disables this timeout setting.
- <device_bus_id>
- is the device bus-ID of the DASD.
Example:
# echo 60 > /sys/bus/ccw/devices/0.0.7008/expires
# echo 120 > /sys/bus/ccw/devices/0.0.7008/timeout
This example sets timeout values for a DASD with bus ID
0.0.7008
. The
maximum response time for the storage server is set to 60 seconds and the overall time limit for I/O
requests is set to 120 seconds.