[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160229101009.GE1770@lahna.fi.intel.com>
Date: Mon, 29 Feb 2016 12:10:09 +0200
From: Mika Westerberg <mika.westerberg@...ux.intel.com>
To: "dbasehore ." <dbasehore@...omium.org>
Cc: Linux-pm mailing list <linux-pm@...r.kernel.org>,
"Rafael J . Wysocki" <rjw@...ysocki.net>,
Len Brown <len.brown@...el.com>, Pavel Machek <pavel@....cz>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
"Martin K . Petersen" <martin.petersen@...cle.com>,
linux-scsi <linux-scsi@...r.kernel.org>
Subject: Re: [PATCH v2 3/3] scsi: allow scsi devices to use direct complete
On Sat, Feb 27, 2016 at 01:07:06AM -0800, dbasehore . wrote:
> That's an interesting question. Part of direct complete is to leave
> the device runtime suspended even after the system resumes if
> possible. The comments in pm_complete_with_resume_check indicate that
> the firmware may resume a device. I could see this happening with some
> kind of SCSI device.
>
> If this is possible, are we able to put the device back into a
> consistent state (runtime suspended) by calling suspend for the scsi
> device? If not, we might need to use pm_complete_with_resume_check for
> the complete callback.
To me the latter option sounds safer.
I tried this series (as I'm interested in AHCI host controller runtime
PM) and noticed possible issue.
I have following two additional patches from linux-next applied to get
system resume working (otherwise resume is never finished):
d07ab6d11477 block: Add blk_set_runtime_active()
356fd2663cff scsi: Set request queue runtime PM status back to active on resume
Then I do this:
# echo auto > /sys/block/sda/device/power/control
# echo 5000 > /sys/block/sda/device/power/autosuspend_delay_ms
# echo auto > /sys/bus/pci/devices/0000\:00\:12.0/ata1/power/control
The last line unblocks runtime PM from the parent device.
After 5 seconds of idle I see that the disk gets runtime suspended:
[ 566.858971] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 567.049288] sd 0:0:0:0: [sda] Stopping disk
Now suspend the machine:
# rtcwake -s10 -mmem
Once the system resumes I get this:
[ 668.879149] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 668.927319] ata1.00: configured for UDMA/133
[ 669.392246] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 669.440427] ata1.00: configured for UDMA/133
[ 669.445352] sd 0:0:0:0: [sda] Starting disk
[ 669.464647] sda: detected capacity change from 0 to 240057409536
[ 669.482596] sda: detected capacity change from 0 to 240057409536
It looks like we get resumed two times. If I have this patch reverted I
can see it happening only once. Also with the patch applied and if the
parent device has runtime PM blocked, it happens only once.
Powered by blists - more mailing lists