diff options
author | John Garry <john.garry@huawei.com> | 2020-08-19 23:20:27 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-09-03 15:20:47 -0600 |
commit | f1b49fdc1c64db110aa1315831e5fe0f8599fa56 (patch) | |
tree | 3326f32212adf701cd0b0882f1e0193ac22dad1a /block/blk-mq.c | |
parent | bccf5e26d99c28980bd6ced474422a1b18402263 (diff) | |
download | linux-f1b49fdc1c64db110aa1315831e5fe0f8599fa56.tar.bz2 |
blk-mq: Record active_queues_shared_sbitmap per tag_set for when using shared sbitmap
For when using a shared sbitmap, no longer should the number of active
request queues per hctx be relied on for when judging how to share the tag
bitmap.
Instead maintain the number of active request queues per tag_set, and make
the judgement based on that.
Originally-from: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Tested-by: Don Brace<don.brace@microsemi.com> #SCSI resv cmds patches used
Tested-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-mq.c')
-rw-r--r-- | block/blk-mq.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index ffc5ad0c91b7..eff9d987f85b 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -3442,6 +3442,8 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set) goto out_free_mq_map; if (blk_mq_is_sbitmap_shared(set->flags)) { + atomic_set(&set->active_queues_shared_sbitmap, 0); + if (blk_mq_init_shared_sbitmap(set, set->flags)) { ret = -ENOMEM; goto out_free_mq_rq_maps; |