Суть проблемы: конфликт управления питанием
В ядро Linux готовится патч, решающий критическую проблему взаимодействия операционной системы и микрокода процессоров Intel нового поколения. Речь идет о поддержке функции Dynamic Efficiency Control (DEC), которая появилась в архитектуре Intel Core Ultra серии 3 (Panther Lake). DEC оптимизирует энергопотребление при легких нагрузках, но текущая логика драйвера intel_pstate вступает с ней в конфликт.
Технические детали: почему это ломает работу
Согласно объяснению Рафаэля Вайсоки (Rafael Wysocki), главного мейнтейнера подсистемы управления питанием Linux, проблема возникает при попытке ОС явно задать уровень производительности через регистр MSR_HWP_REQUEST. Если DEC активирован, такие прямые команды могут запутать прошивку процессора, заставив её принимать неоптимальные или ошибочные решения по распределению ресурсов.
Решение, предложенное в патче, заключается в том, чтобы драйвер intel_pstate всегда передавал значение 0 (что означает «нет предпочтений») в целевой уровень производительности на платформах с DEC. Это позволяет прошивке процессора самостоятельно определять наиболее подходящую частоту и состояние питания, исключая двусмысленность.
Ожидаемые изменения в коде
Патч модифицирует логику драйвера, добавляя проверку на наличие поддержки DEC. Ниже приведена логика принятия решений, которая будет реализована:
| Компонент | Статус DEC | Действие драйвера intel_pstate | Результат |
|---|---|---|---|
| MSR_HWP_REQUEST | Отключено | Установка желаемого уровня производительности | Прямое управление частотой ОС |
| MSR_HWP_REQUEST | Включено (Panther Lake) | Установка значения 0 (no preference) | Управление передается прошивке CPU |
Значение для пользователей и разработчиков
Данный фикс важен для всех, кто планирует использовать или уже использует новейшие платформы Intel Core Ultra 3-й серии. Без этого патча пользователи могут столкнуться с нестабильной работой системы, повышенным энергопотреблением или некорректным масштабированием частот из-за того, что ОС и микрокод будут «спорить» за контроль над процессором.
Патч уже отправлен в список рассылки разработчиков ядра. Учитывая текущий тайминг, есть вероятность, что исправление попадет в окно слияния Linux v7.3. Конкретные бенчмарки производительности или экономии энергии в самом патче не приводились, так как основная цель — устранение логической ошибки, а не оптимизация метрик.
Источник: Phoronix ↗
