8月21日、Phoronixが「Linus Torvalds Endures A Debug Session From Hell, "Enormously Helped" By AI」と題した記事を公開した。Linuxカーネルの生みの親であるLinus TorvaldsがAIを相棒にしながら、Intel XeグラフィックスドライバのバグをLinuxカーネルに自らパッチとして取り込んだ経緯を詳細に紹介している。
修正箇所はたった1行——round_up() を round_down() に変えるだけだ。しかしそこに至るまでにデバッグ用パッチが24本、カーネルの再起動が18回を要した。さらにTorvaldsを手伝ったAIは、その道中で複数回「これは解決不能だ」と匙を投げようとした。毎回それを押し返したのは、Torvalds本人の頑固さだった。
Torvaldsのコミットメッセージ、その言葉
カーネルのコミットに添えられたメッセージには、Torvalds自身の率直な言葉でデバッグの顛末が綴られている(以下は原文からの意訳):
「これは地獄のようなデバッグセッションだった。AIが雑務の大部分をこなしてくれて、非常に助かった。
疲れ知らずの助手と呼びたいところだが、AIは何度も『これは不可能で解決できない、レポートを書くだけにしよう』とはっきり言い放った。
AIは私ほど頑固ではない人間に訓練されてきたのだろうと思う。
それでも、私が押すたびにデバッグコードを追加し続け、忠実に分析してくれた。功績は認める——このコミットメッセージ自体もAIに書かせた。」
コミットメッセージそのものをAIに書かせたという点も象徴的だ。道具として使い切る、という割り切りがTorvaldsらしい。
何が起きていたか:GDMが無限再起動するバグ
問題が発生していたのは、Intel Battlemage世代(第2世代Arc GPU、2024年末発売) のグラフィックスカード、具体的にはArc B580上だ。Intelの新世代GPU向けに書かれたXeカーネルドライバが、フラット形式の Compute Command Streamer(CCS) 領域——GPUがコマンドを順番に処理するための内部キューのようなもの——を、通常のビデオメモリ(VRAM)として使用可能な領域と誤って計算していた。この誤差によってメモリ境界でミスマッチが生じ、ログイン画面を管理する GDM(GNOME Display Manager) が起動のたびにクラッシュして無限に再起動するという症状が現れた。
Linuxのグラフィックスドライバのバグは珍しくないが、Torvalds自身がドライバのデバッグに直接手を動かすのは異例だ。Xeドライバは現在も活発に開発が進む段階にあり、成熟度はNVIDIAやAMDのドライバに比べてまだ発展途上にある。そのような背景もあり、このバグは実害を伴うものだった。
「諦めるAI」を押し切った頑固さ
このエピソードで際立つのは、AIが単なる補助ツールに留まったという構図だ。AIは自律的に問題を解いたわけではなく、デバッグの途中で複数回にわたって「解決不能」と判断して投げ出そうとした。Torvaldsはそのたびに方向性を与え直し、デバッグコードの追加と分析を続けさせた。
最終的に機能したのは、AIの問題解決能力ではなく、Torvaldsの「諦めない姿勢」とAIの「反復的な雑務処理能力」の組み合わせだった。人間が目標を持ち続けることで、AIが道具として最大限機能するという構図が、このエピソードには凝縮されている。
Torvaldsは以前からAIを「有用なツール」として肯定的に捉えており、Linuxコミュニティはアンチ・AIではないとの立場を公言している。今回のエピソードはその姿勢を具体的な形で裏付けるものとなった。
パッチはLinux kernel 7.3へマージ済み
当該パッチは現在 Linux kernel 7.3のGitツリーにマージ済みであり、安定版カーネルブランチへのバックポートも予定されている。Intel Arc B580(Battlemage)を使用しているLinuxユーザーにとっては実害のあるバグだっただけに、修正は歓迎されるはずだ。
詳細はLinus Torvalds Endures A Debug Session From Hell, "Enormously Helped" By AIを参照していただきたい。