Ahaztutako adabaki bat aurkitu zen Linux nukleoan, AMD CPUen errendimenduari eragiten diona

Datorren astelehenean kaleratuko den Linux 6.0 kernelak AMD Zen prozesadoreetan exekutatzen diren sistemen errendimendu-arazoak zuzentzen dituen aldaketa bat dakar. Errendimendu-jaitsieraren iturria duela 20 urte gehitutako kodea zela aurkitu zen, chipset batzuetan hardware-arazo bati aurre egiteko. Hardware arazoa aspaldi konpondu da eta ez da egungo chipsetetan agertzen, baina arazoaren konponbide zaharra ahaztu egin da eta AMD CPU modernoetan oinarritutako sistemetan errendimenduaren degradazio iturri bihurtu da. Intel PUZetako sistema berriek ez dute konponbide zaharrak eragiten, ACPI intel_idle kontrolatzaile bereizi bat erabiliz atzitzen baitute ACPI, eta ez processor_idle kontrolatzaile orokorra erabiliz.

2002ko martxoan konponbide bat gehitu zen nukleoan, STPCLK# seinalea prozesatzeko atzerapenaren ondorioz inaktibo egoera behar bezala ez ezartzearekin lotutako chipsetetan akats bat agertzea blokeatzeko. Arazoari aurre egiteko, ACPI inplementazioak WAIT instrukzio gehigarri bat gehitu zuen, prozesadorea moteltzen duena, chipsetak inaktibo egoerara joateko denbora izan dezan. AMD Zen3 prozesadoreetan IBS (Instruction-Based Sampling) argibideak erabiliz profilatzean, prozesadoreak denbora kopuru handia pasatzen duela aurkitu zen zirriborroak exekutatzen, eta horrek prozesadorearen karga-egoeraren interpretazio okerra dakar eta lo modu sakonagoak ezartzen ditu (C- Egoera) prozesadorearen cpuidlearen bidez.

Jokaera hori maiz inaktibo eta lanpetuta egoeren artean txandakatzen diren lan-kargaren errendimendu murriztuan islatzen da. Adibidez, saihesbidearen maniobra desgaitzen duen adabaki bat erabiltzean, tbench-en probaren batez bestekoak 32191 MB/s-tik 33805 MB/s-ra igotzen dira.

Iturria: opennet.ru

Gehitu iruzkin berria