On 03/15/2013 02:13 PM, Bart Van Assche wrote:
> On 03/15/13 19:51, Mike Christie wrote:
>> On 03/15/2013 08:41 AM, Bart Van Assche wrote:
>>> How about using the value of scsi_cmnd.jiffies_at_alloc to finish only
>>> those SCSI commands in the host reset handler that exceeded a certain
>>> processing time ?
>>
>> We basically do this now. When a scsi command times out the scsi layer
>> blocks the host from processing new commands and waits for all
>> outstanding commands to either finish normally or timeout. When all
>> commands have finished or timedout, then we start the scsi eh code. So,
>> by the time we have go to the scsi eh callbacks we are in a state where
>> all the commands being processed by the eh have exceeded a certain
>> processing time.
>>
>> If you mean you want to drop the block and wait part, then I think it
>> could speed things up to do the abort callbacks while other IO is
>> running (as long as the driver can support it). However if the abort
>> fails and you need to escalate to operations like resets which interfere
>> with multiple commands, then the driver/scsi-ml does not have much
>> choice in what it does cleanup wise. There would be no point in checking
>> the jiffies_at_alloc. The commands that are going to be affected by the
>> tmf or host reset operation must be returned to the scsi-ml for retries
>> or failure upwards.
> 
> Hello Mike,
> 
> It seems like there is a misunderstanding. With my comment I was not
> referring to the SCSI ML but to the SCSI LLD. LLD drivers like ib_srp
> keep track of outstanding SCSI requests. With the SRP protocol it is
> possible to tell the InfiniBand HCA not to deliver completions for
> outstanding requests by closing the connection used for SRP
> communication. Hence my suggestion to finish SCSI commands that were
> queued longer than a certain time ago from inside the LLD host reset

Are you saying you would have a class/driver timer running that
determines when to run this? What you describe sounds like it would
help. I am just wondering when it would be run.

If I understand you correctly, is iscsi doing what you describe when we
escalate to session dropping and relogin?


> handler. I'm not sure though whether all types of FC HBA's allow
> something equivalent.
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to