En glemt patch er fundet i Linux-kernen, der påvirker ydeevnen på AMD CPU'er

I Linux-kernen 6.0, hvis udgivelse forventes på næste mandag, er der foretaget en ændring, der løser ydeevneproblemer på systemer med AMD Zen-processorer. Kilden til ydeevnefaldet var kode, der blev tilføjet for 20 år siden for at omgå en hardwarefejl i visse chipsets. Hardwarefejlen er længe blevet udbedret og optræder ikke i aktuelle chipsets, men den gamle workaround blev glemt og er blevet kilden til nedsat ydeevne på systemer baseret på moderne AMD CPU'er. Nye systemer med Intel CPU'er påvirkes ikke af den gamle workaround, da adgangen til ACPI foregår via en separat intel_idle-driver og ikke den generelle processor_idle-driver.

Workaround'en blev tilføjet til kernen i marts 2002 for at blokere manifestation af en fejl i chipsets, der var relateret til manglende korrekt opstilling af idle-tilstande på grund af forsinkelse i behandlingen af STPCLK# signalet. For at omgå problemet blev der tilføjet en ekstra WAIT-instruktion til ACPI-implementationen, hvilket forsinkede processoren, så chipsettet fik tid til at gå ind i idle-tilstand. Ved profiling med hjælp af Instruction-Based Sampling (IBS) på AMD Zen3-processorer blev det konstateret, at processoren bruger betydelig tid på at udføre ditto, hvilket fører til en forkert fortolkning af belastningsstatus på processoren og til fastsættelse af dybere søvn-tilstande (C-State) af cpuidle-behandleren.

En sådan adfærd afspejles i nedsat ydeevne ved belastninger, hvor idle- og busy-tilstande skifter hyppigt. For eksempel stiger de gennemsnitlige tbench-resultater fra 32191 MB/s til 33805 MB/s ved brug af et patch, der deaktiverer workaround'en.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster