RE: [REGRESSION] amd-pstate doesn't work since v5.18.11

From: Limonciello, Mario
Date: Tue Jul 12 2022 - 13:50:41 EST


[Public]

+ Ray

> -----Original Message-----
> From: Yuan, Perry <Perry.Yuan@xxxxxxx>
> Sent: Tuesday, July 12, 2022 12:50
> To: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>; Limonciello, Mario
> <Mario.Limonciello@xxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>; Sasha Levin
> <sashal@xxxxxxxxxx>; x86@xxxxxxxxxx; H. Peter Anvin <hpa@xxxxxxxxx>;
> Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Subject: RE: [REGRESSION] amd-pstate doesn't work since v5.18.11
>
> [AMD Official Use Only - General]
>
> Hi Oleksandr:
>
> > -----Original Message-----
> > From: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>
> > Sent: Wednesday, July 13, 2022 1:40 AM
> > To: Limonciello, Mario <Mario.Limonciello@xxxxxxx>; linux-
> > kernel@xxxxxxxxxxxxxxx
> > Cc: Yuan, Perry <Perry.Yuan@xxxxxxx>; Rafael J. Wysocki
> > <rafael.j.wysocki@xxxxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx>;
> > x86@xxxxxxxxxx; H. Peter Anvin <hpa@xxxxxxxxx>; Greg Kroah-Hartman
> > <gregkh@xxxxxxxxxxxxxxxxxxx>
> > Subject: [REGRESSION] amd-pstate doesn't work since v5.18.11
> >
> > [CAUTION: External Email]
> >
> > Hello Mario.
> >
> > The following commits were pulled into v5.18.11:
> >
> > ```
> > $ git log --oneline --no-merges v5.18.10..v5.18.11 | grep ACPI
> > 2783414e6ef7 ACPI: CPPC: Don't require _OSC if X86_FEATURE_CPPC is
> > supported
> > 3068cfeca3b5 ACPI: CPPC: Only probe for _CPC if CPPC v2 is acked
> > 8beb71759cc8 ACPI: bus: Set CPPC _OSC bits for all and when CPPC_LIB is
> > supported
> > 13bb696dd2f3 ACPI: CPPC: Check _OSC for flexible address space ```
> >
> > and now this happens:
> >
> > ```
> > $ sudo modprobe amd-pstate shared_mem=1
> > modprobe: ERROR: could not insert 'amd_pstate': No such device ```
> >
> > With v5.18.10 this worked just fine.
> >
> > In your upstream commit 8b356e536e69f3a4d6778ae9f0858a1beadabb1f
> > you write:
> >
> > ```
> > If there is additional breakage on the shared memory designs also missing
> > this _OSC, additional follow up changes may be needed.
> > ```
> >
> > So the question is what else should be pulled into the stable tree to
> > unbreak amd-pstate?
> >
> > Thanks.
> >
> > --
> > Oleksandr Natalenko (post-factum)
> >
>
> Could you share the lscpu output ?
>
> Perry.

Thanks this is the sort of thing I was worried might happen as a result of requiring
the _OSC. It was introduced as part of that commit 8beb71759cc8.

To solve it I think we need to add more things to cpc_supported_by_cpu
(https://github.com/torvalds/linux/blob/525496a030de4ae64bb9e1d6bfc88eec6f5fe6e2/arch/x86/kernel/acpi/cppc.c#L19)

The question is how do we safely detect the shared memory designs?
These are a fixed quantity as newer designs /should/ be using the MSR.

I am tending to thing that unfortunately we need to have an allow-list of shared
memory design here unless someone has other ideas.