On 4/10/25 7:00 PM, Ming Lei wrote: > Both blk_mq_map_swqueue() and blk_mq_realloc_hw_ctxs() are only called > from queue initialization or updating nr_hw_queues code, in which > elevator switch can't happen any more. > > So remove these ->elevator_lock uses. > But what if blk_mq_map_swqueue runs in parallel, one context from blk_mq_init_allocated_queue and another from blk_mq_update_nr_hw_queues? It seems this is possible due to blk_mq_map_swqueue is invoked right after queue is added in tag-set from blk_mq_init_allocated_queue. Thanks, --Nilay