On 06.07.20 18:41, Alan Stern wrote: > On Tue, Jun 30, 2020 at 20:49:58PM -0400, Alan Stern wrote: >> On Tue, Jun 30, 2020 at 04:31:58PM -0700, Bart Van Assche wrote: >>> On 2020-06-30 12:38, Alan Stern wrote: >>>> Assume that BLK_MQ_REQ_PREEMPT is set in flags. Then where exactly >>>> does blk_queue_enter(q, flags) call blk_pm_request_resume(q)? >>> >>> Please take a look at how the *current* implementation of runtime power >>> management works. Your question is relevant for the old implementation >>> of runtime power management but not for the current implementation. >> >> What do you mean by "current"? I have been looking at the implementation >> in 5.8-rc3 from Linus's tree. Should I look somewhere else? > > Any reply to this, or further concerns about the proposed patch? > > I'd like to fix up this API, and it appears that you are the only > person to have worked on it significantly in the last two years. > > Alan Stern > Hi Alan, Any API cleanup is of course welcome. I just wanted to remind you that the underlying problem: broken block device runtime pm. Your initial proposed fix "almost" did it and mounting works but during file access, it still just looks like a runtime_resume is missing somewhere. As we need to have that working at some point, I might look into it, but someone who has experience in the block layer can surely do it more efficiently. to test, turn off polling: echo 0 > /sys/module/block/parameters/events_dfl_poll_msecs and enable runtime pm in your (scsi) device: power/autosuspend_delay_ms and of course power/control (set to auto). thanks, martin