[PATCH 5/8] blk-mq: add tagset quiesce interface

Chao Leng lengchao at huawei.com
Sun Oct 23 18:57:09 PDT 2022



On 2022/10/22 5:22, Bart Van Assche wrote:
> On 10/20/22 03:56, Christoph Hellwig wrote:
>> From: Chao Leng <lengchao at huawei.com>
>>
>> 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.
>>
>> Because some queues should not need to be quiesced(e.g. nvme connect_q)
> 
> should not need -> do not have
> 
>> when quiesce the tagset. So introduce QUEUE_FLAG_SKIP_TAGSET_QUIESCE to
> 
> quiesce -> quiescing
> 
> . So -> ,
> 
>> tagset quiesce interface to skip the queue.
> 
> Hi Christoph,
> 
> Are there any drivers that may call blk_mq_quiesce_tagset() concurrently from two different threads? blk_mq_quiesce_queue() supports this but blk_mq_quiesce_tagset() cannot support this because of the mechanism used to mark request queues that should be skipped (queue flag).
> 
blk_mq_quiesce_tagset() support concurrency. blk_mq_quiesce_tagset() just
check the flag(QUEUE_FLAG_SKIP_TAGSET_QUIESCE), it has no impact on concurrency.



More information about the Linux-nvme mailing list