# Idle power management

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

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

Note: Idle power management is enabled for QCS6490/QCS5430. For
            QCS9075, this feature will be enabled in a future release.

## CPU sleep states

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

Each CPU sleep state is represented by a C-state number. Each C-state is associated
                with two key parameters:

- 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.

![](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>/latencyCopy 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 Linux power states are defined in the following
                    table.

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="ul" id="idlepowermanagement__idlepowermanagement_ul_xgw_rtx_p1c"><br>                                    <li class="li">CPU core clock domain off</li><br><br>                                    <li class="li">Power domains <code class="ph codeph">VDD_APC0/ VDD_APC1</code> on</li><br><br>                                    <li class="li">Generic interrupt controller (GIC) clock on</li><br><br>                                </ul> | State0 (S0) |
| C3 | <ul class="ul" id="idlepowermanagement__idlepowermanagement_ul_x3h_b5x_p1c"><br>                                    <li class="li">CPU core clock domain off</li><br><br>                                    <li class="li">Core power collapse with L1 and L2 cache flushed</li><br><br>                                    <li class="li">Power domains <code class="ph codeph">VDD_APC0/ VDD_APC1</code> on</li><br><br>                                </ul> | State1 (S1) |
| C4 | <ul class="ul" id="idlepowermanagement__idlepowermanagement_ul_umz_qby_p1c"><br>                                    <li class="li">C3 + PLL off for the Silver cluster</li><br><br>                                    <li class="li">C3+ PLL power domains off for the Gold and the Prime<br>                                        clusters</li><br><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/cpuX/cpuidle/state0/disableCopy to clipboard |
| S0 | Disable | echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state0/disableCopy to clipboard |
| S1 | Enable | echo 0 > /sys/devices/system/cpu/cpuX/cpuidle/state1/disableCopy to clipboard |
| S1 | Disable | echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state1/disableCopy to clipboard |
| S2 | Enable | echo 0 > /sys/devices/system/cpu/cpuX/cpuidle/state2/disableCopy to clipboard |
| S2 | Disable | echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state2/disableCopy 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>/usageCopy 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:

<samp class="ph systemoutput">cd
                    /sys/devices/system/cpu</samp>

<samp class="ph systemoutput">grep -r ""
                    cpu*/cpuidle/*/usage</samp>

<samp class="ph systemoutput">cpu0/cpuidle/state0/usage:97681</samp>

<samp class="ph systemoutput">cpu0/cpuidle/state1/usage:95</samp>

<samp class="ph systemoutput">cpu1/cpuidle/state0/usage:180055</samp>

<samp class="ph systemoutput">cpu1/cpuidle/state1/usage:59</samp>
Note: The `usage` count represents the number of
                times `cpu<X>` enters a Linux power state.

**Parent Topic:** [CPU power management](https://docs.qualcomm.com/doc/80-70015-30/topic/cpupowermanagement.html)

Last Published: Oct 16, 2024

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