Re: [PATCH 3/4] PCI: Avoid unnecessary resume after direct-complete
From: Rafael J. Wysocki <hidden>
Date: 2016-09-14 00:43:29
Also in:
linux-acpi, linux-pci
On Wednesday, September 14, 2016 02:29:12 AM Rafael J. Wysocki wrote:
On Wednesday, August 31, 2016 08:15:18 AM Lukas Wunner wrote:quoted
Commit 58a1fbbb2ee8 ("PM / PCI / ACPI: Kick devices that might have been reset by firmware") added a runtime resume for devices that were runtime suspended when the system entered sleep. The motivation was that devices might be in a reset-power-on state after waking from system sleep, so their power state as perceived by Linux (stored in pci_dev->current_state) would no longer reflect reality. By resuming such devices, we allow them to return to a low-power state via autosuspend and also bring their current_state in sync with reality.Not only that. It allows those devices to respond more timely to user space requests occuring right after resume. Those user space requests often occur sequentially (read from device A, write to device B, read from device C, write to device D, for example) and without that pre-emptive resume each of them needs to wait for another device to (runtime-)resume which results in quite annoying latencies observable by users.quoted
However for devices that are *not* in a reset-power-on state, doing an unconditional resume wastes energy.It may or may not waste it and this really is a tradeoff.
That said it is a bit inconsistent with the suspend-to-idle case in which we don't resume those devices, so never mind. :-) Thanks, Rafael