カーネルの「通行料」を外したら読み出しが3倍に──TorvaldsがClaude Codeに書かせた8本のパッチと、その但し書き
LinuxのTorvalds氏がClaude Codeに書かせた8本のページキャッシュ改修を公開。8スレッドの小さな読み出しが約3倍に伸びた。ただし回帰や未検証、責任の所在といった但し書きも自ら並べている。
「指揮は自分、コードは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,538 | 101 |
単一スレッドの読み出しは約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


