+4
−2
Loading
mainline inclusion from mainline-v6.3-rc1 commit 47df9ce9 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAQPKU CVE: NA Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47df9ce95cd568d3f84218c4f65e9fbd4dfeda55 -------------------------------- Commit f906a6a0 ("blk-mq: improve tag waiting setup for non-shared tags") mark restart for unshared tags for improvement. At that time, tags is only shared betweens queues and we can check if tags is shared by test BLK_MQ_F_TAG_SHARED. Afterwards, commit 32bc15af ("blk-mq: Facilitate a shared sbitmap per tagset") enabled tags share betweens hctxs inside a queue. We only mark restart for shared hctxs inside a queue and may cause io hung if there is no tag currently allocated by hctxs going to be marked restart. Wait on sbitmap_queue instead of mark restart for shared hctxs case to fix this. Fixes: 32bc15af ("blk-mq: Facilitate a shared sbitmap per tagset") Signed-off-by:Kemeng Shi <shikemeng@huaweicloud.com> Reviewed-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Jens Axboe <axboe@kernel.dk> Conflicts: block/blk-mq.c [commit 2a5a24aa ("scsi: blk-mq: Return budget token from .get_budget callback") and commit 079a2e3e ("blk-mq: Change shared sbitmap naming to shared tags") are not backported] Signed-off-by:
Yu Kuai <yukuai3@huawei.com>