Thread (25 messages) 25 messages, 9 authors, 2018-06-07

Re: INFO: task hung in blk_queue_enter

From: Jens Axboe <axboe@kernel.dk>
Date: 2018-06-02 04:31:20
Also in: linux-ext4, lkml

On 6/1/18 8:36 PM, Ming Lei wrote:
quoted
clear the bit when we need to, potentially even adding a debug check to
blk_queue_enter_live() that complains if the ref was not already
elevated. Though that would be expensive, compared to the percpu inc
now. Not saying the bit is necessarily the best way forward, but I do
like it a LOT more than adding an argument to generic_make_request.
We may introduce generic_make_request_with_ref() for blk_queue_split(),
what do you think of the following patch?
Functionally it'll work as well.
In DM or MD, there is the following use case:

1) bio comes from fs, then one clone is made from this bio

2) the cloned bio is submitted via generic_make_request() from
another context, such as wq.

3) then the flag of BIO_QUEUE_ENTERED is inherited and causes
the queue usage counter isn't held.
We don't copy flags on a clone.

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