[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
Sat Jan 10 03:10:57 UTC 2015
On Fri, Jan 09 2015 at 8:59pm -0500,
Jens Axboe <axboe at kernel.dk> wrote:
> On 01/09/2015 06:48 PM, Mike Snitzer wrote:
> >
> >A third "make install" resulted in:
> >
> >[ 543.711782] __bt_get: values before for loop: last_tag=114, index=3
> >[ 543.713411] __bt_get: values after for loop: last_tag=96, index=3
> >[ 543.714495] bt_get: __bt_get() returned -1
> >[ 543.715222] queue_num=0, nr_tags=128, reserved_tags=0, bits_per_word=5
> >[ 543.716351] nr_free=128, nr_reserved=0
> >[ 543.717016] active_queues=0
> >
> >(things definitely do seem better, e.g. less frequent failure and no
> >longer see the last_tag=127 case)
>
> So if we end up freeing in batches, it's not totally unlikely that
> the case could hit where all were busy, and they got freed in
> between. Does seem a bit peculiar, though. The dump above, is that
> for the first failure case of invoking __bt_get()? I don't see the:
>
> _still_ returned -1
>
> which would seem to back up the theory, though. So I think this
> might actually be good, even if you hit that case.
Right, I'm not seeing the double failure case ("_still_ returned -1")
but I did see it in the previous 3 patches, albeit infrequently.
> Bart, could you try the patch (the -v4) and your DM hang and see if
> it solves it for you?
Yes, I'm interested to hear from Bart on v4 too.
> >>If this one doesn't solve it, I'll reproduce it myself to save the
> >>ping-pong effort :-)
> >
> >I don't mind testing it since it is really quick. But OK.
>
> OK, then we can stick to that. Let me know if you hit the case of it
> both the initial -1 and the following -1, since that would indicate
> it's not fixed.
Will do.
Thanks for all your help.
More information about the dm-devel
mailing list