25.20. Controlling the SCSI Command Timer and Device Status
25.20. Controlling the SCSI Command Timer and Device Status The Linux SCSI layer sets a timer on each command. When this timer expires, the SCSI layer will quiesce the host bus adapter (HBA) and wait for all outstanding commands to either time out or complete. Afterwards, the SCSI layer will activate the driver's error handler. When the error handler is triggered, it attempts the following operations in order (until one successfully executes): Abort the command. Reset the device. Reset the bus. Reset the host. If all of these operations fail, the device will be set to the offline state. When this occurs, all I/O to that device will be failed, until the problem is corrected and the user sets the device to running . The process is different, however, if a device uses the Fibre Channel protocol and the rport is blocked. In such cases, the drivers wait for several seconds for the rport to become online again before activating the error handler. This prevents devices from becoming offline due to temporary transport problems. Device States To display the state of a device, use: To set a device to the running state, use: Command Timer To control the command timer, modify the /sys/block/ device-name /device/timeout file: Replace value in the command with the timeout value, in seconds, that you want to implement.
cat /sys/block/ device-name /device/state echo running > /sys/block/ device-name /device/state echo value > /sys/block/ device-name /device/timeout