prismBETA
← 개발자 브리핑
2026-08-17 · 01 / 07

Linus, AI로 Intel GPU 드라이버 버그를 잡았다

Intel Xe 드라이버가 압축용 flat CCS 저장공간 일부를 VRAM으로 잘못 할당해 Battlemage G21에서 검은 화면과 gdm 재시작 루프를 일으켰고, get_flat_ccs_offset()의 round_up(128KiB)을 round_down(4KiB)으로 바꾸는 사실상 한 줄 수정으로 해결됨. 원인을 좁히는 데 디버그 패치 24개와 커널 부팅 18회가 필요했으며, AI가 반복 디버깅과 분석을 맡고 여러 차례 '해결 불가'로 판단했지만 Linus가 계속 밀어붙여 완료했고 최종 커밋 메시지도 AI가 작성함.

문제는 Battlemage G21(16GiB)에서 콜드 부팅마다 검은 화면과 gdm 재시작 루프로 나타났다. get_flat_ccs_offset()이 하드웨어의 flat CCS 기준 주소에 활성 L3 노드 수를 곱한 뒤 결과를 128KiB 단위로 올림하면서, 실제 CCS 기준 주소와 올림된 값 사이의 메모리까지 VRAM 할당 풀에 들어갔다. 그 결과 페이지 0x3fafff000의 마지막 2KiB가 CCS 저장공간인데도 할당 대상이 됐고, 그 위에 놓인 Mesa VM의 레벨 3 페이지 테이블을 압축 하드웨어가 덮어써 compositor가 첫 제출에서 fault를 일으켰다.

수정 커밋은 round_up(offset, SZ_128K)을 round_down(offset, SZ_4K)으로 바꿔 VRAM 할당 단위인 4KiB에 맞춰 내림했고, 해당 기기에서는 정확히 한 페이지가 할당에서 제외됐다. 제외된 페이지를 읽자 16바이트당 2바이트의 압축 메타데이터가 기록되고 있었다. 코드상으로는 한 줄이지만 원인 규명에는 디버그 패치 24개와 커널 부팅 18회가 필요했다.

AI는 디버그 코드 추가와 결과 분석 등 반복 작업을 맡았고, 진행 중 여러 차례 '불가능하거나 해결할 수 없다'며 보고서만 쓰자고 했지만 Linus가 밀어붙이자 분석을 이어갔다. 최종 커밋 메시지까지 AI가 작성했는데, 이 부분은 '이전 상태에서 무엇이 바뀌었는지'를 장황하게 서술하는 전형적 LLM 패턴이라는 비판과 함께 리뷰 없이 master에 병합된 데 대한 불편함이 커뮤니티에서 제기됐다.

투표
AI가 '못 하겠다'고 하면?
이 글이 도움이 되셨나요?
이야기의 흐름1
매주 월요일 아침 갱신 · 요약은 AI가 생성하며 출처 원문을 확인하세요.