Ang Linux 6.0 kernel, inaasahang ilalabas sa susunod na Lunes, ay may kasamang pagbabago na tumutugon sa mga isyu sa pagganap sa mga system na tumatakbo sa mga processor ng AMD Zen. Ang pinagmulan ng pagbaba ng pagganap ay natagpuan na idinagdag ang code 20 taon na ang nakakaraan upang malutas ang isang problema sa hardware sa ilang mga chipset. Ang problema sa hardware ay matagal nang naayos at hindi lumalabas sa kasalukuyang mga chipset, ngunit ang lumang solusyon para sa problema ay nakalimutan at naging mapagkukunan ng pagkasira ng pagganap sa mga system batay sa mga modernong AMD CPU. Ang mga bagong system sa mga Intel CPU ay hindi apektado ng lumang workaround, dahil ina-access nila ang ACPI gamit ang isang hiwalay na intel_idle driver, at hindi ang pangkalahatang processor_idle driver.
Isang workaround ang idinagdag sa kernel noong Marso 2002 upang harangan ang paglitaw ng isang bug sa mga chipset na nauugnay sa hindi maayos na pagtatakda ng idle state dahil sa pagkaantala sa pagproseso ng STPCLK# signal. Upang malutas ang problema, ang pagpapatupad ng ACPI ay nagdagdag ng karagdagang WAIT na pagtuturo, na nagpapabagal sa processor upang ang chipset ay magkaroon ng oras upang pumunta sa isang idle state. Kapag nag-profile gamit ang mga tagubilin ng IBS (Instruction-Based Sampling) sa mga processor ng AMD Zen3, natuklasan na ang processor ay gumugugol ng maraming oras sa pagpapatupad ng mga stub, na humahantong sa isang hindi tamang interpretasyon ng estado ng pag-load ng processor at pagtatakda ng mas malalim na mga mode ng pagtulog (C- Estado) ng processor cpuidle.
Ang gawi na ito ay makikita sa pinababang pagganap sa ilalim ng mga workload na madalas na nagpapalit-palit sa pagitan ng idle at busy na estado. Halimbawa, kapag gumagamit ng patch na hindi pinapagana ang bypass na maneuver, ang tbench test average ay tumataas mula 32191 MB/s hanggang 33805 MB/s.
Pinagmulan: opennet.ru
