Hi Bart On 09/05/2018 11:57 PM, Bart Van Assche wrote: > On Wed, 2018-09-05 at 12:09 +0800, Jianchao Wang wrote: >> blk queue freeze is often used to prevent new IO from entering >> request queue. However, becuase we kill the percpu-ref >> q_usage_counter when freeze queue, we have to drain the request >> queue when unfreeze. This is unnecessary for just preventing new >> IO. In addition, If there is IO timeout or other issue when unfreeze >> the queue, the scenario could be very tricky. >> >> So we introduce BLK_QUEUE_GATE_CLOSED to implement a light-weight >> queue close feature base on the queue_gate to prevent new IO from >> comming in queue which will not need to drain the queue any more. > > Does the "queue gate close" feature cause blk_get_request() / > blk_mq_get_request() to block until blk_clear_queue_closed() is called? Yes. It works in blk_queue_enter. So it could cover blk_mq_get_request If > so, I think we need a better name for this feature. How about calling these > two operations suspend and resume? I'm open for it. :) > > Thanks, > > Bart. >