TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1154 7.21K
👩‍💻 Линус Торвальдс пофиксил баг в ядре Linux при помощи ИИ

После полного выключения и включения компьютера Linux показывал чёрный экран. Графическая оболочка постоянно перезапускалась, хотя сама система продолжала работать. Лечилось перезапуском оболочки.

Фиксом занялся сам Линус Торвальдс. И в помощники он взял себе AI.

Сама причина находилась в драйвере Intel Xe и расчёте границы видеопамяти. Часть VRAM видеокарта резервирует для служебных данных аппаратного сжатия. Драйвер получает адрес, с которого начинается эта закрытая область, и передаёт всю память ниже него обычным приложениям.

Но адрес не всегда совпадал с границей страницы памяти.

Легаси код использовал round_up() – округлял адрес вверх. Из-за этого граница свободной памяти сдвигалась внутрь зарезервированной области.

На компьютере Линуса граница проходила посередине страницы размером 4 КБ: последние 2 КБ уже принадлежали механизму сжатия, но драйвер мог отдать всю страницу приложению.

По итогу видеокарта записывала служебные данные поверх размещённой там таблицы страниц. Графическая оболочка теряла доступ к нужной области памяти и падала.

Исправлением послужила замена round_up() на round_down().

Теперь адрес округляется вниз до начала страницы. Если хотя бы часть страницы занята служебными данными видеокарты, драйвер исключает из доступной памяти всю страницу. Теряется несколько килобайт VRAM, зато приложения больше не получают память, которую может перезаписать оборудование.

Само исправление уместилось всего в одну строку. Но для его поиска потребовались 24 диагностических патча и 18 перезагрузок ядра.

AI по сути занялся основной рутиной. Он добавлял различный диагностический код и анализировал результаты. Правда, несколько раз помощник объявлял проблему нерешаемой и предлагал остановиться на составлении отчёта 😅 . Как говорится, "лень прежде нас родилась".

Но Линус был упрямее и каждый раз заставлял его продолжать.

В конце Торвальдс признал, что AI оказал огромную помощь, и даже разрешил ему написать описание итогового коммита. Какую модель он использовал, Линус не сообщил.

Мораль сей басни такова, что AI не нашёл ошибку одной волшебной командой и не заменил инженера (выдыхаем). Он выполнял механическую работу, пока человек строил гипотезы, проверял результаты и не принимал ответ, якобы это невозможно.

Михаил Поливаха обещал обсудить баг на подкасте более детально. Ждем!

🔗 Источник: коммит в ядре Linux
  • ❤ 42
  • 👍 29
  • 🔥 18
  • 😁 5
More from @spring_aio
  1. Sep 22, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  2. Sep 21, 2026🧑‍💻 Трагедия версионирования ПО Мы привыкли читать версии по SemVer. Появились несовмест…
  3. Sep 20, 2026⚡️ Вышла OpenIDE 2026.2 Обновили базовую платформу до версии 2026.2, новая версия уже дост…
  4. Sep 19, 2026БЕСПЛАТНАЯ ЛЕКЦИЯ ДЛЯ ВСЕХ 🔥 Друзья, 23 сентября открываем первую лекцию курса «Java в пр…
  5. Sep 18, 2026🎓 Отличный повод классно провести пятничный вечер! Друзья, уже сегодня наши друзья из Axi…
  6. Sep 17, 2026🖥 Новые фичи Java нужны не только на собеседованиях Друзья, всем привет! Так как буквальн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →