Intel навчить Linux-драйвери Xe ігнорувати «биту» відеопам’ять

Автор: Павло Дорошенко | сьогодні, 15:48

Поки користувачі Windows при появі перших артефактів на екрані зазвичай готуються до гарантійного обміну, розробники Intel для Linux вирішили діяти радикально. У графічному драйвері Xe з'являться інструменти, які дозволять системі буквально «не помічати» проблемні ділянки відеопам’яті (VRAM). Зміни готуються для ядра Linux 7.4, про що повідомляє видання Phoronix.

Ідея проста: якщо залізо починає давати збої, драйвер має виявити це ще на старті та ізолювати несправні сторінки пам'яті від гріха подалі, щоб не провокувати крах усієї системи.

Діагностика при завантаженні

Перше нововведення — це базова перевірка VRAM під час ініціалізації драйвера. Intel фокусується на останній сторінці відеопам’яті, оскільки саме там найчастіше «вилазять» помилки, пов’язані з розмірами BAR або некоректним відображенням адресного простору. Як пояснив інженер Intel Меттью Олд (Matthew Auld), поштовхом до цього стали проблеми, виявлені на деяких відеокартах Intel лінійки Battlemage.

Зокрема, було зафіксовано баг із CCS (Color Control Surface) — спеціальною областю для метаданих компресії. Через неправильне зміщення драйвер міг помилково сприймати цю службову зону як звичайну доступну пам'ять. Новий механізм має відловлювати такі «промахи» ще до того, як система почне активно використовувати неправильно розмічені області.

Логіка «битих секторів» для GPU

Друга частина оновлення значно цікавіша з точки зору живучості заліза. Після тривалої розробки, що пройшла через 21 ревізію коду, драйвер Xe навчився відключати окремі фізично несправні сторінки VRAM. Якщо конкретна ділянка пам’яті починає сипати помилками, драйвер назавжди виключає її з пулу доступних для операцій виділення ресурсів.

Цей підхід копіює принцип роботи накопичувачів із пошкодженими секторами. Замість того, щоб постійно звертатися до проблемної ділянки, що призводить до пошкодження даних або перезапуску GPU, драйвер позначає її як недоступну. Відеокарта при цьому продовжить роботу, хоча загальний обсяг VRAM трохи зменшиться. Це розумний компроміс: краще втратити кілька мегабайтів ємності, ніж отримати непрацездатний графічний адаптер.

Поки що ці механізми стосуються лише драйвера Intel Xe для Linux. Чи з'явиться подібна система контролю в драйверах для Windows — наразі невідомо.

Поки Intel намагається програмно «лікувати» залізо, Lenovo та Google працюють над новими пристроями — у мережі вже з’явилися рендери та характеристики ноутбука Googlebook 15 нового покоління.