On Fri, 2018-08-03 at 07:50 +-0800, Ming Lei wrote: +AD4- I am not sure if using PREEMPT+AF8-ONLY can work well for runtime PM, there +AD4- are lots of users which depends on blk+AF8-freeze+AF8-queue() for making sure +AD4- there isn't any in-flight requests. Please elaborate +ACI-lots of other users+ACI-. The only use I have found in the kernel tree of that flag of which I think that it is not related to power management is in ide+AF8-prep+AF8-sense(). All other uses of the RQF+AF8-PREEMPT / BLK+AF8-MQ+AF8-REQ+AF8-PREEMPT / QUEUE+AF8-FLAG+AF8-PREEMPT+AF8-ONLY flags I found are IMHO related to power management: +ACo- generic+AF8-ide+AF8-resume() +ACo- +AF8AXw-scsi+AF8-execute() +ACo- scsi+AF8-device+AF8-quiesce() / scsi+AF8-device+AF8-resume() However, we may have to modify +AF8AXw-scsi+AF8-execute() such that only requests that are related to power management are submitted with the BLK+AF8-MQ+AF8-REQ+AF8-PREEMPT flag set. I don't think that all +AF8AXw-scsi+AF8-execute() callers need that flag. +AD4- But now PREEMPT+AF8-ONLY opens one door for preempt-req during the big +AD4- window, so this way may break current uses of blk+AF8-freeze+AF8-queue(). The power management core serializes runtime power management against suspend, resume and hibernation so I think it is safe to use the PREEMPT+AF8-ONLY flag for runtime power management although it is already used for suspend, resume and hibernation. Bart.