# Efficient CPU idle power management

CPU idle power management, also known as idle power management, keeps
the CPU cores in the appropriate sleep state for efficient use of energy
when the device is idle.

## CPU sleep states

A CPU core supports several sleep states. Each sleep state has
associated entry and exit latencies and different levels of power
consumption. The selection of a core’s sleep state depends on how soon that core is required again for another execution.

A C-state number represents each CPU sleep state. Two key parameters are associated with each C-state:

- Power saving: The power saving of the CPU increases as you select
higher C-states, but it results in increased wake-up latency.
- Wake-up latency: This is the time taken to transition a CPU core from
sleep state to running state.

For example, a deeper sleep state (C4) has higher wake-up latency and
lower power consumption as shown in the following figure.

![../../_images/latencypowersaving_1.png](data:image/png;base64,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)

**Figure : Tradeoff between power and latency**

Use the following command to view the latencies of CPU sleep state:

cat /sys/devices/system/cpu/cpu<X>/cpuidle/state<Y>/latency
    Copy to clipboard

Note

Here, `<X>` represents the core ID, which varies from 0 to 7, and `<Y>` is the index of the Linux power state (0, 1, 2). The following table defines the Linux power states.

You can study and configure sleep states to tune applications for
balanced power and performance.

The following table lists the supported CPU sleep states and their
associated C-state numbers:

Note

The CPU sleep states are enabled by default.

Table : Supported core power state

| CPU sleep state | Description | Linux power state |
| --- | --- | --- |
| C1 | <ul class="simple"><br><li><p>CPU core clock domain off</p></li><br><li><p>Power domains <code class="docutils literal notranslate"><span class="pre">VDD_APC0/</span> <span class="pre">VDD_APC1</span></code> on</p></li><br><li><p>Generic interrupt controller (GIC) clock on</p></li><br></ul> | State0 (S0) |
| C3 | <ul class="simple"><br><li><p>CPU core clock domain off</p></li><br><li><p>Core power collapse with L1 and L2 cache flushed</p></li><br><li><p>Power domains <code class="docutils literal notranslate"><span class="pre">VDD_APC0/</span> <span class="pre">VDD_APC1</span></code> on</p></li><br></ul> | State1 (S1) |
| C4 | <ul class="simple"><br><li><p>C3 + PLL off for the Silver cluster</p></li><br><li><p>C3+ PLL power domains off for the Gold and the Prime<br>clusters</p></li><br></ul> | State2 (S2) |

## Enable/Disable CPU sleep state

The following table lists how to configure CPU sleep states:

Note

If you change the configuration of a sleep state, you should check the power impact on the device.

| Linux power state | Enable/Disable | Commands |
| --- | --- | --- |
| S0 | Enable | echo 0 > /sys/devices/system/cpu/cpu<X>/cpuidle/state0/disable<br>    Copy to clipboard |
| S0 | Disable | echo 1 > /sys/devices/system/cpu/cpu<X>/cpuidle/state0/disable<br>    Copy to clipboard |
| S1 | Enable | echo 0 > /sys/devices/system/cpu/cpu<X>/cpuidle/state1/disable<br>    Copy to clipboard |
| S1 | Disable | echo 1 > /sys/devices/system/cpu/cpu<X>/cpuidle/state1/disable<br>    Copy to clipboard |
| S2 | Enable | echo 0 > /sys/devices/system/cpu/cpu<X>/cpuidle/state2/disable<br>    Copy to clipboard |
| S2 | Disable | echo 1 > /sys/devices/system/cpu/cpu<X>/cpuidle/state2/disable<br>    Copy to clipboard |
|  |  |  |

Note

`<X>` denotes the core ID, which varies from 0 to 7.

## Check CPU idle statistics

To check the statistics of CPU core sleep states run the following
command:

cat /sys/devices/system/cpu/cpu<X>/cpuidle/state<Y>/usage
    Copy to clipboard

Here, `<X>` is the core ID, which varies from 0 to 7, and `<Y>` is
the index of the Linux power state (0, 1, and 2).

The following is an example of the output:

cd /sys/devices/system/cpu

grep -r “” cpu\*/cpuidle/\*/usage

cpu0/cpuidle/state0/usage:97681

cpu0/cpuidle/state1/usage:95

cpu1/cpuidle/state0/usage:180055

cpu1/cpuidle/state1/usage:59

Note

The `usage` count represents the number of times `cpu<X>` enters a Linux power state.

Last Published: Apr 10, 2025

[Previous Topic
Dynamic voltage and frequency scaling](https://docs.qualcomm.com/bundle/publicresource/80-70018-30/topics/dcvs.md) [Next Topic
Monitor Suspend Power Management](https://docs.qualcomm.com/bundle/publicresource/80-70018-30/topics/suspend-power-management-state.md)

Source: [https://docs.qualcomm.com/doc/80-70018-30/topic/idlepowermanagement.html](https://docs.qualcomm.com/doc/80-70018-30/topic/idlepowermanagement.html)