Documentation/admin-guide/pm/sleep-states.rst

Source file repositories/reference/linux-study-clean/Documentation/admin-guide/pm/sleep-states.rst

File Facts

System
Linux kernel
Corpus path
Documentation/admin-guide/pm/sleep-states.rst
Extension
.rst
Size
13567 bytes
Lines
292
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>

===================
System Sleep States
===================

:Copyright: |copy| 2017 Intel Corporation

:Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>


Sleep states are global low-power states of the entire system in which user
space code cannot be executed and the overall system activity is significantly
reduced.


Sleep States That Can Be Supported
==================================

Depending on its configuration and the capabilities of the platform it runs on,
the Linux kernel can support up to four system sleep states, including
hibernation and up to three variants of system suspend.  The sleep states that
can be supported by the kernel are listed below.

.. _s2idle:

Suspend-to-Idle
---------------

This is a generic, pure software, light-weight variant of system suspend (also
referred to as S2I or S2Idle).  It allows more energy to be saved relative to
runtime idle by freezing user space, suspending the timekeeping and putting all
I/O devices into low-power states (possibly lower-power than available in the
working state), such that the processors can spend time in their deepest idle
states while the system is suspended.

The system is woken up from this state by in-band interrupts, so theoretically
any devices that can cause interrupts to be generated in the working state can
also be set up as wakeup devices for S2Idle.

This state can be used on platforms without support for :ref:`standby <standby>`
or :ref:`suspend-to-RAM <s2ram>`, or it can be used in addition to any of the
deeper system suspend variants to provide reduced resume latency.  It is always
supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration option is set.

.. _standby:

Standby
-------

This state, if supported, offers moderate, but real, energy savings, while
providing a relatively straightforward transition back to the working state.  No
operating state is lost (the system core logic retains power), so the system can
go back to where it left off easily enough.

In addition to freezing user space, suspending the timekeeping and putting all
I/O devices into low-power states, which is done for :ref:`suspend-to-idle
<s2idle>` 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 :ref:`suspend-to-idle <s2idle>`, but
the resume latency will generally be greater than for that state.

The set of devices that can wake up the system from this state usually is
reduced relative to :ref:`suspend-to-idle <s2idle>` and it may be necessary to
rely on the platform for setting up the wakeup functionality as appropriate.

This state is supported if the :c:macro:`CONFIG_SUSPEND` kernel configuration
option is set and the support for it is registered by the platform with the
core system suspend subsystem.  On ACPI-based systems this state is mapped to

Annotation

Implementation Notes