Skip to content

Conversation

@DhruvaG2000
Copy link
Collaborator

Document all about s2idle and PSCI and how the whole stack helps us in selecting between low power modes on the TI AM62L

@DhruvaG2000 DhruvaG2000 changed the title feat(linux): Add s2idle docs [WIP][DNM] Add s2idle docs Dec 8, 2025
@github-actions
Copy link

github-actions bot commented Dec 8, 2025

New warnings found with rstcheck:

source/linux/Foundational_Components/Power_Management/pm_psci_s2idle.rst:25: (ERROR/3) Unexpected indentation.

Suspend-to-Idle (s2idle), also known as "freeze," is a generic, pure software, light-weight variant of system suspend.
In this state, the Linux kernel freezes user space tasks, suspends devices, and then puts all CPUs into their deepest available idle state.

**********************
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The section identifier line should be of equal length to the section name.

@DhruvaG2000
Copy link
Collaborator Author

@cshilwant , and rest I'll mark the PR ready for review once it has undergone LPM team internal review. Till then requesting you to hold off reviews.
This is going to be a major documentation update for AM62L PM story hence might take some time to get reviews and complete.

Thanks!

@github-actions
Copy link

New warnings found with rstcheck:

source/linux/Foundational_Components/Power_Management/pm_psci_s2idle.rst:48: (WARNING/2) Bullet list ends without a blank line; unexpected unindent.
source/linux/Foundational_Components/Power_Management/pm_psci_s2idle.rst:29: (ERROR/3) Error parsing content block for the "list-table" directive: two-level bullet list expected, but row 4 does not contain a second-level bullet list.

@github-actions
Copy link

New warnings found with rstcheck:

source/linux/Foundational_Components/Power_Management/pm_psci_s2idle.rst:302: (WARNING/2) Bullet list ends without a blank line; unexpected unindent.
source/linux/Foundational_Components/Power_Management/pm_psci_s2idle.rst:283: (ERROR/3) Error parsing content block for the "list-table" directive: two-level bullet list expected, but row 4 does not contain a second-level bullet list.

Copy link
Contributor

@kwillis01 kwillis01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides the execution level things, everything else looks good to me! Good work on adding all of this, it's very infomative

Introduce the concept of s2idle and how we use it for mode
selection

Signed-off-by: Dhruva Gole <[email protected]>
@DhruvaG2000 DhruvaG2000 changed the title [WIP][DNM] Add s2idle docs PM: Introduce docs for s2idle Dec 30, 2025
@DhruvaG2000 DhruvaG2000 marked this pull request as ready for review January 2, 2026 04:34
Why OSI?
========

OSI mode allows the OS to make better power decisions because it has visibility into:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The below 3 points are coming on a single line as seen in the preview. It would be better if they are in separate lines as bullets

| v
| CPU enters low-power
| hardware state
|

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should there be something in the flow as to indicate why / on what kind of event the system is resuming

``idle-state`` nodes using the ``arm,psci-suspend-param`` property. This mechanism,
leveraging ``cpuidle`` and ``s2idle``, allows the kernel to abstract complex platform-specific
low-power modes into a generic framework. The ``idle-state`` nodes in the Device Tree define these power states,
including their entry/exit latencies and target power consumption, enabling the ``cpuidle`` governor to make informed

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should it be mentioned that in the case of s2idle, the governor picks the deepest possible idle state

* - **Latency**
- Lower
- High, primarily due to the overhead of **CPU Hotplug** for non-boot CPUs

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since s2idle will allow the mode selection using QoS paramter, should the details regarding that be mentioned here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants