[dm-devel] blk-mq request allocation stalls [was: Re: [PATCH v3 0/8] dm: add request-based blk-mq support]

Jens Axboe axboe at kernel.dk
Wed Jan 7 16:24:12 UTC 2015


On 01/07/2015 09:22 AM, Mike Snitzer wrote:
> On Wed, Jan 07 2015 at 11:15am -0500,
> Mike Snitzer <snitzer at redhat.com> wrote:
>
>> On Wed, Jan 07 2015 at 10:32am -0500,
>> Jens Axboe <axboe at kernel.dk> wrote:
>>
>>> You forgot dm-1, that's what mkfs is sleeping on. But given that
>>> sdc/sdd look idle, it still looks like a case of dm-1 not
>>> appropriately running the queues after insertion.
>>
>> DM never directly runs the queues of the underlying SCSI devices
>> (e.g. sdc, sdd).
>>
>> request-based DM runs the DM device's queue on completion of a clone
>> request:
>>
>> dm_end_request -> rq_completed -> blk_run_queue_async
>>
>> Which ultimately does seem to be the wrong way around (like you say:
>> queue should run after insertion).
>
> Hmm, for q->mq_ops blk_insert_cloned_request() should already be running
> the queue.
>
> blk_insert_cloned_request is calling blk_mq_insert_request(rq, false, true, true);
>
> Third arg being @run_queue which results in blk_mq_run_hw_queue() being
> called.

OK, that should be fine then. In that case, it's probably a missing 
queue run in some other condition... Which does make more sense, since 
"most" of the runs Bart did looked fine, it's just a slow one every now 
and then.

-- 
Jens Axboe




More information about the dm-devel mailing list