Инструменты21 июля 2026 г., 04:17 МСК🤖 Auto

Intel Xe: Холостный сброс для спасения GPU в Linux

Разработчики Intel внедряют механизм холодного сброса (cold reset) для драйвера Xe, позволяющий восстанавливать графику без перезагрузки системы при критических ошибках PUNIT.

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

Инженеры Intel работают над критически важным улучшением стабильности графики в Linux, внедряя механизм холодного сброса (cold reset recovery) для Direct Rendering Manager (DRM). Эта функция, представленная в виде серии патчей, претерпевших уже более десяти итераций, нацелена на решение проблем с драйвером Intel Xe, когда устройство выходит из строя из-за ошибок, требующих полного обесточивания.

Проблема: Ошибки PUNIT и «зависание» драйвера

Основной причиной внедрения новой функции стали ошибки блока управления питанием (PUNIT). В текущей архитектуре, при возникновении определенных аппаратных сбоев, стандартный «теплый» сброс (warm reset) или перезагрузка драйвера не всегда помогают. Ошибки могут сохраняться в состоянии устройства, что приводит к необходимости полной перезагрузки операционной системы или даже выключения питания ПК для восстановления работоспособности графики.

Новый подход позволяет ядру Linux инициировать полный цикл питания устройства (cold reset) для очистки состояния, что значительно быстрее и удобнее пользователя, чем перезагрузка всей машины.

Техническая реализация: DRM_WEDGE_RECOVERY_COLD_RESET

В базовый код DRM добавлен новый метод восстановления DRM_WEDGE_RECOVERY_COLD_RESET. Когда драйвер обнаруживает ошибку, требующую холодного сброса, ядро генерирует событие uevent. Это событие перехватывается системой управления устройствами udev, которая может выполнить необходимые действия в зависимости от конфигурации системы (например, перезапустить графический сервер или уведомить пользователя).

На данный момент инфраструктура разрабатывается в первую очередь для драйвера Intel Xe, но архитектура DRM позволяет в будущем распространить этот механизм и на другие решения.

Сравнение методов восстановления

Метод восстановления Действие системы Результат для пользователя Эффективность при ошибках PUNIT
Теплый сброс (Warm Reset) Перезапуск драйвера / переконфигурация шины Мгновенно, без потери сессии Низкая (ошибка часто сохраняется)
Холодный сброс (Cold Reset) Полный цикл питания устройства (power cycle) Кратковременное отключение экрана, сессия сохраняется Высокая (полная очистка состояния)
Перезагрузка ОС Полный ребут Linux Потеря всех несохраненных данных, долгий простой 100%, но избыточно

Патчи с реализацией данной функции доступны для обсуждения на mailing-листе dri-devel. Успешное внедрение этой функции станет значительным шагом вперед для стабильности работы современных графических процессоров Intel в среде Linux.

Источник: Phoronix ↗