Skip to content

Commit a7e7388

Browse files
John Garryaxboe
authored andcommitted
blk-mq: Add blk_mq_tag_update_sched_shared_sbitmap()
Put the functionality to update the sched shared sbitmap size in a common function. Since the same formula is always used to resize, and it can be got from the request queue argument, so just pass the request queue pointer. Signed-off-by: John Garry <[email protected]> Reviewed-by: Ming Lei <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent 4f245d5 commit a7e7388

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

block/blk-mq-sched.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,7 @@ static int blk_mq_init_sched_shared_sbitmap(struct request_queue *queue)
575575
&queue->sched_breserved_tags;
576576
}
577577

578-
sbitmap_queue_resize(&queue->sched_bitmap_tags,
579-
queue->nr_requests - set->reserved_tags);
578+
blk_mq_tag_update_sched_shared_sbitmap(queue);
580579

581580
return 0;
582581
}

block/blk-mq-tag.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,12 @@ void blk_mq_tag_resize_shared_sbitmap(struct blk_mq_tag_set *set, unsigned int s
634634
sbitmap_queue_resize(&set->__bitmap_tags, size - set->reserved_tags);
635635
}
636636

637+
void blk_mq_tag_update_sched_shared_sbitmap(struct request_queue *q)
638+
{
639+
sbitmap_queue_resize(&q->sched_bitmap_tags,
640+
q->nr_requests - q->tag_set->reserved_tags);
641+
}
642+
637643
/**
638644
* blk_mq_unique_tag() - return a tag that is unique queue-wide
639645
* @rq: request for which to compute a unique tag

block/blk-mq-tag.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ extern int blk_mq_tag_update_depth(struct blk_mq_hw_ctx *hctx,
5050
unsigned int depth, bool can_grow);
5151
extern void blk_mq_tag_resize_shared_sbitmap(struct blk_mq_tag_set *set,
5252
unsigned int size);
53+
extern void blk_mq_tag_update_sched_shared_sbitmap(struct request_queue *q);
5354

5455
extern void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool);
5556
void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn,

block/blk-mq.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3650,8 +3650,7 @@ int blk_mq_update_nr_requests(struct request_queue *q, unsigned int nr)
36503650
q->nr_requests = nr;
36513651
if (blk_mq_is_sbitmap_shared(set->flags)) {
36523652
if (q->elevator)
3653-
sbitmap_queue_resize(&q->sched_bitmap_tags,
3654-
nr - set->reserved_tags);
3653+
blk_mq_tag_update_sched_shared_sbitmap(q);
36553654
else
36563655
blk_mq_tag_resize_shared_sbitmap(set, nr);
36573656
}

0 commit comments

Comments
 (0)