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. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html