[PATCH V3 3/4] blk-mq: add tagset quiesce interface

Hannes Reinecke hare at suse.de
Tue Sep 8 04:45:58 EDT 2020


On 9/8/20 10:15 AM, Ming Lei wrote:
> drivers that have shared tagsets may need to quiesce potentially a lot
> of request queues that all share a single tagset (e.g. nvme). Add an interface
> to quiesce all the queues on a given tagset. This interface is useful because
> it can speedup the quiesce by doing it in parallel.
> 
> For tagsets that have BLK_MQ_F_BLOCKING set, we kill request queue's dispatch
> percpu-refcount such that all of them wait for the counter becoming zero. For
> tagsets that don't have BLK_MQ_F_BLOCKING set, we simply call a single
> synchronize_rcu as this is sufficient.
> 
> This patch is against Sagi's original post.
> Signed-off-by: Ming Lei <ming.lei at redhat.com>
> Signed-off-by: Sagi <ming.lei at redhat.com>
> Cc: Sagi Grimberg <sagi at grimberg.me>
> Cc: Bart Van Assche <bvanassche at acm.org>
> Cc: Johannes Thumshirn <Johannes.Thumshirn at wdc.com>
> Cc: Chao Leng <lengchao at huawei.com>
> ---
>  block/blk-mq.c         | 68 ++++++++++++++++++++++++++++++++----------
>  include/linux/blk-mq.h |  2 ++
>  2 files changed, 55 insertions(+), 15 deletions(-)
> 
Makes one wonder for which devices we _do not_ have a shared tagset :-)

Reviewed-by: Hannes Reinecke <hare at suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		           Kernel Storage Architect
hare at suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer



More information about the Linux-nvme mailing list