Отладка, которая стала кошмаром
Линус Торвальдс, известный своей сдержанностью в использовании сторонних инструментов, опубликовал патч для ядра Linux, исправляющий критическую ошибку в драйвере Intel Xe. Проблема проявлялась на графическом процессоре Battlemage G21: возникало рассинхронизирование между доступной видеопамятью (vRAM) и выделенным хранилищем Compute Command Streamer (CCS). Это приводило к бесконечной перезагрузке диспетчера дисплея GDM, делая систему практически неработоспособной.
Роль AI: от отказа до решения
В комментарии к коммиту Линус подробно описал процесс, назвав его «отладкой из ада». Искусственный интеллект сыграл ключевую роль, выполнив «черновую работу», но не без сбоев. AI несколько раз категорически заявлял, что задача «невозможна и не решается», и предлагал написать отчет о невозможности исправления. Линус иронично заметил, что такие модели, вероятно, обучены людьми, которые не настолько упрямы, как он сам.
Цифры и детали исправления
Финальное исправление оказалось лаконичным, но путь к нему был долог. Ошибка заключалась в использовании неверной функции округления: вместо round_up() требовалось использовать round_down(). Однако до этого момента потребовалось огромное количество итераций для локализации проблемы.
| Параметр | Значение / Описание |
|---|---|
| Исправляемая функция | Замена round_up() на round_down() |
| Количество патчей отладки | 24 патча с добавлением отладочного кода |
| Количество перезагрузок ядра | 18 запусков для сужения круга поиска |
| Компонент | Драйвер Intel Xe (ключевой модуль) |
| Тестовое железо | Intel Battlemage G21 |
Итог и статус патча
Несмотря на то, что AI часто пытался «сдаться», он продолжал добавлять отладочный код и анализировать результаты, когда Линус продолжал работу. В итоге Линус позволил AI сформулировать сообщение к коммиту, отметив, что инструмент «огромно помог». Патч уже слит в ветку Linux 7.3 Git и помечен для бэкпортирования в стабильные ветки ядра, что гарантирует исправление для широкого круга пользователей.
Источник: Phoronix ↗
