On 10/24/22 6:55 PM, Ming Lei wrote: > @@ -1593,10 +1598,18 @@ static void blk_mq_timeout_work(struct work_struct *work) > if (!percpu_ref_tryget(&q->q_usage_counter)) > return; > > - blk_mq_queue_tag_busy_iter(q, blk_mq_check_expired, &next); > + /* > + * Before walking tags, we must ensure any submit started before > + * the current time has finished. Since the submit uses srcu or rcu, > + * wait for a synchronization point to ensure all running submits > + * have finished > + */ > + blk_mq_wait_quiesce_done(q); I'm a little worried about this bit - so we'll basically do a sync RCU every time the timeout timer runs... Depending on machine load, that can take a long time. -- Jens Axboe _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization