検索

4.9. カーネル

download PDF

RHEL 9.1 のカーネルバージョン

Red Hat Enterprise Linux 9.1 は、カーネルバージョン 5.14.0-162 で配布されます。

(BZ#2125549)

list_lru のメモリー消費が最適化されました

内部カーネルデータ構造 list_lru は、カーネル i ノードとファイルのディレクトリーエントリーの「最近使用されていない」ステータスを追跡します。以前は、list_lru に割り当てられた構造体の数は、マウントポイント数および現在のメモリー cgroups 数に正比例していました。これらの数値は両方とも、実行中のコンテナーの数とともに増加し、メモリー消費は O(n^2) になります。この場合の n は実行中のコンテナーの数です。この更新により、システム内の list_lru のメモリー消費が O(n) に最適化されます。その結果、特に実行中のコンテナーが多数あるシステムで、ユーザーアプリケーションに十分なメモリーを使用できるようになりました。

(BZ#2013413)

BPF が Linux カーネルバージョン 5.16 にリベースされました。

Berkeley Packet Filter (BPF) 機能が Linux カーネルバージョン 5.16 にリベースされ、複数のバグ修正と機能拡張が行われました。以下は、主な変更点です。

  • 内部 BPF プログラムセクションの処理とlibbpf ユーザー空間ライブラリーの bpf_program__set_attach_target() API を合理化しました。

    bpf_program__set_attach_target() API は、BPF ベースのプログラムで BTF ベースの接続ターゲットを設定します。

  • 宣言にタグ付けできる BTF_KIND_TAG kind のサポートが追加されました。
  • bpf_get_branch_snapshot() ヘルパーのサポートが追加されました。これにより、トレースプログラムはハードウェアから最後の分岐レコード (LBR) をキャプチャできるようになります。
  • libbpf ユーザー空間ライブラリーにレガシー kprobe イベントサポートが追加されました。これにより、レガシーインターフェイスを介して kprobe トレースポイントイベントを作成できます。
  • __sk_buff ヘルパー関数を使用し、BPF 固有の構造を介してハードウェアタイムスタンプにアクセスする機能が追加されました。
  • i40e および ice ドライバーのサポートにより、AF_XDP バッファープールにおける RX バッファー割り当て用バッチインターフェイスのサポートが追加されました。
  • 最近マージされたレガシー kprobe を補完するために、libbpf ユーザー空間ライブラリーにレガシー uprobe のサポートが追加されました。
  • bpf_trace_vprintk() が可変 printk ヘルパーとして追加されました。
  • libbpf 1.0 の取り組みの一環として、より厳密な BPF プログラムセクション名の処理のために libbpf オプトインが追加されました。
  • perf RB などの特殊なマップを検索し、作成中に BTF タイプ識別子を内部的に削除するための、libbpf サポートが追加されました。
  • セット内に要素が存在するかどうかをテストする Bloomfilter BPF マップタイプが追加されました。
  • BPF からのカーネルモジュール関数呼び出しに対するサポートが追加されました。
  • ライトスケルトンでタイプレスの弱い ksym に対するサポートが追加されました。
  • BTF_KIND_DECL_TAG kind に対するサポートが追加されました。

実行中のカーネルで使用可能な BPF 機能の完全なリストの詳細については、bpftool feature コマンドを使用してください。

(BZ#2069045)

BTF データがカーネルモジュールに配置されるようになりました

BPF Type Format (BTF) は、BPF プログラムおよびマップに関連するデバッグ情報をエンコードするメタデータ形式です。以前は、カーネルモジュールの BTF データは kernel-debuginfo パッケージに格納されていました。そのため、カーネルモジュールに BTF を使用するには、対応する kernel-debuginfo パッケージをインストールする必要がありました。今回の更新により、BTF データがカーネルモジュールに直接配置されるようになりました。その結果、BTF を機能させるために追加のパッケージをインストールする必要はありません。

(BZ#2097188)

kernel-rt ソースツリーが RHEL 9.1 ツリーに更新されました。

kernel-rt ソースが更新され、最新の Red Hat Enterprise Linux カーネルソースツリーを使用するようになりました。リアルタイムパッチセットも、最新のアップストリームバージョン v5.15-rt に更新されました。これらの更新は、バグ修正および機能強化を多数提供します。

(BZ#2061574)

ARM、AMD、および Intel 64 ビットアーキテクチャーで動的プリエンプティブスケジューリングが有効になりました

RHEL 9 は、ARM、AMD および Intel 64 ビットアーキテクチャーで動的スケジューリング機能を提供します。この機能拡張により、コンパイル時ではなく、起動時または実行時にカーネルのプリエンプションモードを変更できるようになりました。/sys/kernel/debug/sched/preempt ファイルには現在の設定が含まれており、runtime の変更が可能です。

DYNAMIC_PREEMPT オプションを使用すると、起動時に preempt= 変数を nonevoluntary または full に設定できます。デフォルトは、voluntary プリエンプションです。動的プリエンプティブ処理を使用すると、デフォルトのプリエンプションモデルをオーバーライドして、スケジューリングレイテンシーを改善できます。

(BZ#2065226)

stalld がバージョン 1.17 にリベースされました

stall デーモンを提供する stalld プログラムは、Linux システムでオペレーティングシステムスレッドの枯渇状態を防ぐためのメカニズムです。このバージョンは、スレッドの枯渇状態を監視します。枯渇は、スレッドが枯渇しきい値より長く CPU 実行キューにある場合に発生します。

この stalld バージョンには、以前のバージョンからの改善とバグ修正が多数含まれています。注目すべき変更には、実行可能な停止寸前のタスクを検出する機能が含まれます。

stalld が枯渇スレッドを検出すると、プログラムはスレッドのスケジューリングクラスを SCHED_DEADLINE ポリシーに変更します。これにより、指定された CPU がスレッドを実行するためのわずかな時間がスレッドに与えられます。timeslice が使用されると、スレッドは元のスケジューリングポリシーに戻り、stalld は引き続きスレッドの状態を監視します。

(BZ#2107275)

tpm2-tools パッケージが tpm2-tools-5.2-1 バージョンにリベースされました

tpm2-tools パッケージがバージョン tpm2-tools-5.2-1 にリベースされました。このアップグレードでは、多くの重要な昨日書く古布とバグ修正が行われました。以下は、主な変更点です。

  • tpm2_createprimary および tpm2_create ツールを使用したプライマリーオブジェクト作成時の公開鍵出力に対するサポートが追加されました。
  • 公開鍵の出力形式を出力する tpm2_print ツールのサポートが追加されました。tpm2_print は、トラステッドプラットフォームモジュール (TPM) データ構造をデコードし、囲まれた要素を出力します。
  • 64 KB を超えるログを読み取る tpm2_eventlog ツールに対するサポートが追加されました。
  • セッション属性の表示と設定をサポートする tpm2_sessionconfig ツールが追加されました。

重要な変更の詳細については、 /usr/share/doc/tpm2-tools/Changelog.md ファイルを参照してください。

(BZ#2090748)

Intel E800 デバイスが iWARP および RoCE プロトコルをサポートするように

この機能拡張により、enable_iwarp および enable_roce devlink パラメーターを使用して、iWARP または RoCE プロトコルのサポートをオンまたはオフにできるようになりました。この必須機能を使用すると、いずれかのプロトコルを使用してデバイスを設定できます。Intel E800 デバイスは、同じポートで両方のプロトコルを同時にサポートしません。

特定の E800 デバイスの iWARP プロトコルを有効または無効にするには、まずカードの PCI の場所を確認します。

$ lspci | awk '/E810/ {print $1}'
44:00.0
44:00.1
$

次に、プロトコルを有効または無効にします。devlink コマンドの引数として、カードの最初のポートに pci/0000:44:00.0 を使用し、2 番目のポートに pci/0000:44:00.1 を使用できます。

$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value false cmode runtime

特定の E800 デバイスの RoCE プロトコルを有効または無効にするには、上記のようにカードの PCI の場所を確認します。次に、以下のコマンドの 1 つを使用します。

$ devlink dev param set pci/0000:44:00.0 name enable_roce value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_roce value false cmode runtime

(BZ#2096127)

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.