Thread (11 messages) 11 messages, 4 authors, 2018-02-02

Re: [PATCH V4] blk-mq: introduce BLK_STS_DEV_RESOURCE

From: Ming Lei <tom.leiming@gmail.com>
Date: 2018-01-30 03:20:49
Also in: dm-devel, linux-nvme, linux-scsi

On Tue, Jan 30, 2018 at 5:51 AM, Bart Van Assche [off-list ref] wrote:
On Mon, 2018-01-29 at 16:44 -0500, Mike Snitzer wrote:
quoted
But regardless of which wins the race, the queue will have been run.
Which is all we care about right?
Running the queue is not sufficient. With this patch applied it can happen
that the block driver returns BLK_STS_DEV_RESOURCE, that the two or more
concurrent queue runs finish before sufficient device resources are available
to execute the request and that blk_mq_delay_run_hw_queue() does not get
called at all. If no other activity triggers a queue run, e.g. request
completion, this will result in a queue stall.
Please see document of BLK_STS_DEV_RESOURCE:

+ * BLK_STS_DEV_RESOURCE is returned from driver to block layer if device
+ * related resource is unavailable, but driver can guarantee that queue
+ * will be rerun in future once the resource is available (whereby
+ * dispatching requests).

I have explained the SCSI's BLK_STS_DEV_RESOURCE conversion in
another thread, let's know if you have further concern:

https://marc.info/?l=linux-block&m=151727454815018&w=2

-- 
Ming Lei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help