本文へ移動

カーネルの「通行料」を外したら読み出しが3倍に──TorvaldsがClaude Codeに書かせた8本のパッチと、その但し書き

LinuxのTorvalds氏がClaude Codeに書かせた8本のページキャッシュ改修を公開。8スレッドの小さな読み出しが約3倍に伸びた。ただし回帰や未検証、責任の所在といった但し書きも自ら並べている。

カーネルの「通行料」を外したら読み出しが3倍に──TorvaldsがClaude Codeに書かせた8本のパッチと、その但し書き

「指揮は自分、コードはClaude Code」

Linuxの生みの親Linus Torvalds氏が、自身のリポジトリに新しいブランチを公開しました。名前は noref-filemap-read-with-llm です。

ページキャッシュの性能課題に取り組む8本のパッチ群で、先頭コミット「mm: read from the page cache without folio references」は10月10日付です。12日にカーネルメーリングリストへ投稿されました。

注目を集めたのは、カバーレターの一文です。Torvalds氏は「コード、テストプログラム、上記リストの裏付けとなる検討、そしてこの文章の初稿は、私の指揮のもとLLMコーディング支援(Claude Code)が行った」と明記しました。

folioの参照カウントという「渋滞」

今回直したのは、ファイルの内容を保持する領域(folio)の扱いです。

多数のスレッドが同じファイルの小さな断片を同時に読むと、カーネルは毎回その領域の参照カウントをアトミックに増減させます。高い並行性の下では、この操作が同じキャッシュラインを奪い合い、コア間で「玉突き」が起きて遅くなります。

修正は、読み出しをRCUの読み取り区間の中で行い、参照カウントの増減を省く方式です。メモリの解放は、RCUの猶予期間が過ぎた後へ遅らせます。

8スレッドで読み出しが約3倍

Torvalds氏が自分のノートPCで測った結果は次のとおりです。数値は出典をもとに再構成しています。

指標(8スレッドが同一ファイルを小さく読む)変更前変更後
読み出し1回あたりのカーネルCPUサイクル約2,950約725
スループット(reads/秒)約1,000万3,000〜3,300万
コア間の競合(load HITMs)30,538101

単一スレッドの読み出しは約1割の改善(452〜454→408〜409サイクル)にとどまります。

測定条件は1台のノートPC(4コア8スレッド、一部の保護機能を無効化)です。マルチソケット機は未検証です。

何が新しいのか

AIが書いたパッチ自体は、もう珍しくありません。目を引くのは、カーネルの最終責任者が自ら道具を使い、その事実を公言した点です。

Torvalds氏は生成物を鵜呑みにせず、実測で裏を取り、残る課題も自分の言葉でカバーレターに並べました。「人が指揮し、AIが下書きし、人が検証する」という手順が、要求の厳しい領域でも回ることを示した事例と言えます。

開発現場への示唆

この進め方は、そのまま日々の開発に移せます。要点は3つです。

  • タスクの分解と狙いの定義は人が担い、初稿の実装とテスト作成をエージェントに任せる。
  • 性能や挙動は必ず実測・再現で検証し、数値で採否を判断する。
  • 未解決の論点を隠さず、レビュー可能な形で明文化する。

ベンチマークやテストが整った領域ほど、この型は効きます。生成の速さより、検証と責任の設計が成果を分けます。

見落としてはいけない但し書き

一方で、カバーレター自体が慎重な留保を含みます。断定を避けるため、そのまま挙げます。

  • 解放を遅らせる方式はメモリを占有し続けるため、Torvalds氏は「この一連で最も未解決の部分」と認めています。
  • 未マップのユーザーページへの読み出しは、約4,150→約6,550サイクルと遅くなる回帰があります。
  • 2GiBのストレス試験では、構成によってOOM killer(メモリ枯渇時の強制終了)が動く場合があったとされます。
  • 計測は前述の1台のみで、まだマージされておらず、メンテナの査読待ちです。

「AIがLinuxを3倍速くした」という要約は、こうした条件を落としています。パッチに最終的な責任を負うのは提出者であり、Torvalds氏はその使用を自ら申告しました。利便性の裏で、検証と責任の所在をどう設計するかという論点も、あわせて指摘されています。

参照: It's FOSS / Hardware Busters / Startup Fortune / PBX Science / BigGo Finance