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

Инженер AMD Пратик Наяк обнаружил, что временное решение 20-летней давности до сих пор применяется в современных системах AMD. В некоторых случаях оно приводит к снижению производительности чипов на базе Zen.

В 2022 году в ядро Linux была добавлена поддержка ACPI, которая включала «фиктивную операцию ожидания». Система считывала данные без какой-либо цели, просто чтобы задержать следующую инструкцию, пока центральный процессор не сможет полностью остановиться с помощью команды STPCLK#. Благодаря этому обеспечивалась небольшая экономия энергии в начале реализации ACPI, когда некоторые микросхемы не переходили в состояние ожидание.

Современные системы AMD Zen не нуждаются в этом обходном пути. Более того, он даже вредит их производительности. Так, тестирование рабочих нагрузок с IBS показало, что на фиктивную операцию. которая ошибочно рассчитывается как пребывание в С-состоянии, тратится значительное количество времени.

При этом большое значение состояния C-State может побудить регулятора рекомендовать более глубокое С-состояние во время будущих простоев. В результате запускается порочный круг, который приводит к снижению производительности при нагрузках с быстрым переключением между фазами занятости и простоя.

Теперь инженер Пратик Наяк выпустил патч, который удаляет или ограничивает «фиктивное ожидание». В пропатченной версии минимальная пропускная способность увеличилась на 1390%, а средняя пропускная способность — на 51% по сравнению с базовым ядром.

По данным Phoronix, новое решение уже добавлено в ядро Linux 6.0.

Что будем искать? Например,ChatGPT

Мы в социальных сетях