On Fri, Jul 21, 2017 at 01:46:10PM +0200, Christoph Hellwig wrote: > 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@xxxxxx> > --- > 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 <ming.lei@xxxxxxxxxx> -- Ming