Linux 7.2、GPUスケジューラの新方式をリリース直前に撤回
Linux 7.2に導入されたGPUスケジューラの「公平な」新方式が、リリース数日前にリバートされる。数ヶ月をかけた改良が、たった1件のバグ報告で差し戻された。
Linux 7.2に導入されたGPUスケジューラの「公平な」新方式が、リリース数日前にリバートされる。数ヶ月をかけた改良が、たった1件のバグ報告で差し戻された。
「公平」を目指した改良が裏目に出た
Linux 7.2のDRM(Direct Rendering Manager)サブシステムに、GPUのジョブスケジューリング方式を従来のFIFO(先入れ先出し)から「FAIR」(公平)に切り替える変更が入っていた。
開発を主導したのはIgalia(イガリア)のトヴルトコ・ウルスリン(Tvrtko Ursulin)氏。LinuxカーネルのCPUスケジューラとして長く使われたCFS(Completely Fair Scheduler)の考え方をGPUの世界に持ち込む試みで、2025年半ばから十数回の改版を重ね、Steam Deck OLEDでの実機テストも経ていた。
従来のFIFOには構造的な弱点がある。先に投入されたジョブが優先されるため、重いGPUタスクがバックグラウンドで走っていると、デスクトップの描画やゲームのフレームレートが犠牲になりやすい。優先度の低いタスクが完全に飢餓状態に陥るケースすらあった。
FAIRスケジューラは、各クライアントが消費した「仮想GPU時間」を基準にジョブの実行順を決める。GPU時間を多く使ったクライアントは後回しにされ、軽いインタラクティブなアプリが割り込みやすくなる。テスト段階では、FIFOに対するリグレッションは確認されていなかった。
だが、Linux 7.2のrc(リリース候補)サイクルも終盤に差しかかった8月上旬、状況が変わる。
RX 9070 XTで「深刻なパフォーマンス低下」
あるユーザーが、AMD Radeon RX 9070 XTでの深刻な不具合をdri-develメーリングリストに報告した。
報告の内容はこうだ。GPUが 100% の負荷で持続的に使われると、フォアグラウンドのアプリケーションが約10fpsまで低下するか、完全にフリーズする。音声だけが流れ続け、KDE PlasmaのWaylandセッションがロックアップし、コンポジターを強制終了するかリブートしなければ復帰できない。
ゲーム中にスタッターが始まった場合、Alt+Tabでメニューを開くなどしてGPU負荷を下げると、即座にスタッターが止まる。この問題はGPUが飽和状態にあるときに確実に再現できるが、発生までの時間はまちまちだ。
症状はゲームに限らない。バックグラウンドでゲームを動かしながらYouTube動画を再生するだけで、デスクトップ全体がフリーズすることもあるという。
再現環境と切り分け
報告者の環境はArch Linux、AMD Ryzen 9 9950X3D、Sapphire Pulse Radeon RX 9070 XT、KDE Plasma 6.4(Wayland)、Mesa 26.1.6。再現タイトルはProton経由のProject Silverfish。MangoHudではフレームタイムの異常は検出されず、GPU飽和時の挙動としてのみ発現する。
切り分けも明確だった。報告者はカーネルビルドのバイセクションで原因コミットを特定し、gpu_sched.sched_policy=1(FIFO)に手動で戻すと症状が消えることを確認している。
7.2がリリースサイクルの終盤にあり、かつ77a6809f1d3がFIFO/RRの実行時選択を削除しているため、影響を受けるシステムには現時点で回避策がない。
報告者は「FAIRをデフォルトにしたことの正当化にはFIFO/RRに対するリグレッションがないことが含まれていたが、この報告は少なくとも1つの反例を示している」とも指摘した。冷静な切り分けと論理的な問題提起だった。
2025年半ば FAIRスケジューラ開発開始 CFSの設計思想をGPUスケジューリングに応用する試み 2025年10月 RFCフェーズを卒業 Steam Deck OLEDでの実機テストで良好な結果を確認 2026年5月 Linux 7.2にFAIRポリシーをマージ DRMスケジューラのデフォルトをFIFOからFAIRに変更 2026年8月8日 RX 9070 XTでフリーズの報告 GPU負荷100%で約10fpsまで低下。KDE Plasmaがロックアップ 2026年8月9日 Linux 7.2-rc7リリース stable版リリースまで残り約1週間 2026年8月11日 20件のリバートパッチ投稿 FAIRスケジューラ関連の変更を全面巻き戻し 2026年8月17日 stable版リリース予定 FAIRの再導入はLinux 7.3以降に持ち越し |
20パッチでリバート、安全策を選択
ウルスリン氏は報告を受け、現地時間8月11日に20件のリバートパッチをdri-develに投稿した。FAIRスケジューラ関連の変更をすべて巻き戻し、デフォルトをFIFOに戻す内容だ。
パッチの冒頭で、ウルスリン氏はこう書いている。ローカル環境では再現できていないが、部分的な修正は可能かもしれない、と。しかし安定版リリースまで1週間を切っている状況では、調査と修正に十分な時間がない。安全策としてリバートを選んだ。
rc7が現地時間8月9日にリリースされ、stable版は8月17日前後に予定されている。この日程を考えれば、リバートは合理的な判断だ。Linuxカーネルの開発プロセスにはno-regressions(既存の動作を壊さない)という鉄則がある。新機能がどれだけ優れていても、既存の動作を壊すなら差し戻す。この原則がまさに機能した形になる。
FAIRスケジューラの設計思想は正しかった
今回の件で、FAIRスケジューラの設計そのものが否定されたわけじゃない。
FIFOの問題点は長年知られていた。GPUを独占する重いクライアントがいると、デスクトップのインタラクティブな応答が犠牲になる。Steam Deckのようなデバイスでは、ゲームとシステムUIがGPU時間を奪い合う構造が日常的に発生する。FAIRスケジューラはその問題に対して、理論的にも実験的にも有効な解を示していた。
Igaliaのブログに掲載されたテスト結果では、GPU負荷 75% の重いクライアントとインタラクティブなクライアントが競合するシナリオで、FIFOに比べてインタラクティブ側のフレームレートが大幅に向上している。GPUを完全に独占しようとするクライアントがいても、軽いタスクに一定のGPU時間を確保できることが示されていた。
FIFOでは低優先度のクライアントが完全に飢餓状態に陥るが、FAIRスケジューラではGPU時間の分配が均等に近づき、優先度の低いタスクも緩やかに進行する。
問題は、ディスクリートGPUでの高負荷シナリオに固有の何かが潜んでいた可能性だ。テストの中心がSteam Deck OLED(AMD統合GPU)だったことを考えると、ディスクリートGPUであるRX 9070 XTのAMDGPUドライバとの相互作用に、テストが拾いきれなかった挙動があったのかもしれない。
リグレッション報告が機能した
この一件で、Linuxカーネル開発のリグレッション報告プロセスが健全に回っていることがわかる。
ユーザーが問題を見つけ、バイセクションで原因を特定し、メーリングリストに報告する。開発者がそれを受けてリバートを決断し、安定版リリースに間に合わせる。派手さはないが、この一連の流れが週末をまたいで数日で完結した。
ウルスリン氏は「さらなるデバッグが必要で、おそらく安定版リリース後に休暇を取ってから取り組む」とも述べている。リバートは次のサイクルに向けた戦略的な後退だ。
FAIRスケジューラがLinux 7.3で再び姿を現すかどうかは、原因の特定と修正にかかっている。数ヶ月の開発が1件の報告で差し戻される。ユーザーの環境を壊さないという約束が、それだけ重い。
関連記事
- Valve開発者、LinuxのVRAM管理を根本から修正
- Valve開発者の旧GPU改善、Linux 7.3でカーネルに到達
- Linuxカーネル、削っても膨らむ4000万行の壁
- Radeon HD 7870 XT、14年目のLinux対応
- AMD、RDNA 5のディスプレイエンジンをLinuxドライバに初投入
- Rust製X11サーバーyserver 1.4。SteamとChromeがGPU加速に対応
- Valve出資でRADVのWindows移植が始動。CS2の動作に成功
- Ubuntu次回カーネル更新、AMD GPUに最大42倍の性能低下
- Linux 7.2-rc1公開。6年越しの安全対策が完了
- Phoronix22周年が映すLinuxの22年間