[dm-devel] blk-mq request allocation stalls

Jens Axboe axboe at kernel.dk
Mon Jan 12 16:34:21 UTC 2015


On 01/12/2015 09:12 AM, Bart Van Assche wrote:
> On 01/12/15 16:42, Jens Axboe wrote:
>> On 01/12/2015 07:46 AM, Bart Van Assche wrote:
>>> bt_get: __bt_get() returned -1
>>> queue_num=2, nr_tags=62, reserved_tags=0, bits_per_word=3
>>> nr_free=62, nr_reserved=0, may_queue=0
>>> active_queues=8
>>
>> Can you add dumping of hctx->nr_active when this fails? You case is that
>> the may_queue logic says no-can-do, so it smells like the nr_active
>> accounting is wonky since you have supposedly no allocated tags, yet it
>> clearly thinks that you do.
>
> Hello Jens,
>
> The requested output is as follows:
>
> bt_get: __bt_get() returned -1
> queue_num=0, nr_tags=62, reserved_tags=0, bits_per_word=3
> nr_free=62, nr_reserved=0, hctx->tags->active_queues=7,
> hctx->nr_active=9, hctx_may_queue()=0
> active_queues=7

So that does look a bit off, we have (supposedly) 9 active requests, but 
nothing allocated. When the mkfs is done and things are idle, can you 
try and cat the 'active' file in the mq directory? I want to see if it 
drops to zero or stays elevated.

-- 
Jens Axboe




More information about the dm-devel mailing list