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