On 11/8/21 10:06 AM, Asutosh Das (asd) wrote:
The current scaling code invokes scsi_block_request() which would block
incoming requests right away in prepare. So any un-issued requests
wouldn't be issued.
I'm not sure if this exact behavior would manifest if
blk_freeze_queue_start() is used and scsi_block_request() is removed.
That behavior would be preserved. The percpu_ref_tryget_live() call in
blk_queue_enter() fails after blk_freeze_queue_start() has called
percpu_ref_kill().
Would blk_mq_run_hw_queues() issue any pending requests in the queue?
Yes.
If so, then these requests would be completed in the unchanged power-mode
which is not what we want.
I will change the blk_freeze_queue_start() calls into
blk_mq_quiesce_queue_nowait() calls.
Thanks,
Bart.