Re: [PATCH for-4.13] block: disable runtime-pm for blk-mq
From: Ming Lei <hidden>
Date: 2017-07-24 10:42:47
On Fri, Jul 21, 2017 at 01:46:10PM +0200, Christoph Hellwig wrote:
quoted hunk ↗ jump to hunk
The blk-mq code lacks support for looking at the rpm_status field, tracking active requests and the RQF_PM flag. Due to the default switch to blk-mq for scsi people start to run into suspend / resume issue due to this fact, so make sure we disable the runtime PM functionality until it is properly implemented. Signed-off-by: Christoph Hellwig <hch@lst.de> --- block/blk-core.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/block/blk-core.c b/block/blk-core.c index 970b9c9638c5..dbecbf4a64e0 100644 --- a/block/blk-core.c +++ b/block/blk-core.c@@ -3421,6 +3421,10 @@ EXPORT_SYMBOL(blk_finish_plug); */ void blk_pm_runtime_init(struct request_queue *q, struct device *dev) { + /* not support for RQF_PM and ->rpm_status in blk-mq yet */
The big problem should be that the SCSI device can be runtime suspended, but never to get back in case of blk-mq.
+ if (q->mq_ops) + return; + q->dev = dev; q->rpm_status = RPM_ACTIVE; pm_runtime_set_autosuspend_delay(q->dev, -1); -- 2.11.0
Either blk-mq or scsi-mq isn't ready for runtime PM, so we can't enable runtime PM until both are ready. Reviewed-by: Ming Lei <redacted> -- Ming