AktualnościAkcjeLinus Torvalds naprawia dwuletni błąd Intel Xe GPU dzięki debugowaniu wspomaganemu przez AI

Linus Torvalds naprawia dwuletni błąd Intel Xe GPU dzięki debugowaniu wspomaganemu przez AI

Autor: CryptoBriefing·

Najważniejsze informacje

  • Błąd pochodził z commita sprzed około dwóch lat (37173392741c), który zastosował round_up() zamiast round_down() w obliczaniu offsetu CCS przy alokacji VRAM, przez co metadane kompresji były przydzielane jako użyteczna pamięć wideo.
  • Śledztwo Torvaldsa wymagało 24 łatek debugowych i 18 uruchomień jądra, zanim namierzył wadliwe wywołanie funkcji, które koryguje poprawka (commit 818bebeb63dd).
  • Choć narzędzie AI pomagało, dodając kod debugowy i analizując wyniki, w pewnym momencie zasugerowało, że problem jest nierozwiązywalny — ocenę tę Torvalds odrzucił, zanim samodzielnie znalazł rozwiązanie.
  • Błąd szczególnie mocno dotknął użytkowników sprzętu Intel Battlemage G21 (chipu stojącego za kartami serii Arc B), objawiając się artefaktami na ekranie i wymuszonymi restartami menedżerów wyświetlania.
  • Poprawka ma zostać włączona do Linuksa w wersji 7.3 i oczekuje się jej przeniesienia do stabilnych wydań jądra, co rozwiąże problemy z wyświetlaniem u użytkowników starszych wersji jądra.
Linus Torvalds naprawia dwuletni błąd Intel Xe GPU dzięki debugowaniu wspomaganemu przez AI

Linus Torvalds, twórca i główny opiekun jądra Linuksa, 21 sierpnia 2026 r. scalił jednolinijkową poprawkę do graficznego sterownika Intel Xe. Sama łatka była trywialnie prosta; droga debugowania, którą trzeba było przejść, by do niej dotrzeć, była wszystkim, tylko nie prosta.

Jak relacjonuje Torvalds, całe przedsięwzięcie pochłonęło 24 łatki debugowe i 18 uruchomień jądra, a istotną rolę w usprawnieniu tej pracy odegrało narzędzie AI. Pomagało ono dodawać kod debugowy i analizować wyniki — a w pewnym momencie uznało, że problem jest w zasadzie nierozwiązywalny. Torvalds odrzucił tę ocenę, wytrwał i mimo wszystko znalazł odpowiedź.

Jedno wywołanie funkcji stojące za miesiącami problemów

Przyczyną źródłową było jedno nieprawidłowe wywołanie funkcji we wcześniejszym commicie, oznaczonym jako 37173392741c i pochodzącym sprzed około dwóch lat. Commit ten zastosował round_up() tam, gdzie należało użyć round_down(), w obliczaniu offsetu CCS przy alokacji VRAM. CCS — Compression Control Surface — to metadane, których procesory graficzne Intela używają do śledzenia stanu kompresji buforów w pamięci wideo; podobnie jak inne zarezerwowane regiony, zależą one od poprawnie obliczonego offsetu, aby zajmowane przez nie miejsce nie zostało przydzielone czemukolwiek innemu.

W efekcie jądro błędnie przydzielało metadane kompresji jako użyteczną pamięć wideo. Skutkiem były uszkodzone tablice stron, które objawiały się artefaktami na ekranie i wymuszonymi restartami menedżerów wyświetlania.

Użytkownicy sprzętu Intel Battlemage G21 pracujący pod określonymi obciążeniami zostali dotknięci szczególnie mocno. Battlemage to architektura drugiej generacji dyskretnych procesorów graficznych Intela, a G21 to chip (die) stojący za kartami serii Arc B. Torvalds sam akurat korzystał z systemu z Battlemage G21, co czyniło błąd łatwym do odtworzenia, gdy pewne zmiany w przestrzeni użytkownika uruchamiały odpowiednie warunki.

Poprawka, oznaczona jako commit 818bebeb63dd, zmienia pojedyncze wywołanie funkcji.

AI jako partner w debugowaniu, a nie zbawca

Torvalds pozwolił AI nawet pomóc w opracowaniu komunikatu commita — drobny, ale symbolicznie doniosły gest ze strony osoby, która historycznie przywiązywała wagę do standardów komunikacji w jądrze.

W trakcie sesji debugowania AI sugerowało, że problemu nie da się rozwiązać, co w praktyce oznaczało poradę Torvaldsowi, by się poddał. Zignorował tę radę, kontynuował metodyczny cykl łatania, ponownego uruchamiania i analizowania, aż w końcu namierzył wadliwą funkcję zaokrąglania.

Ten epizod kontrastuje z wcześniejszymi frustracjami Torvaldsa wobec AI w procesie rozwoju jądra. Głośno wypowiadał się on o zalewie generowanych przez AI łatek i korespondencji napływającej na listę mailingową jądra, dużą część tego zjawiska określając jako niskiej jakości spam. Korzystanie z AI jako osobistego asystenta debugowania to fundamentalnie inny przypadek użycia — różnica między nadzorowanym narzędziem a nieproszonymi, generowanymi maszynowo wkładami, którą szersza społeczność jądra wciąż omawia.

Rzadki przypadek osobistej naprawy w domenie GPU

Rozwój sterowników graficznych w Linuksie leży zazwyczaj w gestii dedykowanych zespołów Intela, AMD i innych producentów sprzętu oraz niezależnych współtwórców specjalizujących się w podsystemie DRM (Direct Rendering Manager). To, że Torvalds osobiście debuguje i naprawia problem w sterowniku Xe, jest na tyle nietypowe, że samo w sobie zasługuje na uwagę. Sterownik Xe jest przy okazji młody jak na standardy jądra: Intel scalił go z główną gałęzią (mainline) w 2024 roku, aby docelowo zastąpił i915 — długowieczny sterownik obsługujący sprzęt graficzny Intela od około dwóch dekad — dlatego część jego ścieżek kodu ma znacznie mniejszy przebieg niż ich sprawdzone w boju odpowiedniki z i915.

Łatka ma trafić do Linuksa w wersji 7.3, a oczekuje się, że zostanie przeniesiona do stabilnych wydań jądra (backport). Ponieważ sam błąd istnieje od około dwóch lat, backport powinien rozwiązać problem dla użytkowników starszych wersji jądra, którzy doświadczają okresowych problemów z wyświetlaniem na dotkniętym sprzęcie Intela. Dla śledzących poprawkę, komunikaty o wydaniach stabilnego jądra to miejsce, w którym ujawniłby się backport 818bebeb63dd.

Szerokie zainteresowanie społeczności open source

Ta sprawa przyciągnęła duże zainteresowanie w społecznościach Linuksa i open source, a dyskusje rozgorzały na Phoronix, Reddicie i Hacker News.