AMD процессорының өнімділігіне әсер ететін Linux ядросында ұмытылған патч табылды

Келесі дүйсенбіде шығуы күтілетін Linux 6.0 ядросы AMD Zen процессорларында жұмыс істейтін жүйелердің өнімділік мәселелерін шешетін өзгерісті қамтиды. Өнімділіктің төмендеуінің көзі кейбір чипсеттердегі аппараттық ақауды шешу үшін 20 жыл бұрын қосылған код болып табылды. Аппараттық құрал мәселесі әлдеқашан шешілді және ағымдағы чипсеттерде пайда болмайды, бірақ мәселені шешудің ескі жолы ұмытылды және қазіргі заманғы AMD процессорларына негізделген жүйелерде өнімділіктің төмендеуінің көзіне айналды. Intel процессорларындағы жаңа жүйелерге ескі уақытша шешім әсер етпейді, себебі олар ACPI жүйесіне жалпы процессор_бос драйверін емес, бөлек intel_idle драйверін пайдаланады.

STPCLK# сигналын өңдеудің кешігуіне байланысты бос күйді дұрыс орнатпаумен байланысты чипсеттердегі қатенің пайда болуын блоктау үшін 2002 жылдың наурыз айында ядроға уақытша шешім қосылды. Мәселені шешу үшін ACPI енгізуі қосымша WAIT нұсқауын қосты, ол процессорды баяулатады, осылайша чипсеттің бос күйге өту уақыты болады. AMD Zen3 процессорларында IBS (нұсқауларға негізделген іріктеу) нұсқауларын пайдаланып профильдеу кезінде процессордың қоқыстарды орындауға көп уақыт жұмсайтыны анықталды, бұл процессордың жүктелу күйін дұрыс түсінбеуге және тереңірек ұйқы режимдерін орнатуға әкеледі (C- күй) процессордың cpuidle арқылы.

Бұл әрекет бос және бос емес күйлер арасында жиі кезектесетін жұмыс жүктемелері кезінде өнімділіктің төмендеуінде көрінеді. Мысалы, айналып өту маневрін өшіретін патчты пайдаланған кезде tbench сынағының орташа мәндері 32191 МБ/с-тан 33805 МБ/с дейін артады.

Ақпарат көзі: opennet.ru

пікір қалдыру