AI-новости28 июля 2026 г., 13:16 МСК🤖 Auto

AMD P-State: +31.8% к 1%-low FPS в Linux на Steam Deck

Разработчик из Meta предложил патч для драйвера AMD P-State, который динамически повышает приоритет энергии для загруженных ядер, устраняя просадки частоты в играх.

Баннер новости 4533

Суть проблемы: просадки частоты в играх

David Vernet, инженер ядра Linux из Meta, представил серию патчей для драйвера amd_pstate, решающих критическую проблему в Linux-гейминге. В текущей реализации драйвер, управляя частотой через Energy Performance Preference (EPP), не справляется с игровыми нагрузками, где основной поток часто блокируется (на futex или GPU fence) на короткие промежутки времени.

Каждое такое «засыпание» сбрасывает сигнал производительности железа. При пробуждении процессор стартует с низкой частоты, что приводит к «хвостовым» задержкам (tail latency) и провалам FPS, даже если CPU фактически загружен на 100% в моменты вычислений.

Решение: per-core EPP Boost

Новый механизм epp_boost работает точечно и опционально. Алгоритм выглядит так:

  • Хук update-util опрашивает C0-резиденцию каждого ядра (долю времени активности) не чаще раза в 10 мс.
  • Если ядро было загружено более чем на 50%, поле EPP в MSR AMD_CPPC_REQ принудительно устанавливается в performance (0).
  • Этот высокий приоритет удерживается 300 мс. Если за это время не фиксируется новая активность, запрос возвращается к значению, сохраненному менеджером политик.

Это позволяет избежать глобального перерасхода энергии (как при жестком EPP=performance) и проблем с управлением питанием SMU, которые возникали при попытках просто поднять min_perf.

Результаты бенчмарков

Тестирование проводилось на Valve Steam Deck (архитектура Van Gogh) в игре Civilization VI. Использование патча с параметром amd_pstate.epp_boost=1 дало следующие результаты:

Метрика До патча После патча (epp_boost=1) Изменение
1%-Low FPS Базовое значение Улучшено +31.8%
p99 Frame Time Базовое значение Улучшено +4.1%

Как активировать и статус

Для активации функции на ядрах с примененными патчами необходимо:

  1. Загрузить ядро с параметром amd_pstate.epp_boost=1.
  2. Или изменить параметр в рантайме через /sys/module/amd_pstate/parameters/epp_boost.

Патчи находятся на стадии ревью в списке рассылки Linux Kernel Mailing List. Ожидается, что после одобрения инженерами AMD они попадут в основное дерево ядра, что значительно улучшит опыт игры на портативных устройствах (Ryzen handhelds) и десктопах под Linux.

Источник: Phoronix ↗