[PATCH v5 1/2] blk-mq: add tagset quiesce interface
Ming Lei
ming.lei at redhat.com
Tue Jul 28 05:33:26 EDT 2020
On Tue, Jul 28, 2020 at 02:24:38AM -0700, Sagi Grimberg wrote:
>
> > > I like the tagset based interface. But the idea of doing a per-hctx
> > > allocation and wait doesn't seem very scalable.
> > >
> > > Paul, do you have any good idea for an interface that waits on
> > > multiple srcu heads? As far as I can tell we could just have a single
> > > global completion and counter, and each call_srcu would just just
> > > decrement it and then the final one would do the wakeup. It would just
> > > be great to figure out a way to keep the struct rcu_synchronize and
> > > counter on stack to avoid an allocation.
> > >
> > > But if we can't do with an on-stack object I'd much rather just embedd
> > > the rcu_head in the hw_ctx.
> >
> > I think we can do that, please see the following patch which is against Sagi's V5:
>
> I don't think you can send a single rcu_head to multiple call_srcu calls.
OK, then one variant is to put the rcu_head into blk_mq_hw_ctx, and put
rcu_synchronize into blk_mq_tag_set.
Thanks,
Ming
More information about the Linux-nvme
mailing list