Re: [PATCH V3] blk-mq: count the hctx as active before allocate tag

From: Jens Axboe
Date: Thu Aug 09 2018 - 10:35:32 EST


On 8/8/18 8:09 PM, Jianchao Wang wrote:
> Currently, we count the hctx as active after allocate driver tag
> successfully. If a previously inactive hctx try to get tag first
> time, it may fails and need to wait. However, due to the stale tag
> ->active_queues, the other shared-tags users are still able to
> occupy all driver tags while there is someone waiting for tag.
> Consequently, even if the previously inactive hctx is waked up, it
> still may not be able to get a tag and could be starved.
>
> To fix it, we count the hctx as active before try to allocate driver
> tag, then when it is waiting the tag, the other shared-tag users
> will reserve budget for it.

Hand-applied for 4.19 (didn't apply directly).

--
Jens Axboe