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: > > 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