RE: [PATCH] ACPI: processor_idle: Skip dummy wait for processors based on the Zen microarchitecture

From: Limonciello, Mario
Date: Thu Sep 22 2022 - 17:38:19 EST


[Public]



> -----Original Message-----
> From: Dave Hansen <dave.hansen@xxxxxxxxx>
> Sent: Thursday, September 22, 2022 16:22
> To: Andreas Mohr <andi@xxxxxxxx>
> Cc: Nayak, K Prateek <KPrateek.Nayak@xxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; rafael@xxxxxxxxxx; lenb@xxxxxxxxxx; linux-
> acpi@xxxxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx;
> dave.hansen@xxxxxxxxxxxxxxx; bp@xxxxxxxxx; tglx@xxxxxxxxxxxxx;
> puwen@xxxxxxxx; Limonciello, Mario <Mario.Limonciello@xxxxxxx>;
> peterz@xxxxxxxxxxxxx; rui.zhang@xxxxxxxxx; gpiccoli@xxxxxxxxxx;
> daniel.lezcano@xxxxxxxxxx; Narayan, Ananth <Ananth.Narayan@xxxxxxx>;
> Shenoy, Gautham Ranjal <gautham.shenoy@xxxxxxx>; Ong, Calvin
> <Calvin.Ong@xxxxxxx>; stable@xxxxxxxxxxxxxxx;
> regressions@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] ACPI: processor_idle: Skip dummy wait for processors
> based on the Zen microarchitecture
>
> On 9/22/22 13:10, Andreas Mohr wrote:
> > (- but then what about other more modern chipsets?)
> >
> > --> we need to achieve (hopefully sufficiently precisely) a solution which
> > takes into account Zen3 STPCLK# improvements while
> > preserving "accepted" behaviour/requirements on *all* STPCLK#-
> hampered chipsets
> > ("STPCLK# I/O wait is default/traditional handling"?).
>
> Ideally, sure. But, we're talking about theoretically regressing the
> idle behavior of some indeterminate set of old systems, the majority of
> which are sitting in a puddle of capacitor goo at the bottom of a
> landfill right now. This is far from an ideal situation.
>
> FWIW, I'd much rather do something like
>
> if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
> (boot_cpu_data.x86_model >= 0xF))
> return;
>
> inl(slow_whatever);
>
> than a Zen check. AMD has, as far as I know, been a lot more sequential
> and sane about model numbers than Intel, and there are some AMD model
> number range checks in the codebase today.
>
> A check like this would also be _relatively_ future-proof in the case
> that X86_FEATURE_ZEN stops getting set on future AMD CPUs. That's a lot
> more likely than AMD going and reusing a <0xF model.

If you're going to use a family check instead it should be 0x17 or newer.
(c->x86 >= 0x17)

That does match what's used to set X86_FEATURE_ZEN at least then right now too.