[dm-devel] blk-mq request allocation stalls

Jens Axboe axboe at kernel.dk
Mon Jan 12 16:59:44 UTC 2015


On 01/12/2015 09:58 AM, Mike Snitzer wrote:
> On Mon, Jan 12 2015 at 11:34am -0500,
> Jens Axboe <axboe at kernel.dk> wrote:
>
>> 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.
>
> Could this be something flawed in the iSCSI blk-mq implementation?  I
> haven't ever been able to replicate this problem with virtio-blk.

It's related to a shared tag map, which only happens on scsi-mq. Other 
devices generally don't share tag maps.

-- 
Jens Axboe




More information about the dm-devel mailing list