Re: [PATCH v2 4/7] blk-mq: Introduce blk_quiesce_queue() and blk_resume_queue()
From: Ming Lei <tom.leiming@gmail.com>
Date: 2016-10-05 04:32:19
Also in:
linux-nvme, linux-rdma, linux-scsi
From: Ming Lei <tom.leiming@gmail.com>
Date: 2016-10-05 04:32:19
Also in:
linux-nvme, linux-rdma, linux-scsi
On Wed, Oct 5, 2016 at 12:16 PM, Bart Van Assche [off-list ref] wrote:
On 10/01/16 15:56, Ming Lei wrote:quoted
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