Re: [PATCH 5.16 1026/1039] blk-mq: fix tag_get wait task cant be awakened

From: Greg Kroah-Hartman
Date: Tue Jan 25 2022 - 04:29:38 EST


On Tue, Jan 25, 2022 at 08:38:01AM +0000, John Garry wrote:
> On 24/01/2022 18:46, Greg Kroah-Hartman wrote:
> > From: Laibin Qiu<qiulaibin@xxxxxxxxxx>
> >
> > commit 180dccb0dba4f5e84a4a70c1be1d34cbb6528b32 upstream.
> >
> > In case of shared tags, there might be more than one hctx which
> > allocates from the same tags, and each hctx is limited to allocate at
> > most:
> > hctx_max_depth = max((bt->sb.depth + users - 1) / users, 4U);
> >
> > tag idle detection is lazy, and may be delayed for 30sec, so there
> > could be just one real active hctx(queue) but all others are actually
> > idle and still accounted as active because of the lazy idle detection.
> > Then if wake_batch is > hctx_max_depth, driver tag allocation may wait
> > forever on this real active hctx.
> >
> > Fix this by recalculating wake_batch when inc or dec active_queues.
> >
> > Fixes: 0d2602ca30e41 ("blk-mq: improve support for shared tags maps")
> > Suggested-by: Ming Lei<ming.lei@xxxxxxxxxx>
> > Suggested-by: John Garry<john.garry@xxxxxxxxxx>
> > Signed-off-by: Laibin Qiu<qiulaibin@xxxxxxxxxx>
> > Reviewed-by: Andy Shevchenko<andriy.shevchenko@xxxxxxxxxxxxxxx>
> > Link:https://lore.kernel.org/r/20220113025536.1479653-1-qiulaibin@xxxxxxxxxx
> > Signed-off-by: Jens Axboe<axboe@xxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman<gregkh@xxxxxxxxxxxxxxxxxxx>
>
> JFYI, Somebody reported a hang with this commit:
> https://lore.kernel.org/linux-block/78cafe94-a787-e006-8851-69906f0c2128@xxxxxxxxxx/T/#t

Thanks for the report, I'll go drop this patch now.

greg k-h