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

Hannes Reinecke
2020-09-08T08:46:05Z

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@redhat.com>
> Signed-off-by: Sagi <ming.lei@redhat.com>
> Cc: Sagi Grimberg <sagi@grimberg.me>
> Cc: Bart Van Assche <bvanassche@acm.org>
> Cc: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
> Cc: Chao Leng <lengchao@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@suse.de>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@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