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

From: Dave Hansen
Date: Thu Sep 22 2022 - 17:21:41 EST


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.