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

Mike Snitzer snitzer at redhat.com
Wed Jan 7 16:22:03 UTC 2015


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.




More information about the dm-devel mailing list