|
@@ -1,62 +1,87 @@
|
|
|
|
+System Power Management Sleep States
|
|
|
|
|
|
-System Power Management States
|
|
|
|
|
|
+(C) 2014 Intel Corp., Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
|
|
|
|
|
|
+The kernel supports up to four system sleep states generically, although three
|
|
|
|
+of them depend on the platform support code to implement the low-level details
|
|
|
|
+for each state.
|
|
|
|
|
|
-The kernel supports four power management states generically, though
|
|
|
|
-one is generic and the other three are dependent on platform support
|
|
|
|
-code to implement the low-level details for each state.
|
|
|
|
-This file describes each state, what they are
|
|
|
|
-commonly called, what ACPI state they map to, and what string to write
|
|
|
|
-to /sys/power/state to enter that state
|
|
|
|
|
|
+The states are represented by strings that can be read or written to the
|
|
|
|
+/sys/power/state file. Those strings may be "mem", "standby", "freeze" and
|
|
|
|
+"disk", where the last one always represents hibernation (Suspend-To-Disk) and
|
|
|
|
+the meaning of the remaining ones depends on the relative_sleep_states command
|
|
|
|
+line argument.
|
|
|
|
|
|
-state: Freeze / Low-Power Idle
|
|
|
|
|
|
+For relative_sleep_states=1, the strings "mem", "standby" and "freeze" label the
|
|
|
|
+available non-hibernation sleep states from the deepest to the shallowest,
|
|
|
|
+respectively. In that case, "mem" is always present in /sys/power/state,
|
|
|
|
+because there is at least one non-hibernation sleep state in every system. If
|
|
|
|
+the given system supports two non-hibernation sleep states, "standby" is present
|
|
|
|
+in /sys/power/state in addition to "mem". If the system supports three
|
|
|
|
+non-hibernation sleep states, "freeze" will be present in /sys/power/state in
|
|
|
|
+addition to "mem" and "standby".
|
|
|
|
+
|
|
|
|
+For relative_sleep_states=0, which is the default, the following descriptions
|
|
|
|
+apply.
|
|
|
|
+
|
|
|
|
+state: Suspend-To-Idle
|
|
ACPI state: S0
|
|
ACPI state: S0
|
|
-String: "freeze"
|
|
|
|
|
|
+Label: "freeze"
|
|
|
|
|
|
-This state is a generic, pure software, light-weight, low-power state.
|
|
|
|
-It allows more energy to be saved relative to idle by freezing user
|
|
|
|
|
|
+This state is a generic, pure software, light-weight, system sleep state.
|
|
|
|
+It allows more energy to be saved relative to runtime idle by freezing user
|
|
space and putting all I/O devices into low-power states (possibly
|
|
space and putting all I/O devices into low-power states (possibly
|
|
lower-power than available at run time), such that the processors can
|
|
lower-power than available at run time), such that the processors can
|
|
spend more time in their idle states.
|
|
spend more time in their idle states.
|
|
-This state can be used for platforms without Standby/Suspend-to-RAM
|
|
|
|
|
|
+
|
|
|
|
+This state can be used for platforms without Power-On Suspend/Suspend-to-RAM
|
|
support, or it can be used in addition to Suspend-to-RAM (memory sleep)
|
|
support, or it can be used in addition to Suspend-to-RAM (memory sleep)
|
|
-to provide reduced resume latency.
|
|
|
|
|
|
+to provide reduced resume latency. It is always supported.
|
|
|
|
|
|
|
|
|
|
State: Standby / Power-On Suspend
|
|
State: Standby / Power-On Suspend
|
|
ACPI State: S1
|
|
ACPI State: S1
|
|
-String: "standby"
|
|
|
|
|
|
+Label: "standby"
|
|
|
|
|
|
-This state offers minimal, though real, power savings, while providing
|
|
|
|
-a very low-latency transition back to a working system. No operating
|
|
|
|
-state is lost (the CPU retains power), so the system easily starts up
|
|
|
|
|
|
+This state, if supported, offers moderate, though real, power savings, while
|
|
|
|
+providing a relatively low-latency transition back to a working system. No
|
|
|
|
+operating state is lost (the CPU retains power), so the system easily starts up
|
|
again where it left off.
|
|
again where it left off.
|
|
|
|
|
|
-We try to put devices in a low-power state equivalent to D1, which
|
|
|
|
-also offers low power savings, but low resume latency. Not all devices
|
|
|
|
-support D1, and those that don't are left on.
|
|
|
|
|
|
+In addition to freezing user space and putting all I/O devices into low-power
|
|
|
|
+states, which is done for Suspend-To-Idle too, nonboot CPUs are taken offline
|
|
|
|
+and all low-level system functions are suspended during transitions into this
|
|
|
|
+state. For this reason, it should allow more energy to be saved relative to
|
|
|
|
+Suspend-To-Idle, but the resume latency will generally be greater than for that
|
|
|
|
+state.
|
|
|
|
|
|
|
|
|
|
State: Suspend-to-RAM
|
|
State: Suspend-to-RAM
|
|
ACPI State: S3
|
|
ACPI State: S3
|
|
-String: "mem"
|
|
|
|
|
|
+Label: "mem"
|
|
|
|
|
|
-This state offers significant power savings as everything in the
|
|
|
|
-system is put into a low-power state, except for memory, which is
|
|
|
|
-placed in self-refresh mode to retain its contents.
|
|
|
|
|
|
+This state, if supported, offers significant power savings as everything in the
|
|
|
|
+system is put into a low-power state, except for memory, which should be placed
|
|
|
|
+into the self-refresh mode to retain its contents. All of the steps carried out
|
|
|
|
+when entering Power-On Suspend are also carried out during transitions to STR.
|
|
|
|
+Additional operations may take place depending on the platform capabilities. In
|
|
|
|
+particular, on ACPI systems the kernel passes control to the BIOS (platform
|
|
|
|
+firmware) as the last step during STR transitions and that usually results in
|
|
|
|
+powering down some more low-level components that aren't directly controlled by
|
|
|
|
+the kernel.
|
|
|
|
|
|
-System and device state is saved and kept in memory. All devices are
|
|
|
|
-suspended and put into D3. In many cases, all peripheral buses lose
|
|
|
|
-power when entering STR, so devices must be able to handle the
|
|
|
|
-transition back to the On state.
|
|
|
|
|
|
+System and device state is saved and kept in memory. All devices are suspended
|
|
|
|
+and put into low-power states. In many cases, all peripheral buses lose power
|
|
|
|
+when entering STR, so devices must be able to handle the transition back to the
|
|
|
|
+"on" state.
|
|
|
|
|
|
-For at least ACPI, STR requires some minimal boot-strapping code to
|
|
|
|
-resume the system from STR. This may be true on other platforms.
|
|
|
|
|
|
+For at least ACPI, STR requires some minimal boot-strapping code to resume the
|
|
|
|
+system from it. This may be the case on other platforms too.
|
|
|
|
|
|
|
|
|
|
State: Suspend-to-disk
|
|
State: Suspend-to-disk
|
|
ACPI State: S4
|
|
ACPI State: S4
|
|
-String: "disk"
|
|
|
|
|
|
+Label: "disk"
|
|
|
|
|
|
This state offers the greatest power savings, and can be used even in
|
|
This state offers the greatest power savings, and can be used even in
|
|
the absence of low-level platform support for power management. This
|
|
the absence of low-level platform support for power management. This
|