Re: [PATCHv1] ACPI: processor idle: Allow playing dead in C3 state

From: Rafael J. Wysocki
Date: Tue Sep 28 2021 - 09:48:37 EST


On Tue, Sep 28, 2021 at 3:00 PM Gong, Richard <richard.gong@xxxxxxx> wrote:
>
> Hi Rafael,
>
> On 9/24/2021 11:31 AM, Rafael J. Wysocki wrote:
> > On Wed, Sep 22, 2021 at 3:31 PM Richard Gong <richard.gong@xxxxxxx> wrote:
> >> When some cores are disabled on AMD platforms, the system will no longer
> >> be able to enter suspend-to-idle s0ix.
> >>
> >> Update to allow playing dead in C3 state so that the CPUs can enter the
> >> deepest state on AMD platforms.
> >>
> >> BugLink: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2F-%2Fissues%2F1708&amp;data=04%7C01%7Crichard.gong%40amd.com%7Ca5c0db9ce02b4cd0864f08d97f78d33f%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637680980065602427%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=dIO5PDjpncLFIt0aGaTrKJHYIkJm8A4YByGn1%2FsHrtM%3D&amp;reserved=0
> >> Suggested-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> >> Signed-off-by: Richard Gong <richard.gong@xxxxxxx>
> >> ---
> >> drivers/acpi/processor_idle.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> >> index f37fba9e5ba0..61d5a72d218e 100644
> >> --- a/drivers/acpi/processor_idle.c
> >> +++ b/drivers/acpi/processor_idle.c
> >> @@ -789,7 +789,8 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)
> >> state->enter = acpi_idle_enter;
> >>
> >> state->flags = 0;
> >> - if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2) {
> >> + if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2
> >> + || cx->type == ACPI_STATE_C3) {
> >> state->enter_dead = acpi_idle_play_dead;
> >> drv->safe_state_index = count;
> >> }
> >> --
> > Tentatively applied as 5.16 material, but have you done any research
> > on why this restriction has been there in the first place?
>
> Yes, we need this change to align with the updated firmware on AMD
> platforms.

Well, it wouldn't be necessary to change the code otherwise.

Still, without the patch it is not allowed to play dead in deep idle
states (C3 type) and do you know why?

Or IOW how likely is this change to break anything on legacy platforms?