10.8. カーネル

v1 モードで net_prio または net_cls コントローラーを使用すると、cgroup-v2 階層の一部のコントローラーが非アクティブ化されます。

cgroup-v2 環境では、v1 モードで net_prio または net_cls コントローラーのいずれかを使用すると、ソケットデータの階層追跡が無効になります。その結果、ソケットデータトラッキングコントローラーの cgroup-v2 階層がアクティブにならず、dmesg コマンドは次のメッセージを報告します。

cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation

(BZ#2046396)

暗号化されたデバイスのパスフレーズを入力すると、Anaconda が失敗することがある

インストールの準備時に kdump が無効になっており、ユーザーが暗号化されたディスクのパーティション分割を選択した場合は、暗号化されたデバイスのパスフレーズを入力すると、Anaconda インストーラーはトレースバックで失敗します。

この問題を回避するには、以下のいずれかを実行します。

  • kdump を無効にする前に、暗号化されたディスクパーティションを作成します。
  • インストール中は kdump を有効にしておき、インストールプロセスが完了したら無効にします。

(BZ#2086100)

同一の crash 拡張機能を再読み込みすると、セグメンテーションフォルトが発生する場合がある

読み込み済みのクラッシュ拡張ファイルのコピーを読み込むと、セグメンテーションフォルトが発生する場合があります。現在、crash ユーティリティーは、元のファイルが読み込まれているかどうかを検出します。その結果、crash ユーティリティーに同一のファイルが 2 つ共存するため、名前空間コリジョンが発生し、クラッシュユーティリティーが起動してセグメンテーションフォルトが発生します。

この問題を回避するには、クラッシュ拡張ファイルを一度だけ読み込みます。その結果、セグメンテーションフォルトは上記のシナリオでは発生しなくなりました。

(BZ#1906482)

vmcore キャプチャーが、メモリーのホットプラグまたはアンプラグの操作を実行した後に失敗する

メモリーのホットプラグまたはホットアンプラグ操作の実行後に、メモリーのレイアウト情報を含むデバイスツリーを更新するとイベントが発生します。これにより、makedumpfile ユーティリティーは存在しない物理アドレスにアクセスしようとします。以下の条件を満たすと問題が発生します。

  • IBM Power System (little endian) で RHEL 8 を実行する。
  • システムで kdump サービスまたは fadump サービスが有効になっている。

このような場合に、メモリーホットプラグまたはホットアンプラグの操作後にカーネルクラッシュが発生すると、カーネルのキャプチャーで vmcore の保存に失敗します。

この問題を回避するには、ホットプラグまたはホットアンプラグ後に kdump サービスを再起動します。

# systemctl restart kdump.service

これにより、上記のシナリオで vmcore が正常に保存されます。

(BZ#1793389)

RHEL 8 で、デバッグカーネルがクラッシュキャプチャー環境で起動に失敗する

デバッグカーネルはメモリーを大量に消費するので、デバッグカーネルが使用中で、カーネルパニックが発生すると、問題が発生します。その結果、デバッグカーネルはキャプチャーカーネルとして起動できず、代わりにスタックトレースが生成されます。この問題を回避するには、必要に応じてクラッシュカーネルメモリーを増やします。これにより、デバッグカーネルが、クラッシュキャプチャー環境で正常に起動します。

(BZ#1659609)

起動時にクラッシュカーネルメモリーの割り当てに失敗する

一部の Ampere Altra システムでは、BIOS 設定で 32 ビットリージョンが無効になっていると、起動時にクラッシュカーネルメモリーを割り当てることに失敗します。したがって、kdump サービスが起動できません。これは、クラッシュカーネルメモリーを含むのに十分な大きさのフラグメントがない場合に、4 GB 未満のリージョンのメモリーの断片化によって生じます。

この問題を回避するには、以下のように BIOS で 32 ビットのメモリーリージョンを有効にします。

  1. システムで BIOS 設定を開きます。
  2. Chipset メニューを開きます。
  3. Memory Configuration で、Slave 32-bit オプションを有効にします。

これにより、32 ビットリージョン内のクラッシュカーネルメモリー割り当てに成功し、kdump サービスが期待どおりに機能します。

(BZ#1940674)

カーネル ACPI ドライバーは、PCIe ECAM メモリーリージョンにアクセスできないことを報告します。

ファームウェアが提供する Advanced Configuration and Power Interface (ACPI) テーブルは、PCI バスデバイスの現在のリソース設定 (_CRS) メソッドにおいて PCI バス上のメモリーリージョンを定義しません。したがって、システムの起動時に以下の警告メッセージが表示されます。

[    2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace
[    2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]

ただし、カーネルは依然として 0x30000000-0x31ffffff メモリーリージョンにアクセスできます。また、そのメモリーリージョンを PCI Enhanced Configuration Access Mechanism (ECAM) に適切に割り当てることができます。以下の出力で 256 バイトオフセットで PCIe 設定領域にアクセスして、PCI ECAM が正常に機能することを確認できます。

03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express])
 ...
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us

これにより、警告メッセージを無視します。

問題の詳細は、Firmware Bug: ECAM area mem 0x30000000-0x31ffffff not reserved in ACPI namespace" appears during system boot を参照してください。

(BZ#1868526)

tuned-adm profile powersave コマンドを使用すると、システムが応答しなくなる

tuned-adm profile powersave コマンドを実行すると、古い Thunderx (CN88xx) プロセッサーを持つ Penguin Valkyrie 2000 2 ソケットシステムが応答しなくなります。これにより、作業を再開するためシステムを再起動することになります。この問題を回避するには、システムが上記の仕様と一致する場合には powersave プロファイルの使用を避けてください。

(BZ#1609288)

HP NMI ウォッチドッグが常にクラッシュダンプを生成しない

特定に場合において、HP NMI ウォッチドッグの hpwdt ドライバーは、マスク不可割り込み (NMI) が perfmon ドライバーにより使用されたため、HPE ウォッチドッグタイマーが生成した NMI を要求できません。

欠落している NMI は、以下の 2 つの条件のいずれかによって開始されます。

  1. Integrated Lights-Out (iLO) サーバー管理ソフトウェアの NMI 生成 ボタン。このボタンはユーザーがトリガーします。
  2. hpwdt ウォッチドッグ。デフォルトでは、有効期限により NMI がサーバーに送信されます。

通常、両方のシーケンスは、システムが応答しない場合に発生します。通常、これらの状況の NMI ハンドラーは kernel panic() 関数を呼び出します。また、設定されていれば、kdump サービスが vmcore ファイルを生成します。

ただし、NMI が見つからないため、kernel panic() は呼び出されず、vmcore が収集されません。

最初のケース (1.) でシステムが応答しない場合は、その状態のままになります。このシナリオを回避するには、仮想 電源 ボタンを使用してサーバーをリセットするか、電源を切って入れ直します。

2 つ目のケース (2.) では、欠落している NMI が Automated System Recovery (ASR) からのリセットの後 9 秒後に続きます。

HPE Gen9 Server ラインでは、1 桁台の割合でこの問題が発生します。Gen10 の周波数がさらに小さくなる。

(BZ#1602962)

irqpoll を使用すると vmcore の生成に失敗します。

アマゾンウェブサービス Graviton 1 プロセッサー上で実行される 64 ビット ARM アーキテクチャー上の nvme ドライバーの既存の問題により、最初のカーネルに irqpoll カーネルコマンドラインパラメーターを指定すると、vmcore の生成が失敗します。したがって、カーネルクラッシュ時に vmcore/var/crash/ ディレクトリーにダンプされません。この問題を回避するには、以下を実行します。

  1. /etc/sysconfig/kdump ファイルの KDUMP_COMMANDLINE_REMOVE 変数に irqpoll を追加します。

    # KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
  2. /etc/sysconfig/kdump ファイルの KDUMP_COMMANDLINE_APPEND 変数から irqpoll を削除します。

    # KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
  3. kdump サービスを再起動します。

    # systemctl restart kdump

その結果、最初のカーネルが正常に起動し、カーネルクラッシュ時に vmcore がキャプチャーされることが予想されます。

Amazon Web Services Graviton 2 および Amazon Web Services Graviton 3 プロセッサーでは、/etc/sysconfig/kdump ファイルの irqpoll パラメーターを手動で削除する必要がないことに注意してください。

kdump サービスは、大量のクラッシュカーネルメモリーを使用して vmcore ファイルをダンプする可能性があります。キャプチャーカーネルには、kdump サービス用のメモリーが十分あることを確認します。

この既知の問題の関連情報は、irqpoll カーネルコマンドラインパラメーターにより、vmcore 生成エラーが発生する場合がある を参照してください。

(BZ#1654962)

仮想マシンへの仮想機能の割り当て時に接続に失敗する

ionic デバイスドライバーを使用する Pensando ネットワークカードは、VLAN タグ設定要求を許可し、ネットワーク仮想機能 (VF) を VM に割り当てる間にネットワーク接続の設定を試行します。この機能はカードのファームウェアではサポートされていないため、このようなネットワーク接続は失敗します。

(BZ#1930576)

OPEN MPI ライブラリーは、デフォルトの PML でランタイムが失敗する可能性があります。

OPEN Message Passing Interface (OPEN MPI) 実装 4.0.x シリーズでは、UCX (Unified Communication X) がデフォルトの PPL (ポイントツーポイント) です。OPEN MPI 4.0.x シリーズの新しいバージョンでは、openib Byte Transfer Layer (BTL) が非推奨になりました。

ただし、OPEN MPI は 同種 クラスター (同じハードウェアおよびソフトウェア設定) で実行される場合も、UCX は MPI openlib の一方向操作に BTL を使用します。これにより、実行エラーが発生する可能性があります。この問題を回避するには、以下を実行します。

  • 以下のパラメーターを使用して mpirun コマンドを実行します。
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0

詳細は以下のようになります。

  • -mca btl openib パラメーターは openib BTL を無効にします。
  • -mca pml ucx パラメーターは、ucx PML を使用するように OPEN MPI を設定します。
  • x UCX_NET_DEVICES= パラメーターは、指定したデバイスを使用するように UCX を制限します。

OPEN MPI は、異種 クラスター (ハードウェアおよびソフトウェア設定に異なる) を実行する場合は、デフォルトの PML として UCX を使用します。これにより、OPEN MPI ジョブが不安定なパフォーマンス、応答しない動作で実行されたり、またはクラッシュによる不具合とともに実行される可能性があります。この問題を回避するには、UCX の優先度を以下のように設定します。

  • 以下のパラメーターを使用して mpirun コマンドを実行します。
-mca pml_ucx_priority 5

これにより、OPEN MPI ライブラリーは、UCX を介して利用可能な別のトランスポート層を選択することができます。

(BZ#1866402)

Solarflare が、最大数の VF(Virtual Function) の作成に失敗する

Solarflare NIC は、リソースが十分にないため、最大数の VF の作成に失敗します。PCIe デバイスが作成できる VF の最大数は、/sys/bus/pci/devices/PCI_ID/sriov_totalvfs ファイルで確認できます。この問題を回避するには、起動時に Solarflare Boot Manager から、または Solarflare sfboot ユーティリティーの使用により、VF の数または VF MSI 割り込みの値を低い値に調整できます。デフォルトの VF MSI 割り込みの値は 8 です。

  • sfboot を使用して VF MSI 割り込み値を調整するには、以下を実行します。
# sfboot vf-msix-limit=2
注記

VF MSI 割り込みの値を調整すると、VF のパフォーマンスに影響します。

調整されるパラメーターの詳細は、Solarflare Server Adapter user guide を参照してください。

(BZ#1971506)

64 ビット ARM アーキテクチャーで kdump のメモリー割り当てが失敗する

特定の 64 ビット ARM ベースのシステムでは、ファームウェアは、分散したさまざまな場所にメモリーをランダムに予約する不連続メモリー割り当て方法を使用します。その結果、連続したメモリーブロックが利用できないため、クラッシュカーネルは kdump メカニズム用のメモリー領域を予約できません。

この問題を回避するには、RHEL 8.8 以降で提供されるカーネルバージョンをインストールしてください。RHEL の最新バージョンは、説明されているシナリオで適切なメモリー領域を見つけるのに役立つ fallback ダンプキャプチャーメカニズムをサポートしています。

(BZ#2214235)

コア数が大きいシステムのリアルタイムカーネルのハードウェア認定では、ロックの競合を回避するために skew-tick=1 ブートパラメーターを渡す必要がある場合があります。

多数のソケットとコアカウントが大きい大規模なシステムまたは中規模のシステムでは、タイムキーピングシステムで使用される xtime_lock のロック競合により、レイテンシーの急増が発生する可能性があります。その結果、レイテンシーの急増およびハードウェア認証のレイテンシーは、マルチプロセッシングシステムで発生する可能性があります。回避策として、skew_tick=1 ブートパラメーターを追加することで、CPU ごとにタイマーティックをオフセットし、別のタイミングで開始できます。

ロックの競合を回避するには、skew_tick=1 を有効にします。

  1. grubbyskew_tick=1 パラメーターを有効にします。

    # grubby --update-kernel=ALL --args="skew_tick=1"
  2. 変更を有効にするために再起動します。
  3. cat /proc/cmdline コマンドを実行して、新しい設定を確認します。

skew_tick=1 を有効にすると、消費電力が大幅に増加するため、レイテンシーの影響を受けるリアルタイムワークロードを実行している場合にのみ有効にする必要があります。

(BZ#2214508)