[PATCH v2 4/7] blk-mq: Introduce blk_quiesce_queue() and blk_resume_queue()

Ming Lei tom.leiming at gmail.com
Tue Oct 4 21:32:18 PDT 2016

On Wed, Oct 5, 2016 at 12:16 PM, Bart Van Assche
<bart.vanassche at sandisk.com> wrote:
> On 10/01/16 15:56, Ming Lei wrote:
>> If we just call the rcu/srcu read lock(or the mutex) around .queue_rq(),
>> the
>> above code needn't to be duplicated any more.
> Hello Ming,
> Can you have a look at the attached patch? That patch uses an srcu read lock
> for all queue types, whether or not the BLK_MQ_F_BLOCKING flag has been set.

That is much cleaner now.

> Additionally, I have dropped the QUEUE_FLAG_QUIESCING flag. Just like
> previous versions, this patch has been tested.

I think the flag of QUEUE_FLAG_QUIESCING is still needed because we
have to set this flag to prevent new coming .queue_rq() from being run,
and synchronize_srcu() won't wait for completion of that at all (see
section of 'Update-Side Primitives' in [1]).

[1] https://lwn.net/Articles/202847/

Ming Lei

More information about the Linux-nvme mailing list