[2499] in linux-scsi channel archive
Timeout for aborting a SCSI command is too short.
daemon@ATHENA.MIT.EDU (Gerard Roudier)
Sat Sep 20 04:53:18 1997
Date: Sat, 20 Sep 1997 10:49:38 +0200 (MET DST)
From: Gerard Roudier <groudier@club-internet.fr>
To: "Leonard N. Zubkoff" <lnz@dandelion.com>
cc: linux-scsi@vger.rutgers.edu
Leonard,
It seems that the middle scsi driver only allows 2 seconds to low-level
drivers to abort a command.
When the device has disconnected the bus for a nexus, it is sane
to inform the device that this nexus is canceled prior to completing
the command.
No behaving so required not to send a new command to the device in
order to avoid overlapped command condition (especially when tags are
not used).
Why did the middle scsi driver forces the timeout to be so short (2s) ?
(Did I miss something?)
A simple strategy for a disconnected command to be properly canceled is
to wait the relection, then to send it an ABORT (or ABORT TAG message if
the command is tagged) and then to complete with error the corresponding
SCSI command.
A 2 seconds time-out for this to be done is not enough for devices like
tapes that may reconnect a long time after having disconnected for a
nexus.
I suggest the abort timeout value to be the same as the corresponding
command time-out value or something deduced from (for example half the
command time-out value).
Regards, Gerard.