
2026/08/21 0:46
Linux 7.2
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Linux カーネルバージョン7.2 が予定通りに公式リリースされ、史上最も活発な開発サイクルの1つとなり、頻繁なメジャーアップデートへのシフトを示しています。このリリースでは、スケジューリング効率、電力管理、広範なハードウェアサポートにおける大幅な進歩に加え、多数の一般的なバグ修正が実装されています。目立つ技術的ブレークスルーとしては、futex システムコール内の14年間のデータ破損問題への対応、AMD グラフィックカード向けの HDMI 2.1 Fixed Rate Link の初期サポートの実施、および BPF スケジューラに対して CPU ステータスと ID を公開することで sched_ext の観測可能性を向上させた点が挙げられます。主要な成果には、キャッシュ感知型スケジューリング、MGLRU の改善、sched_ext 向けのサブスケジューラ、および複数サイズ透明巨大ページの自動作成が含まれます。電力管理に関する点では、Raspberry Pi 4 および 5 の GPU 向けに Runtime Power Management が採用され、アイドル時に GPU クロックを無効化する機能が実現されました。RetroPie ユーザー向けには、Raspberry Pi 3 の GPU ドライバーにおける2件の長年のバグが修正され、タイルメモリ処理に関連するランダムなハングやクラッシュが解消されました。また、Pi 4 および 5 向けの GPU リセット修正も実装され、信頼性が向上しました。ただし、開発後期に発生した退行により、新しい公平スケジューリングポリシーをデフォルトで有効にするのが不可能となり、現在ではオプションの状態が続いています。デフォルトの DRM スケジューラーポリシーは、次回リリースで修正が再有効化するまで、先着順(FIFO)として維持されています。Igalia はこれらの分野全体で顕著な貢献を行い、特に DRM スケジューラーの公平ポリシーおよび初期 HDMI 2.1 の実装に関わっています。このサイクルでは、他にも ueagle-atm ドライバーへの修正や x86 ブート時の memcmp() インラインアセンブリの正しさに関する修正など、様々な課題にも取り組まれました。
本文
Linux カーネル 7.2 リリースノート(Igalia 寄稿まとめ)
Linux カーネル 7.2 が正式リリースされました。本記事は Igalia の貢献をまとめたものです。
概要と主要成果物
- リリース情報
- 通常スケジュールに基づき、今週にタグ付けされ正式リリースされました。
- この開発サイクルは過去で最も忙しかったものの一つであり、6.7 を凌駕する活躍ぶりでした。
- 特にバグ修正(フィックス)に関する面で非常に忙しいものでした。
- 主な技術的進歩
Igalia の貢献ハイライト
1. DRM スケジューラーの公平ポリシー(Fair Policy)
- 目的:複数のクライアントが GPU を共有するシナリオや、インタラクティブなタスクと高負荷タスクが競合する場合に性能向上を図る。
- 現状:リリース直前の 7.2-rc7 で重大なリグレッションが発覚したため、現時点ではオプションとして有効にする必要があります。
- ※デフォルトスケジューラーは依然として「先着順(FIFO)」のままです。
- 今後の展開:修正策が確認されており早期テストも良好のため、次のカーネルリリースで再有効化される予定です。
2. sched_ext の改良
- 可観測性とデバッグの向上
- カスタムスケジューラーがランタイムエラー(例:スケジューリング失敗が 30 秒以上続く)に直面した際、カーネルはスレッドを中断しデフォルトスケジューラーへロールバックします。
- CPU ダンプ処理の最適化
- エラー発生時における CPU 状態のダンプ(dump)機能を実装。
- 課題:コア数が多いシステムでは、カーネル空間とユーザースペース間のバッファサイズ制限によりダンプが切断される恐れがありました。
- 解決策:エラーを発端とした CPU(Exit CPU)を優先的に処理し、BPF スケジューラーやユーザースペースツールに対しその CPU ID を直接提供できるようにしました。
3. Raspberry Pi GPU のパワー管理機能追加
- Runtime Power Management (RPM) の実装(Pi 4 および Pi 5)
- 以前:V3D ドライバーはプローブ時に GPU クロックを有効化し、全ライフタイム維持していたため、アイドル時でも電力を消費していました。
- 現在:実際に作業処理中のみ電源供給。アイドル時はクロック無効化により消費電力削減が可能になりました。
- Retropie 向け古くからのバグ修正(Pi 3)
- GPU がフレーム処理中にメモリ不足に陥った際のタイルメモリー処理に関するバグを修正。
- グラフィックスジョブは各自のメモリ領域のみ書き込み、再利用メモリは使用前にクリアされる仕組みに変更。
- 効果:陳腐化または破損したデータが GPU に到達するのを防ぎ、メニューナビゲーション時のシステムクラッシュを解消しました。
- GPU リセット機能の修正(Pi 4 および Pi 5)
- リセットプロセスの信頼性と一貫性を向上させました。
4. futex と一般的なバグ修正
- futex の改善
- 14 年ぶりのバグ(データの腐敗を引き起こすエッジケースにおける robust list メカニズムへの影響)に対して、解決策の実装に貢献しました。
- ueagle-atm ドライバーの修正
- デバイスプローブおよび DISCONNECT 時に
を介した kernfs の作成と削除操作間に発生していたレース条件を修正(syzbot で多数報告されていた問題)。request_firmware API
- デバイスプローブおよび DISCONNECT 時に
- x86 ブート時バグの防止
のインラインアセンブリ実装の正当性向上。memcmp()- コンパイラ最適化および指令列の再順序化による微妙なバグを防ぐため、
やvolatile
を追加しました。clobbers
5. HDMI 2.1 のサポート強化
- FRL (Fixed Rate Link) サポートの実装
- AMD に在籍していた Rodrigo Siqueira の活動に基づき、amdgpu ドライバーが HDMI 2.1 モニターと通信する初期サポートを実現。
- 数年にわたり主幹ソースコードの統合を妨げられていましたが、最終的に統合されました。
- 元々のコードを維持しつつ、他の部分は再構築しています。
執筆者一覧(82 名)
主な貢献者は以下の通りです:
- André Almeida
- futex: robust list に対するレース条件に関する注釈追加
- selftests: futex robust リリース操作向けのテスト追加
- Changwoo Min
- sched_ext:
からscx_dump_state()
を抽出scx_dump_cpu() - sched_ext: Exit CPU を優先的にダンプ処理し、BPF/ユーザースペースに公開
- sched_ext:
- Helen Koike
- fs/ntfs3: 名前変更失敗時に関数
を呼ぶ修正_ntfs_bad_inode() - tipc:
内の無限ループ修正__tipc_nl_compat_dumpit
- fs/ntfs3: 名前変更失敗時に関数
- John Harrison
- drm/connector/hdmi: バウンド外へのメモリ読み取りの修正
- Jose Maria Casanova Crespo
- drm/vc4: BPOS に対してオーバーフロースロットサイズを提供(BIN BO の全体サイズではなく)
- Mauricio Faria de Oliveira
- usb: atm: ueagle-atm: デバイス検出メッセージに
を使用dev_dbg() - x86/boot:
にmemcmp()
,volatile
、ゼロ長テステスを追加clobbers
- usb: atm: ueagle-atm: デバイス検出メッセージに
- Maíra Canal
- drm/vc4:
を使用して自動クリーンアップを実現devm_request_irq() - drm/v3d: Runtime Power Management の導入、MMU TLB/キャッシュフラッシュの強化
- drm/vc4/v3d: 各種リソース確保、エラーハンドリング、BIN ジョブ初期化の修正
- drm/vc4:
- Thadeu Lima de Souza Cascardo
- drm/amdgpu: irq.lock スピンロックの初期化タイミングを早期化
- Tvrtko Ursulin
- dma-fence, drm/sched に関する多数の機能追加(公平ポリシー、キュー管理統合など)
- 多岐にわたるドライバの修正およびテストケースの追加
審議者一覧(74 名)
主要なコードレビュー担当者:
- André Almeida, Changwoo Min
- futex/sched_ext: コード構造の見直し、API デフィニションの提供、ヘッダー再配置など。
- Christian Gmeiner
- drm/etnaviv:
関連の変更。drm_sched_init_args
- drm/etnaviv:
- Iago Toral Quiroga, Luis Henriques, Melissa Wen, Maíra Canal, Tvrtko Ursulin
- ドライバ(vc4, v3d, amdgpu, i915 など)のメモリ管理、電源管理、セキュリティパッチ(nospec 等)、テストケースの承認・修正。
承認者一覧(13 名)
最終承認を行ったコミッター:
- Maíra Canal
- drm: スケーリングユニットテスト内の意図的な警告バックトレース抑制。
- Melissa Wen
- drm/v3d:
関連の変更の承認。drm_sched_init_args
- drm/v3d:
- Thadeu Lima de Souza Cascardo, Tvrtko Ursulin
- platform/x86: classmate-laptop ドライバーの除去・統合、メモリリーク対策、ヘルパー関数の改名などの承認。
- Revert: drm/i915 依存関係変更の撤回承認。
メンテナー SoB(5 件)
- Christian Gmeiner
- drm/etnaviv:
の使用。kzalloc_flex
- drm/etnaviv:
- Maíra Canal, Melissa Wen, Thadeu Lima de Souza Cascardo, Tvrtko Ursulin
- ドライバの安定化、メモリ管理の強化、テストケースの修正などの承認。