On 20/04/2022 13:29, Hannes Reinecke wrote:
On 3/3/22 13:18, John Garry wrote:
Use the common libsas internal abort functionality.
In addition, this driver has special handling for internal abort
timeouts -
specifically whether to reset the controller in that instance, so extend
the API for that.
Huh? Is there a reason _not_ to reset the controller once abort times out?
There's a bug in v2 HW where the internal abort may timeout due to HW
bug but it is not fatal, i.e. the HW state is not totally buggered, so
can continue without a reset.
And why isn't that delegated to SCSI EH?
For sure, SCSI EH will reset the host if all else fails. However, it may
take some time to get to the point of deciding to reset - including lots
of timeouts. To accelerate this, we set a host flag to say that we have
a HW fault, and don't bother with nexus reset, LU reset, etc. once the
initial task abort fails due to HW fault and fail straight away. Maybe
the core code could do something similar but it seems messy/hard to
generalise.
Thanks,
John