On Wed, Nov 10, 2021 at 05:29:26PM +0800, Ming Lei wrote:
On Wed, Nov 10, 2021 at 10:14:07AM +0100, Christoph Hellwig wrote:
quoted
Hi Jens and Ming,
I've been looking into properly supporting queue freezing for bio based
drivers (that is only release q_usage_counter on bio completion for them).
And the deeper I look into the code the more I'm confused by us having
the blk_mq_quiesce* interface in addition to blk_freeze_queue. What
is a good reason to do a quiesce separately from a freeze?
freeze can make sure that all requests are done, quiesce can make sure that
dispatch critical area(covered by hctx lock/unlock) is done.
Another difference: quiesce usually is used to stop to queue requests to
LLD, and driver needs no requets queued any more after the interface returns,
freeze can't do that.
Thanks,
Ming