Skip to content

Commit 7ed7fa5

Browse files
Ming Leiaxboe
authored andcommitted
block: move hctx cpuhp add/del out of queue freezing
Move hctx cpuhp add/del out of queue freezing for not connecting freeze lock with cpuhp locks, then lockdep warning can be avoided. This way is safe because both needn't queue to be frozen and scheduler switch isn't allowed, with same reason for moving hctx debugfs/sysfs register out of queue freeze. Reviewed-by: Hannes Reinecke <[email protected]> Reviewed-by: Nilay Shroff <[email protected]> Signed-off-by: Ming Lei <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent 0a47d2b commit 7ed7fa5

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

block/blk-mq.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5008,7 +5008,7 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
50085008
fallback:
50095009
blk_mq_update_queue_map(set);
50105010
list_for_each_entry(q, &set->tag_list, tag_set_list) {
5011-
blk_mq_realloc_hw_ctxs(set, q);
5011+
__blk_mq_realloc_hw_ctxs(set, q);
50125012

50135013
if (q->nr_hw_queues != set->nr_hw_queues) {
50145014
int i = prev_nr_hw_queues;
@@ -5032,6 +5032,9 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
50325032
list_for_each_entry(q, &set->tag_list, tag_set_list) {
50335033
blk_mq_sysfs_register_hctxs(q);
50345034
blk_mq_debugfs_register_hctxs(q);
5035+
5036+
blk_mq_remove_hw_queues_cpuhp(q);
5037+
blk_mq_add_hw_queues_cpuhp(q);
50355038
}
50365039
memalloc_noio_restore(memflags);
50375040

0 commit comments

Comments
 (0)