[SRU] [Jammy] [Kinetic] [PATCH 0/1] limit "Dummy wait" to old Intel

Jeffrey Lane jeffrey.lane at canonical.com
Wed Sep 28 15:38:56 UTC 2022


On Wed, Sep 28, 2022 at 11:22 AM Thadeu Lima de Souza Cascardo
<cascardo at canonical.com> wrote:
>
> On Wed, Sep 28, 2022 at 10:58:00AM -0400, Jeff Lane wrote:
> > Old, circa 2002 chipsets have a bug: they don't go idle when they are
> > supposed to. So, a workaround was added to slow the CPU down and
> > ensure that the CPU waits a bit for the chipset to actually go idle.
> > This workaround is ancient and has been in place in some form since
> > the original kernel ACPI implementation.
> >
> > But, this workaround is very painful on modern systems. The "inl()"
> > can take thousands of cycles (see Link: for some more detailed
> > numbers and some fun kernel archaeology).
> >
> > First and foremost, modern systems should not be using this code.
> > Typical Intel systems have not used it in over a decade because it is
> > horribly inferior to MWAIT-based idle.
> >
> > Despite this, people do seem to be tripping over this workaround on
> > AMD system today.
> >
> > Limit the "dummy wait" workaround to Intel systems. Keep Modern AMD
> > systems from tripping over the workaround. Remotely modern Intel
> > systems use intel_idle instead of this code and will, in practice,
> > remain unaffected by the dummy wait.
> >
> > Small patch cleanly picks to both Kinetic and Jammy.
> >
>
> Has this been tested on AMD systems and shown to improve the situation? Which
> AMD systems?

It stemmed from a bug that AMD discovered and patched upstream. I have
not personally tested it, I got the request directly from AMD as they
found this causes performance issues on pretty much every generation
of Zen processor (back to Zen 1). The ask I received from AMD was "LTS
kernels back to Xenial". I said Xenial is not likely to get updated
outside of CVEs at this point and they were fine with that.  As this
was presented to me in the context of servers, I can only presume they
have tested this on EPYC Server CPUs, I do not know if or to what
extent, it has been looked into for consumer CPUs.  But I'll ask.


>
> Does this affect the OEM-5.17 kernel as well?
>
> Cascardo.
>
> >
> > Dave Hansen (1):
> >   ACPI: processor idle: Practically limit "Dummy wait" workaround to old
> >     Intel systems
> >
> >  drivers/acpi/processor_idle.c | 23 ++++++++++++++++++++---
> >  1 file changed, 20 insertions(+), 3 deletions(-)
> >
> > --
> > 2.34.1
> >
> >
> > --
> > kernel-team mailing list
> > kernel-team at lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/kernel-team



--
Jeff Lane
Engineering Manager
IHV/OEM Alliances and Server Certification

"Entropy isn't what it used to be."



More information about the kernel-team mailing list