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

From: Limonciello, Mario
Date: Thu Sep 22 2022 - 13:48:56 EST


[Public]



> -----Original Message-----
> From: Dave Hansen <dave.hansen@xxxxxxxxx>
> Sent: Thursday, September 22, 2022 12:02
> To: Nayak, K Prateek <KPrateek.Nayak@xxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx
> Cc: rafael@xxxxxxxxxx; lenb@xxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; linux-
> pm@xxxxxxxxxxxxxxx; dave.hansen@xxxxxxxxxxxxxxx; bp@xxxxxxxxx;
> tglx@xxxxxxxxxxxxx; andi@xxxxxxxx; 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 09:54, K Prateek Nayak wrote:
> >
> > On 9/22/2022 10:14 PM, Dave Hansen wrote:
> >> On 9/20/22 23:36, K Prateek Nayak wrote:
> >>> Cc: stable@xxxxxxxxxxxxxxx
> >>> Cc: regressions@xxxxxxxxxxxxxxx
> >> *Is* this a regression?
> > On second thought, it is not a regression.
> > Will remove the tag on v2.
>
> What were you planning for v2?
>
> Rafael suggested something like the attached patch. It's not nearly as
> fragile as the Zen check you proposed earlier.
>
> Any testing or corrections on the commentary would be appreciated.

This seems reasonable to me. Appreciate the suggestion.

Some small nits:
1) You reference inb() specifically in the commit message, but the code that is skipped is
actually inl().

2) The title says to limit it to old intel systems, but nothing about this actually enforces that.
It actually is limited to all Intel systems, but effectively won't be used on anything but new
ones because of intel_idle.

As an idea for #2 you could check for CONFIG_INTEL_IDLE in the Intel case and
if it's not defined show a pr_notice_once() type of message trying to tell people to use
Intel Idle instead for better performance.