On Thu, 13 May 2021 09:49:12 -0700, Bart Van Assche wrote: > With the current implementation of the UFS driver active_queues is 1 > instead of 0 if all UFS request queues are idle. That causes > hctx_may_queue() to divide the queue depth by 2 when queueing a request > and hence reduces the usable queue depth. > > The shared tag set code in the block layer keeps track of the number of > active request queues. blk_mq_tag_busy() is called before a request is > queued onto a hwq and blk_mq_tag_idle() is called some time after the hwq > became idle. blk_mq_tag_idle() is called from inside blk_mq_timeout_work(). > Hence, blk_mq_tag_idle() is only called if a timer is associated with each > request that is submitted to a request queue that shares a tag set with > another request queue. Hence this patch that adds a blk_mq_start_request() > call in ufshcd_exec_dev_cmd(). This patch doubles the queue depth on my > test setup from 16 to 32. > > [...] Applied to 5.13/scsi-fixes, thanks! [1/1] ufs: Increase the usable queue depth https://git.kernel.org/mkp/scsi/c/d0b2b70eb12e -- Martin K. Petersen Oracle Linux Engineering