Thread (8 messages) 8 messages, 3 authors, 2021-06-29

Re: [PATCH] ufs: Increase the usable queue depth

From: "Martin K. Petersen" <martin.petersen@oracle.com>
Date: 2021-05-15 03:14:23

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help