5.4.7. カーネル

サブセクションのメモリーホットプラグが完全にサポートされるようになりました。

以前のリリースでは、デュアルインラインモジュール (DIMM) やインターリーブなど、調整された物理メモリー領域が 64MiB メモリー境界に設定されているものがありました。ただし、Linux ホットプラグサブシステムは 128MiB のメモリーサイズを使用するため、新しいデバイスをホットプラグすると、複数のメモリー領域が 1 つのホットプラグメモリーウィンドウに重なっていました。そのため、以下または同様の呼び出しトレースの、利用可能な永続メモリー名前空間を一覧表示できませんでした。

WARNING: CPU: 38 PID: 928 at arch/x86/mm/init_64.c:850
add_pages+0x5c/0x60
    [..]
    RIP: 0010:add_pages+0x5c/0x60
    [..]
    Call Trace:
     devm_memremap_pages+0x460/0x6e0
     pmem_attach_disk+0x29e/0x680 [nd_pmem]
     ? nd_dax_probe+0xfc/0x120 [libnvdimm]
     nvdimm_bus_probe+0x66/0x160 [libnvdimm]

今回の更新で問題が修正され、複数のメモリー領域が単一のホットプラグメモリーウィンドウを共有できるように Linux ホットプラグサブシステムをサポートするようになりました。

(BZ#1724969)

データの破損の場合、WARN メッセージではなく BUG がトリガーされるようになりました。

今回の機能強化により、lib/list_debug.c でリストが破損すると、BUG がトリガーされ、vmcore でレポートが生成されるようになりました。以前は、データの破損に遭遇すると、単純な WARN が生成されていましたが、これは見過ごされやすいものでした。CONFIG_BUG_ON_DATA_CORRUPTION を設定することで、カーネルがデータ破損に反応して、クラッシュを作成し、BUG をトリガーするようになりました。これにより、さらなる損傷が回避され、セキュリティーリスクが低減されます。kdumpvmcore を生成するようになり、データ破損のバグレポートが改善されました。

(BZ#1714330)

Intel Carlsville カードのサポートが追加されましたが、RHEL 8.2 で検証されていません。

Intel Carlsville カードのサポートを利用できるようになりましたが、Red Hat Enterprise Linux 8.2 でテストされていません。

(BZ#1720227)

RPSおよびXPSが孤立したCPUにジョブを配置しなくなる

従来は、RPS(Receive Packet Steering)ソフトウェアキュー機構とXPS(Transmit Packet Steering)送信キュー選択機構により、孤立したCPUを含むすべてのCPUセットにジョブを割り当てていました。その結果、リアルタイム環境において、遅延に敏感なワークロードがRPSやXPSのジョブが実行されているのと同じCPUを使用している場合、予期せぬ遅延の急増を引き起こす可能性がありました。今回のアップデートにより、store_rps_map()関数には、RPSの設定を目的とした孤立したCPUは含まれなくなりました。同様に、XPSの設定に使用されているカーネルドライバーは、CPUの分離を尊重しています。その結果、RPSおよびXPSは、前述のシナリオでは孤立したCPUにジョブを配置しなくなりました。 /sys/devices/pci*/net/dev/queues/rx-*/rps_cpusファイルで孤立したCPUを設定すると、次のようなエラーが表示されます。

Error: "-bash: echo:write error: Invalid argument"

しかし、/sys/devices/pci*/net/dev/queues/tx-*/xps_cpusファイルで孤立したCPUを手動で設定すると、孤立したCPUにXPSジョブが正常に割り当てられます。

なお、CPUが分離している環境でのネットワークワークロードでは、多少の性能差が生じる可能性があります。

(BZ#1867174)