Hi, On 19-03-16 18:06, James Bottomley wrote:
On Sat, 2016-03-19 at 09:59 +0100, Hans de Goede wrote:Commit 64d513ac31bd ("scsi: use host wide tags by default") causes the scsi-core to queue more cmnds then we can handle on devices with multiple LUNs, limit the qdepth at the scsi-host level instead of per slave to fix this.Help me understand this bug a bit more. Are you saying that the commit you identify is causing the block layer to queue more commands than you've set the per-lun limit to? In which case we have a serious problem for more than just UAS. Or are you saying that UAS always had a global command limit, but it just didn't get set correctly; however, it mostly worked until the above commit exposed the problem?
The latter. UAS has always had a global command limit, which so far was enforced via a shared tag map rather then setting can_queue correctly. The identified commit removed the usage of a shared tag map which causes the core to queue more commands *in total* then the global limit. I've no reason to believe that the core was exceeding the per-lun limit on a single lun, but for uas exceeding the limit when counting all queued commands per lun combined is just as bad, since it really always was a global limit. This theory is supported by the only bug report for 4.4 being a (rare) multi-lun uas disk enclosure. Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
