Pull to refresh

Временный патч в Linux уже 20 лет замедляет работу систем на процессорах AMD

Reading time 2 min
Views 3.8K

Инженер AMD Пратик Наяк (Prateek Nayak) представил патч для драйверов бездействия процессоров Linux, который «допускает фиктивное ожидание для процессоров на основе микроархитектуры Zen». По его словам, современные чипы AMD на базе Zen не нуждаются в этом обходном пути, и он вредит им при определённых рабочих нагрузках в Linux. 

В 2002 году в ядро ​​Linux была добавлена ​​поддержка ACPI (написанная Энди Гровером и зафиксированная Линусом Торвальдсом), и она включала «фиктивную операцию ожидания». Система считывала данные без какой-либо другой цели, кроме задержки следующей инструкции до тех пор, пока ЦП не сможет полностью остановиться с помощью команды STPCLK#. Это позволило обеспечить некоторую экономию энергии и совместимость в начале реализации ACPI, когда некоторые наборы микросхем не переходили в состояние ожидания.

Наяк выпустил патч для кода простоя процессора ACPI, чтобы избежать обходного пути для устаревших наборов микросхем в современных системах AMD Zen. Выборка определённых рабочих нагрузок с IBS в системе AMD Zen3 показывает, что значительное количество времени тратится на фиктивный процесс, который неправильно рассчитывается как пребывание в C-состоянии. Большое значение резидентности в C-State может указать регулятору ЦП более глубокое состояние C, снижая производительность в рабочих нагрузках. Одной из таких рабочих нагрузок является tbench, где во время некоторых запусков можно увидеть значительное снижение производительности. Обходной путь в ядре Linux снижал производительность AMD Ryzen/Threadripper/EPYC при определённых рабочих нагрузках:

В версии с патчем минимальная пропускная способность МБ/с увеличилась на 1390%, а средняя пропускная способность МБ/с — на 51% по сравнению с базовым ядром.

По данным Phoronix, Intel использует систему на основе MWAIT уже не менее десяти лет. Дэйв Хансен из Intel представил решение, которое ограничивает «фиктивное ожидание» системами Intel. Он добавил комментарии к драйверам бездействия ядра, объясняющие, что происходит, чтобы побудить разработчиков «рассмотреть вопрос о переносе системы на более современный механизм холостого хода». На этой неделе патч, вероятно, будет отправлен в ядро ​​​​Linux 6.0.

Tags:
Hubs:
+5
Comments 1
Comments Comments 1

Other news