On Fri, 2017-08-18 at 16:57 -0500, Brian King wrote: > To add to my analysis above, #9 should not be there... It looks like > jiffies_at_alloc would also be getting reinitialized in this case, resulting in > a perpetual retry, which is what I was seeing. Hello Brian, Some time ago I noticed that jiffies_at_alloc is indeed set while a command is being prepared instead of at command allocation time. I think that behavior was introduced in 2005 through commit b21a41385118 ("[SCSI] add global timeout to the scsi mid-layer"). At that time SCSI commands were allocated at prep time and freed at unprep time. Recently that has been changed such that a SCSI command (struct scsi_cmnd) has the same lifetime as struct request. In other words, it was not possible in 2005 but it is possible today to set jiffies_at_alloc at command allocation time instead of when a command is being prepared. Do you want me to submit a patch that implements this change? Bart.