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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html