5.4.7. 内核
现在完全支持子部分内存热插拔
在以前的版本中,一些平台与物理内存区域一致,如 Dual In-Line Modules(DIMM)和 interleave 设置为 64MiB 内存边界。但是,由于 Linux 热插拔子系统使用 128MiB 的内存大小,热插拔新设备会导致多个内存区域在单个热插拔内存窗口中重叠。因此,这会导致使用以下或类似的调用 trace 列出可用持久内存命名空间失败:
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)
数据崩溃现在触发 BUG 而不是 WARN 消息
在这个版本中,lib /list_debug.c
列表会触发 BUG,它会生成带有 vmcore 的报告
。在以前的版本中,当遇到数据崩溃时,会生成一个简单的 WARN,这很可能不被留意。设置 CONFIG_BUG_ON_DATA_CORRUPTION
后,内核现在会创建一个崩溃并触发 BUG 来应对数据损坏。这可防止进一步损坏并降低安全风险。kdump
现在会生成 vmcore
,它可改进数据损坏错误报告。
(BZ#1714330)
提供了对 Intel Carlsville
卡的支持,但不在 RHEL 8.2 中验证
提供了 Intel Carlsville
卡支持,但不在 Red Hat Enterprise Linux 8.2 上进行测试。
(BZ#1720227)
RPS 和 XPS 不再将作业放在隔离的 CPU 中
在以前的版本中,接收数据包提取(RPS)软件队列机制和传输包服务关联(XPS)可传输在所有 CPU 集合上分配的队列选择机制,包括隔离的 CPU。因此,当对延迟敏感的工作负载使用与运行 RPS 或 XPS 作业相同的 CPU 时,可能会导致实时环境中出现意外延迟。在这个版本中,storage _rps_map()
函数不包括任何隔离的 CPU 用于 RPS 配置。同样,用于 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)