Thread (25 messages) 25 messages, 4 authors, 2018-01-30

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

From: Ming Lei <hidden>
Date: 2018-01-30 03:31:19
Also in: dm-devel, linux-scsi

On Tue, Jan 30, 2018 at 01:11:22AM +0000, Bart Van Assche wrote:
On Tue, 2018-01-30 at 09:07 +0800, Ming Lei wrote:
quoted
On Mon, Jan 29, 2018 at 04:48:31PM +0000, Bart Van Assche wrote:
quoted
- It is easy to fix this race inside the block layer, namely by using
  call_rcu() inside the blk_mq_delay_run_hw_queue() implementation to
  postpone the queue rerunning until after the request has been added back to
  the dispatch list.
It is just easy to say, can you cook a patch and fix all drivers first?
Please reread what I wrote. I proposed to change the blk_mq_delay_run_hw_queue()
IMPLEMENTATION such that the callers do not have to be modified.
Please take a look at drivers, when BLK_STS_RESOURCE is returned, who
will call blk_mq_delay_run_hw_queue() for drivers?
quoted
[ ... ] Later, you admitted you understood the patch wrong. [ ... ]
That's nonsense. I never wrote that.
Believe it or not, follows the link and your reply:

	https://marc.info/?l=dm-devel&m=151672694508389&w=2
So what is wrong with this way?
Sorry, I swapped BLK_STS_DEV_RESOURCE and BLK_STS_RESOURCE accidentally in my
reply. What I meant is that changing a blk_mq_delay_run_hw_queue() call followed
by return BLK_STS_RESOURCE into BLK_STS_DEV_RESOURCE is wrong and introduces a
race condition in code where there was no race condition.

Bart.

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