7.7. カーネル
IBM Z システムで、カーネルが誤検出の警告を返しなくなりました。
以前は、RHEL 8 の IBM Z システムに、ユーザーアクセスを許可する ZONE_DMA
メモリーゾーンの許可されるエントリーがありませんでした。したがって、カーネルは以下のような誤検出の警告を返します。
... Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLUB object 'dma-kmalloc-192' (offset 0, size 144)! WARNING: CPU: 0 PID: 8519 at mm/usercopy.c:83 usercopy_warn+0xac/0xd8 ...
sysfs
インターフェイスから特定のシステム情報にアクセスする際に警告が表示されました。たとえば、debuginfo.sh
スクリプトを実行するなどです。
今回の更新で、ユーザー空間アプリケーションがバッファーにアクセスできるように、Direct Memory Access (DMA) バッファーにフラグが追加されました。
これにより、上記のシナリオで警告メッセージが表示されなくなります。
(BZ#1660290)
RHEL システムが tboot
GRUB エントリーから期待どおりに起動する
以前は、バージョン 1.9.12-2 の tboot
ユーティリティーが原因で、Trusted Platform Module (TPM) 2.0 が有効になっている一部の RHEL システムがレガシーモードでの起動に失敗していました。その結果、tboot
Grand Unified Bootloader (GRUB) エントリーから起動しようとすると、システムが停止しました。RHEL 8 の新しいバージョンと tboot
ユーティリティーの更新により、問題が修正され、RHEL システムが期待どおりに起動します。
(BZ#1947839)
負荷の高いコンテナーシナリオでカーネルがメモリーを正常に回収
コンテナー内の I/O およびメモリーにボリュームが制約された場合、データの競合状態によりメモリーのロックアップの回収を行うカーネルコード。データ競合は、次のような場合に発生する現象です。
- 少なくとも 2 つの CPU スレッドが同じデータセットを同時に変更しようとします。
- これらの CPU スレッドのいずれかは、データセットで書き込み操作を試行します。
データセットを変更するための各スレッドの正確なタイミングをもとに、結果は A、B、または AB (無決定) になります。
コンテナーがメモリー不足の状態にあると、複数の OOM (Out of Memory) による強制終了が生じ、コンテナーがロックされ、応答しなくなりました。本リリースでは、ロックおよび最適化用の RHEL カーネルコードが更新されました。その結果、カーネルは応答しなくなり、データは競合状態に影響しなくなります。
(BZ#1860031)
メモリーがオフラインの RHEL 8 により、カーネルパニックが発生しなくなりました。
以前は、開始し、オフラインとマークされたメモリーで RHEL 8 を実行すると、カーネルが初期化されていないメモリーページにアクセスしようとする場合がありました。これにより、カーネルパニックが発生していました。今回の更新で、アイドルページ追跡のカーネルメカニズムが修正され、問題が発生しなくなりました。
(BZ#1867490)
NUMA システムでは、予期しないメモリーレイアウトが発生しなくなりました。
以前のリリースでは、CONFIG_NODES_SPAN_OTHER_NODES
オプションがないため、ARM64
および S390
アーキテクチャーでは NUMA システムで予期しないメモリーレイアウトが発生していました。そのため、異なる NUMA ノードのメモリー領域が交差し、低い NUMA ノードのメモリーリージョンが高 NUMA に追加されていました。
今回の更新により、NUMA システムはメモリーレイアウトの問題が発生しなくなりました。
(BZ#1844157)
rngd サービスが poll() システムコールでビジー状態にならない
バージョン 4.18.0-193.10 で始まるカーネル用に、FIPS モードの新しいカーネルエントロピーソースが追加されました。そのため、/dev/random
デバイスの poll()
システムコールで、rngd
サービスがビジーウェイトしていました。これにより、システムが FIPS モードにある場合に CPU 時間を 100% 消費していました。今回の更新で、FIPS モードでは、/dev/random
デバイスの poll()
ハンドラーが、特に /dev/random
デバイスに対して開発されたデフォルトのハンドラーからハンドラーに変更されました。その結果、上記のシナリオで rngd
サービスが poll()
でビジーウェイトしなくなりました。
(BZ#1884857)
SCHED_DEADLINE スケジューラーの HRTICK サポートが有効になっている
以前は、SCHED_DEADLINE
ポリシーで設定した特定のタスクでは、高解像度のシステムタイマー (HRTICK
) の機能が配置されませんでした。そのため、SCHED_DEADLINE
スケジューラーを使用するこれらのタスクのスロットリングメカニズムは、これらのタスクに設定したすべてのランタイムを使用しました。この動作により、リアルタイム環境で予期しないレイテンシーが急増していました。
今回の更新により、高解像度のプリエンプションを提供する HRTICK
機能が有効になりました。HRTICK
は高解像度タイマーを使用して、タスクがランタイムを完了するときにスロットリングメカニズムを強制します。その結果、この問題は上記のシナリオで発生しなくなりました。
(BZ#1885850)
tpm2-abrmd のバージョン 2.3.3.2 へのリベース
tpm2-abrmd
パッケージがバージョン 2.3.3.2 にアップグレードされ、バグ修正が複数追加されました。以下は、主な変更点です。
- 一時的なハンドルの使用を修正しました。
- TPM Command Transmission Interface (TCTI) での部分的な読み込みを修正しました。
- アクセスブローカーのリファクタリング
cxgb4
ドライバーにより、kdump
カーネルでクラッシュが発生しなくなる
以前のリリースでは、vmcore
ファイルに情報を保存しようとすると、kdump
カーネルがクラッシュしていました。そのため、cxgb4
ドライバーにより、kdump
カーネルが、後で分析するためにコアを保存できなくなります。この問題を回避するには、kdump
カーネルコマンドラインに novmcoredd
パラメーターを追加して、コアファイルを保存できるようにします。
RHSA-2020:1769 アドバイザリーのリリースにより、kdump
カーネルがこの状況を適切に処理し、クラッシュしなくなりました。