Re: [PATCH V1] x86/cstate: Add Zhaoxin/Centaur ACPI Cx FFH MWAIT support

From: Dave Hansen
Date: Thu Jun 23 2022 - 11:56:18 EST


On 6/22/22 18:26, Tony W Wang-oc wrote:
> Recent Zhaoxin/Centaur CPUs support X86_FEATURE_MWAIT that implies
> the MONITOR/MWAIT instructions can be used for ACPI Cx state.
> The BIOS declares Cx state in _CST object to use FFH on Zhaoxin/Centaur
> systems. So let function ffh_cstate_init() support These CPUs too.
>
> Signed-off-by: Tony W Wang-oc <TonyWWang-oc@xxxxxxxxxxx>
> ---
>  arch/x86/kernel/acpi/cstate.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c
> index 7945eae..d4185e1 100644
> --- a/arch/x86/kernel/acpi/cstate.c
> +++ b/arch/x86/kernel/acpi/cstate.c
> @@ -213,7 +213,9 @@ static int __init ffh_cstate_init(void)
>
>      if (c->x86_vendor != X86_VENDOR_INTEL &&
>          c->x86_vendor != X86_VENDOR_AMD &&
> -        c->x86_vendor != X86_VENDOR_HYGON)
> +        c->x86_vendor != X86_VENDOR_HYGON &&
> +        c->x86_vendor != X86_VENDOR_CENTAUR &&
> +        c->x86_vendor != X86_VENDOR_ZHAOXIN)
>          return -1;

Many of the changelogs that add new vendors here go on about particular
C states declared in the _CST object and contents of CPUID leaf 5.

Why do we even _have_ a vendor check here? Shouldn't the code just be
going and doing the validation of the _CST object and CPUID that the
changelogs blather on about?

Intel certainly made the original sin on this one (see 991528d7348), but
I hope _something_ changed in the 16 years since that patch went in.