Message ID | 20250418163708.442085-20-ming.lei@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | block: unify elevator changing and fix lockdep warning | expand |
On 4/18/25 10:07 PM, Ming Lei wrote: > 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. > > Signed-off-by: Ming Lei <ming.lei@redhat.com> Looks good to me: Reviewed-by : Nilay Shroff <nilay@linux.ibm.com>
diff --git a/block/blk-mq.c b/block/blk-mq.c index 4de3287ce6e3..72f106163466 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -4950,7 +4950,7 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, fallback: blk_mq_update_queue_map(set); list_for_each_entry(q, &set->tag_list, tag_set_list) { - blk_mq_realloc_hw_ctxs(set, q); + __blk_mq_realloc_hw_ctxs(set, q); if (q->nr_hw_queues != set->nr_hw_queues) { int i = prev_nr_hw_queues; @@ -4993,6 +4993,9 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, list_for_each_entry(q, &set->tag_list, tag_set_list) { blk_mq_sysfs_register_hctxs(q); blk_mq_debugfs_register_hctxs(q); + + blk_mq_remove_hw_queues_cpuhp(q); + blk_mq_add_hw_queues_cpuhp(q); } /* Free the excess tags when nr_hw_queues shrink. */
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. Signed-off-by: Ming Lei <ming.lei@redhat.com> --- block/blk-mq.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)