[PATCH 3/8] blk-mq: move the srcu_struct used for quiescing to the tagset
Keith Busch
kbusch at kernel.org
Thu Oct 20 10:26:55 PDT 2022
On Thu, Oct 20, 2022 at 12:56:03PM +0200, Christoph Hellwig wrote:
> All I/O submissions have fairly similar latencies, and a tagset-wide
> quiesce is a fairly common operation. Becuase there are a lot less
s/Becuase/Because
> @@ -501,6 +502,8 @@ enum hctx_type {
> * @tag_list_lock: Serializes tag_list accesses.
> * @tag_list: List of the request queues that use this tag set. See also
> * request_queue.tag_set_list.
> + * @srcu: Use as lock when type of the request queue is blocking
> + * (BLK_MQ_F_BLOCKING). Must be the last member
Since you're not dealing with flexible arrays anymore, I don't think
srcu strictly needs to be the last member.
The code looks great, though!
Reviewed-by: Keith Busch <kbusch at kernel.org>
> */
> struct blk_mq_tag_set {
> struct blk_mq_queue_map map[HCTX_MAX_TYPES];
> @@ -521,6 +524,7 @@ struct blk_mq_tag_set {
>
> struct mutex tag_list_lock;
> struct list_head tag_list;
> + struct srcu_struct srcu;
> };
More information about the Linux-nvme
mailing list