Linux 7.2リリース。キャッシュを理解するCPUスケジューラが到着
Linux 7.2が予定通り公開された。目玉はCPUスケジューラがキャッシュ構造を理解するCache Aware Scheduling。リリース直前まで膨らみ続けたパッチの波と、壊れたコードを差し戻す判断の両方が、いまのカーネル開発を映している。
Linux 7.2が予定通り公開された。目玉はCPUスケジューラがキャッシュ構造を理解するCache Aware Scheduling。リリース直前まで膨らみ続けたパッチの波と、壊れたコードを差し戻す判断の両方が、いまのカーネル開発を映している。
Cache Aware Schedulingが本線に入った
Linux 7.2の新機能で、最も多くのユーザーに影響するのはCache Aware Scheduling(CAS、キャッシュ認識スケジューリング)だ。
これまでのLinuxのタスクスケジューラは、CPUコア間で負荷を分散する際に、キャッシュの物理的な構造をほとんど考慮していなかった。コアAで動いていたタスクがコアBに移されると、コアAのキャッシュに残っていたデータは使えなくなる。メインメモリから読み直す分だけ遅くなる。これがキャッシュミスであり、マルチコアCPUでは日常的に発生している。
CASは、データを共有するタスク同士を、ラストレベルキャッシュ(ほとんどの場合L3)を共有するコア群にまとめて配置する。キャッシュにあるデータを再利用できる確率が上がり、メインメモリへのアクセスが減る。
Intel主導で1年以上かけて開発され、AMDのEPYC Genoa(ジェノア)ではChaCha20暗号処理のスループットが44%向上したベンチマーク結果が報告されている。IntelのSapphire Rapids(サファイアラピッズ)でも、レイテンシ重視のワークロードで最大30%の高速化が確認されている。サーバーだけの話ではない。複数のアプリケーションを同時に動かすデスクトップ環境でも、体感できる違いが出る可能性がある。
Windowsは2015年(Windows 10)からキャッシュ認識スケジューリングを実装している。Linuxがこの領域で追いついた形だ。
リリース直前の外科手術
Linux 7.2のリリースサイクルを振り返ると、後半は慌ただしかった。
rc6が「ここ数年で最大のrc6」と報告され、rc7も400件超の修正を含む大型リリース候補になった。安定版リリースの直前には、GPUスケジューラの変更も差し戻されている。
DRM(Direct Rendering Manager)のスケジューリング方式をFIFO(先入れ先出し)から「FAIR」(公平)に切り替える変更が入っていたが、Radeon RX 9070 XTでフリーズやフレームレート低下が発生し、リリース直前に全面リバートされた。修正パッチはすでに投稿されており、Linux 7.3での再導入が見込まれている。
トーバルズ氏はリリースメールで、この判断についてこう述べている。
見栄えは良くないかもしれないが、「ああ、あのコードは準備不足で問題を起こした」という状況に対処するには正しいやり方だ。彼らはまた後で挑戦するだろう
「遅らせたら永遠にリリースできない」
Linux 7.2のリリース最終週は、またしても予想以上のパッチ量だった。
トーバルズ氏はメーリングリストで率直に書いた。「リリース最終週がもう一度、望んでいたより大きくなった」。そして、この状況を「new normal」(新しい日常)と呼び、「これを理由にリリースを遅らせたら、おそらく永遠にリリースできない」と続けた。
この「new normal」は、AIツールがカーネルコードをレビューし、人が見落としていたバグを次々に掘り起こしている状況を指す。rc7の時点でトーバルズ氏は、修正の多くが「各種AIツールによるレビューに起因している」と名指ししていた。OMG! Ubuntuが報じたLWNの分析では、7.2のコミットの約5%にassisted-byタグが付いている。AIの関与を示すこのタグは、Linux 7.0で導入されたcoding-assistants.rstの規定に基づくものだ。
パッチの波が止まらない中でも、トーバルズ氏はリリースを遅らせなかった。壊れたコードはリバートで対処し、完璧を待たずに出す。時間ベースのリリースサイクルが定着して20年以上。その規律と、no-regressions(既存の動作を壊さない)の原則が、AIの時代にも揺らいでいない。
消えたもの、加わったもの
Linux 7.2では、AppleTalk(Appleが1980年代に開発したネットワークプロトコル)と、ISA・PCMCIAバスのARCnetドライバのサポートが終了した。i486 CPUエミュレーションの1万3000行超のコードも削除されている。1982年発売のHerculesグラフィックカードドライバも姿を消した。使っている人がいたら、Linux 7.1以前を起動すればいい。
新しいハードウェアへの対応も進んでいる。Apple M3チップの初期サポートが入り、M3搭載MacでLinuxを動かす道が開けた。AMDのGPUドライバではHDMI 2.1 FRL(Fixed Rate Link)対応が加わり、IntelのArc B390ではグラフィックス性能が改善された。次世代チップ(AMD Zen 6、Intel、NVIDIA)の準備も含まれている。
| 変更 | 内容 |
|---|---|
| 新機能 | |
| CAS | キャッシュ認識で配置最適化 |
| Apple M3 | 起動可能に(初期段階) |
| HDMI 2.1対応 | AMDのGPUドライバに追加 |
| USB4STREAM | USB4上のリアルタイム転送 |
| Arc B390 | グラフィックス性能改善 |
| 削除 | |
| AppleTalk | 1980年代のネットワーク規格 |
| i486 | 1万3000行超のコードを削除 |
| Hercules | 1982年発売のGPUドライバ |
| 差し戻し | |
| DRM FAIR | GPUスケジューラをFIFOに戻す |
Intel開発のUSB4STREAMプロトコルも統合された。USB4上でリアルタイムの等時性ストリームを扱うための仕組みで、オーディオ・ビデオ機器のUSB4接続を支える基盤になる。
マージウィンドウ中のコントリビューターは2,100人を超え、カーネルのコードベースは4,300万行を突破した。
7.3が始まる
Linux 7.2のリリースメールの末尾で、トーバルズ氏は翌日に7.3のマージウィンドウが開くことを告げた。プルリクエストはすでに40件待ちだという。
一般ユーザーが7.2のカーネルを手にするのは、もう少し先になる。CanonicalやRed Hatなど各ディストリビューションが自社のリリースサイクルに合わせて配布する。Ubuntu 26.10には7.2が搭載される見込みだ。安定性を重視するディストリビューション(Debian安定版など)では、このバージョンが直接採用されることはなく、セキュリティ修正だけがバックポートされる。
カーネルのリリースサイクルは約9週間。7.3のマージウィンドウには、FAIRスケジューラの修正版、AMD RDNA 5のディスプレイエンジン対応、デスクトップ向けオーバークロック機能など、すでに複数の注目機能が控えている。
関連記事
- Linux 7.2最終RC、AIが生む修正の波は止まらない
- LinuxカーネルのstagingがLLMパッチを自動拒否へ。例外はセキュリティ修正のみ
- Linux 7.2-rc5公開。パッチ量は膨張、中身は平穏
- Linux 7.1-rc3公開、カーネル肥大は「新常態」だ
- LLMがコードを突き始めた。Linuxカーネル、27年前のドライバーを削除
- Debian、LLM利用の全面禁止か条件付き容認かを正式投票へ
- LinuxカーネルCVE、2日で432件公開の衝撃
- GNOME、セキュリティ開示を90日から30日に短縮
- 1991年のLinuxカーネルをRustで書き直した大学生の話
- Linuxカーネル、AI帰属タグの廃止を議論。マージから3ヶ月