Vergete pleister gevind in Linux-kern wat AMD CPU-werkverrigting beïnvloed

Die Linux 6.0-kern, wat na verwagting volgende Maandag vrygestel sal word, bevat 'n verandering wat werkverrigtingkwessies aanspreek met stelsels wat op AMD Zen-verwerkers werk. Die bron van die prestasiedaling is gevind dat die kode 20 jaar gelede bygevoeg is om 'n hardewareprobleem in sommige skyfiestelle om te werk. Die hardewareprobleem is lankal reggestel en verskyn nie in huidige skyfiestelle nie, maar die ou oplossing vir die probleem is vergeet en het 'n bron van werkverrigtingsdegradasie geword op stelsels wat op moderne AMD-SVE's gebaseer is. Nuwe stelsels op Intel-SVE's word nie deur die ou oplossing beïnvloed nie, aangesien hulle toegang tot ACPI verkry deur 'n aparte intel_idle-bestuurder te gebruik, en nie die algemene processor_idle-bestuurder nie.

'n Oplossing is in Maart 2002 by die kern gevoeg om die voorkoms van 'n fout in skyfiestelle te blokkeer wat verband hou met die nie behoorlik instel van die ledige toestand as gevolg van 'n vertraging in die verwerking van die STPCLK# sein. Om die probleem te omseil, het die ACPI-implementering 'n bykomende WAG-instruksie bygevoeg, wat die verwerker vertraag sodat die skyfiestel tyd het om in 'n ledige toestand te gaan. By die profilering met behulp van IBS (Instruction-Based Sampling)-instruksies op AMD Zen3-verwerkers, is ontdek dat die verwerker 'n aansienlike hoeveelheid tyd spandeer om stubs uit te voer, wat lei tot 'n verkeerde interpretasie van die verwerker se lastoestand en die instelling van dieper slaapmodusse (C- State) deur die verwerker cpuidle.

Hierdie gedrag word weerspieël in verminderde werkverrigting onder werkladings wat gereeld wissel tussen ledige en besige toestande. Byvoorbeeld, wanneer 'n pleister gebruik word wat die bypass-maneuver deaktiveer, verhoog die tbench-toetsgemiddeldes van 32191 MB/s tot 33805 MB/s.

Bron: opennet.ru

Voeg 'n opmerking