「Linux 7.2」リリース ─ キャッシュを考慮したタスクスケジューリングを導入

USB4STREAMやdm-inlinecryptを追加、Btrfsではlarge folioを標準で有効化

8月17日 23:09

 Linux kernelの最新版、「Linux 7.2」が8月16日付(現地時間)でリリースされた。

 「Linux 7.2」は、キャッシュを考慮したタスクスケジューリング、メモリ回収およびスワップ処理の改善、USB4ケーブルを介してデータを転送するUSB4STREAM、新しいインライン暗号化ターゲット「dm-inlinecrypt」などを導入したメインラインリリース。BtrfsやRustサポート、グラフィックスドライバなどについても多数の変更が行われている。

 「Linux 7.2」のハイライトは次の通り。

〇キャッシュを考慮したタスクのロードバランシングを導入
〇MGLRUのメモリ回収処理とdirty writeback処理を改善
〇スワップメタデータ管理を再設計する「Swap Table Phase IV」を導入
〇USB4ケーブルでデータストリームを直接転送するUSB4STREAMに対応
〇Btrfsでlarge folioを標準で有効化
〇Btrfsで最大2MiBのhuge folioを実験的にサポート
〇Btrfsにファイル範囲のチェックサムを取得する「GET_CSUMS」ioctlを追加
〇インラインブロックデバイス暗号化用の「dm-inlinecrypt」ターゲットを追加
〇openat2に通常ファイル以外を拒否する「OPENAT2_REGULAR」フラグを追加
〇openatおよびopenat2に空のパスを受け入れる「O_EMPTYPATH」フラグを追加
〇「/proc/filesystems」と「/proc/interrupts」の読み取り処理を高速化
〇sched_extでサブスケジューラを導入するための基盤を追加
〇AMDGPUでHDMI 2.1 FRLおよびDCN 4.2.1を初期サポート
〇Intel XeドライバでCRIプラットフォームを初期サポート
〇Rustでsoftware tag-based KASANやAutoFDOに対応
〇Rust用のzerocopy-deriveクレートを導入
〇カーネル内部からstrncpy()を削除
など。

 今回導入されたキャッシュ対応スケジューリングでは、データを共有する同一プロセスのスレッドなどを、同じLLC(Last Level Cache)ドメイン内へ配置するようロードバランシングを行う。キャッシュ間でのデータ移動やキャッシュミスを減らし、データアクセス効率を改善することを目的としている。

 メモリ管理では、MGLRUのメモリ回収ループやdirty writeback処理を整理したほか、匿名メモリと共有メモリのスワップ割り当ておよび課金処理をfolio単位で統合した。スワップ用の静的メタデータも削減され、1TBのスワップデバイスをマウントする場合では約512MBのメモリを節約できるという。

 Btrfsでは、Linux 6.17から実験的に提供されていたlarge folioが標準で有効化された。最大2MiBのhuge folioについても実験的な対応が加わったほか、シーケンシャル書き込みやダイレクトI/Oの性能改善、チェックサムをユーザー空間から取得するGET_CSUMS ioctlの追加などが行われている。

 「Linux 7.2」は、gitもしくはkernel.orgからソースコードを入手できる。

(川原 龍人/びぎねっと)

[関連リンク]
LKMLの投稿
Linux 7.2 changes

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored