[PATCH 1/1] block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock
Bart Van Assche
bvanassche at acm.org
Thu Dec 4 10:22:23 PST 2025
On 12/4/25 8:11 AM, Mohamed Khalfella wrote:
> @@ -4302,6 +4302,8 @@ static void blk_mq_del_queue_tag_set(struct request_queue *q)
> blk_mq_update_tag_set_shared(set, false);
> }
> mutex_unlock(&set->tag_list_lock);
> +
> + synchronize_rcu();
> INIT_LIST_HEAD(&q->tag_set_list);
> }
Yikes. This change slows down all blk_mq_del_queue_tag_set() callers.
Please fix the reported deadlock by modifying the NVMe code instead of
slowing down the block layer.
Thanks,
Bart.
More information about the Linux-nvme
mailing list