[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8c6c6783-6152-2332-2f50-14c409e40320@huawei.com>
Date: Thu, 11 Mar 2021 08:21:21 +0000
From: John Garry <john.garry@...wei.com>
To: Ming Lei <ming.lei@...hat.com>
CC: <hare@...e.de>, <bvanassche@....org>, <axboe@...nel.dk>,
<hch@....de>, <linux-block@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <pragalla@...eaurora.org>,
<kashyap.desai@...adcom.com>, <yuyufen@...wei.com>
Subject: Re: [RFC PATCH v3 2/3] blk-mq: Freeze and quiesce all queues for
tagset in elevator_exit()
On 11/03/2021 00:58, Ming Lei wrote:
>> Indeed, blk_mq_queue_tag_busy_iter() already does take a reference to its
>> queue usage counter when called, and the queue cannot be frozen to switch
>> IO scheduler until all refs are dropped. This ensures no stale references
>> to IO scheduler requests will be seen by blk_mq_queue_tag_busy_iter().
>>
>> However, there is nothing to stop blk_mq_queue_tag_busy_iter() being
>> run for another queue associated with the same tagset, and it seeing
>> a stale IO scheduler request from the other queue after they are freed.
>>
>> To stop this happening, freeze and quiesce all queues associated with the
>> tagset as the elevator is exited.
> I think this way can't be accepted since switching one queue's scheduler
> is nothing to do with other request queues attached to same HBA.
>
> This patch will cause performance regression because userspace may
> switch scheduler according to medium or workloads, at that time other
> LUNs will be affected by this patch.
Hmmm..that was my concern also. Do you think that it may cause a big
impact? Depends totally on the workload, I suppose.
FWIW, it is useful though for solving both iterator problems.
Thanks,
John
Powered by blists - more mailing lists