4.8. 内核
RHEL 9.2 中的内核版本
Red Hat Enterprise Linux 9.2 与内核版本 5.14.0-284.11.1 一起分发。
64k 页大小内核现在可用
除了支持 4k 页的 ARM 内核的 RHEL 9 外,红帽现在还提供了支持 64k 页的可选内核软件包: kernel-64k
。
64k 页大小内核是 ARM 平台上大型数据集的一个有用的选项。它为某些类型内存和 CPU 密集型操作启用了更好的性能。
您必须在安装时在 64 位 ARM 架构系统上选择页大小。您只能通过将 kernel-64k
软件包添加到 Kickstart
文件中的软件包列表来通过 Kickstart 安装 kernel-64k
。
有关安装 kernel-64k
的更多信息,请参阅 自动安装 RHEL。
Bugzilla:2153073
启用了对 kexec-tools
的 virtiofs
支持
此增强通过引入新选项为 kexec-tools
添加了 virtiofs
功能,virtiofs myfs
,其中 myfs
是 qemu
命令行中设置的变量标签名称,例如 -device vhost-user-fs-pci,tag=myfs
virtiofs
文件系统实现一个驱动程序,其允许客户机挂载已在主机上导出的目录。通过使用此增强,您可以将虚拟机的 vmcore
转储文件保存到:
-
virtiofs
共享目录。 -
子目录(如
/var/crash
),当根文件系统是virtiofs
共享目录时。 -
不同的
virtiofs
共享目录,当虚拟机的根文件系统是virtiofs
共享目录时。
kexec-tools
软件包现在对远程 kdump
目标添加了改进
有了此增强,kexec-tools
软件包添加了重要的 bug 修复和增强。最显著的变化包括:
-
通过只启用所需的网络接口来为
kdump
优化内存消耗。 在连接超时失败时,改进了
kdump
的网络效率。网络建立的默认等待时间为最多 10 分钟。这消除了传递
dracut
参数的需要,如rd.net.timeout.carrier
或rd.net.timeout.dhcp
,来作为识别载体的一种临时解决方案。
BPF rebase 到版本 6.0
Berkeley Packet Filter (BPF)工具已 rebase 至具有多个增强的 Linux 内核版本 6.0。此更新使启用了所有依赖于 BPF 类型格式(BTF)的 BPF 功能。这些功能包括使用 BPF trampolines 进行追踪、Compile Once - Run Everywhere (CO-RE)机制的可用性以及几个与网络相关的功能。另外,内核模块现在包含调试信息,这意味着您不再需要安装 debuginfo
软件包来检查正在运行的模块。
有关在运行的内核中可用的 BPF 功能的完整列表,请使用 bpftool feature
命令。
Jira:RHELPLAN-133650
rtla
meta-tool 添加了 osnoise
和 timerlat
追踪程序,以提高追踪能力
Real-Time Linux Analysis (rtla
)是一个 meta-tool,其中包含一组用于分析 Linux 实时属性的命令。rtla
利用内核追踪功能来提供有关意外系统结果的属性和根本原因的确切信息。rtla
目前添加了对 osnoise
和 timerlat
追踪程序命令的支持:
-
osnoise
追踪程序报告有关操作系统噪声的信息。 -
timerlat
追踪程序会在计时器 IRQ 处理程序和线程处理程序中定期打印计时器延迟。
请注意,要使用 rtla
的 timerlat
功能,您必须使用 sysctl -w kernel.sched_rt_runtime_us=-1
脚本禁用准入控制。
Bugzilla:2075216
Tuna 的 argparse
模块现在支持配置 CPU 套接字
有了这个增强,当有多个 CPU 套接字时,您可以指定特定的 CPU 套接字。您可以在子命令上使用 -h
来查看帮助用法,例如 tuna show_threads -h
。
要配置特定的 CPU 套接字,请对每个需要使用 CPU 套接字的 tuna
命令指定 -S
选项:
tuna <command> [-S CPU_SOCKET_LIST]
例如,使用 tuna show_threads -S 2,3
查看线程或使用 tuna show_irqs -S 2,3
查看附加的中断请求(IRQ)。
因此,这个增强有助于基于 CPU 套接字的 CPU 使用率,而无需单独指定每个 CPU。
Tuna 中 cgroups
和 irqs
的输出格式已被改进,以提供更好的可读性
有了这个增强,cgroup
工具的 tuna show_threads
命令输出现在根据终端大小进行构建。您还可以通过向 show_threads
命令添加新的 -z
或 --spaced
选项,将额外的空格配置到 cgroups
输出。
因此,cgroups
输出现在有一个改进的适合您终端大小的可读格式。
向 tuna
工具中实时添加了一个新的命令行界面
此增强向 tuna
工具添加了一个新的命令行界面,该工具基于 argparse
解析模块。有了这个更新,您可以执行以下任务:
- 更改应用程序和内核线程的属性。
- 根据名称或号对中断请求(IRQ)进行操作。
- 使用进程标识符对任务或线程进行操作。
- 使用 CPU 或套接字号指定 CPU 和 CPU 集。
通过使用 tuna -h
命令,您可以打印命令行参数及其相应的选项。对于每个命令,您可以使用 tuna < <command> -h
命令查看可选的参数。
因此,tuna
现在提供了一个界面,它有一个比命令行界面更容易使用和维护的命令和选项的标准化菜单。
rteval
命令输出现在包括程序加载和测量线程信息
rteval
命令现在显示带有程序负载、测量线程以及运行这些线程的相应 CPU 的报告概述。这些信息有助于评估特定硬件平台上负载下实时内核的性能。
rteval
报告被写入 XML 文件,以及系统的引导日志,并保存到 rteval-<date>-N-tar.bz2
压缩文件中。date
指定报告生成的日期,N
是第 N 次运行的计数器。
要生成 rteval
报告,请输入以下命令:
# rteval --summarize rteval-<date>-N.tar.bz2
在 oslat
程序中添加了 -W
和 --bucket-width
选项来测量延迟
有了这个增强,您可以以纳秒的精度为单个存储桶指定延迟范围。不是 1000 纳秒倍数的 Widths 表示纳秒的精度。通过使用新选项 -W
或 --bucket-width
,您可以修改存储桶之间的延迟间隔,以便在微秒延迟时间内测量延迟。
例如,要在 10 秒内为 32 个存储桶设置宽度为 100 纳秒的延迟存储桶,以便在 1-4 范围的 CPU 上运行 ,并省略零存储桶大小,请运行以下命令:
# oslat -b 32 -D 10s -W 100 -z -c 1-4
请注意,在使用选项前,您必须确定与错误测量相关的哪个级别的精度非常重要。
NVMe/FC
传输协议作为 kdump
存储目标启用
kdump
机制现在提供对通过 Fibre Channel (NVMe/FC)协议作为转储目标的 Nonvolatile Memory Express (NVMe)协议的支持。有了这个更新,您可以配置 kdump
来将内核崩溃转储文件保存在 NVMe/FC 存储目标上。
因此,kdump
可以在内核崩溃而没有 timeout
或 reconnect
错误的情况下捕获并在 NVMe/FC
上保存 vmcore
文件。
有关 NVMe/FC 配置的更多信息,请参阅 管理存储设备
Bugzilla:2080110
crash-utility
工具已 rebase 至版本 8.0.2
分析活跃系统状态或在内核崩溃后分析活跃系统状态的 crash-utility
已 rebase 到版本 8.0.2。主要更改包括添加了对 multiqueue (blk-mq)
设备的支持。通过使用 dev -d
或 dev -D
命令,您可以显示 multiqueue (blk-mq)
设备的磁盘 I/O 统计信息。
openssl-ibmca
rebase 到版本 2.3.1
64 位 IBM Z 架构上的 IBMCA 的动态 OpenSSL 引擎和提供程序已 rebase 到上游版本 2.3.1。建议 RHEL 9 用户使用 OpenSSL 提供程序 来确保与 OpenSSL 的未来更新兼容。engine 功能已在 OpenSSL 版本 3 中弃用。
Bugzilla:2110378
使用客户密钥的安全客户机转储加密
这个新功能允许安全执行客户机的 hypervisor 发起的转储在 kdump
工具无法正常工作的情况下从 KVM 收集内核崩溃信息。请注意,安全执行的 hypervisor 发起的转储是为 IBM Z 系列 z16 和 LinuxONE Emperor 4 硬件设计的。
Bugzilla:2044204
ADL-S 平台上实时的 TSN 协议已启用
有了这个增强,I IEEE Time Sensitive Networking (TSN)规范允许在 Intel Alder Lake S (ADL-S)平台上通过网络启用时间同步和实时工作负载的确定性处理。它支持以下网络设备:
- 支持 TSN 的离散 2.5GbE MAC-PHY 组合:Intel® i225/i226
-
在具有来自 Marvell、Maxlinear 和涵盖 1GbE 和 2.5Gbe 的 TI 的第三方 PHY 芯片的 SOC 中的集成 2.5GbE MAC,可在选择
skus
和 SOCs 时提供。
使用 TSN 协议,您可以在嵌入式实现中管理确定性应用程序调度、抢占和准确的时间同步类型工作负载。这些实现需要专用、专门和专有的网络,而工作负载运行在标准以太网、Wi-Fi 和 5G 网络上。
因此,TSN 为以下提供改进的功能:
- 硬件:用于在 IoT 中实现实时工作负载的基于 Intel 的系统
- 确定性和时间敏感的应用程序
Bugzilla:2100606
Intel ice
驱动程序 rebase 到版本 6.0.0
Intel ice
驱动程序已升级至上游版本 6.0.0,与之前的版本相比,它提供了大量的改进和 bug 修复。主要改进包括:
-
通过以太网的点到点协议 (
PPPoE
)协议硬件卸载 -
Inter-Integrated Circuit (
I2C
) 协议写命令 -
以太网交换机设备驱动程序模型 (
switchdev
)中的 VLAN 标签协议标识符(TPID
) -
switchdev
中的双 VLAN 标记
Bugzilla:2104468
gnss
模块的写数据的选项现在可用
这个更新提供了将数据写到 gnss
接收器的选项。在以前的版本中,gnss
不能完全配置。有了这个增强,所有 gnss
功能现在都可用。
Bugzilla:2111048
为 IBM zSystems 托管安全引导证书
从 IBM z16 A02/AGZ 和 LinuxONE Rockhopper 4 LA2/AGL 开始,您可以在硬件管理控制台(HMC)上启动启用了安全引导的系统时管理用于验证 Linux 内核的证书。值得注意的是:
- 您可以使用 DPM 中的 HMC 和经典模式从 HMC 可以访问的 FTP 服务器加载系统证书存储中的证书。也可以从附加到 HMC 的 USB 设备加载证书。
- 您可以将存储在证书存储中的证书与 LPAR 分区相关联。多个证书可以与一个分区关联,一个证书可以与多个分区关联。
- 您可以使用 HMC 接口解除证书存储中的证书与分区的关联。
- 您可以从证书存储中删除证书。
- 您可以最多将 20 个证书与一个分区关联。
内置的固件证书仍然可用。特别是,当您使用用户管理的证书存储时,内置证书将不再可用。
载入到证书存储中的证书文件必须满足以下要求:
-
它们具有
PEM
或DER 编码的 X.509v3
格式,并具有以下文件扩展名之一:.pem
、.cer
、.crt
或.der
。 - 它们不会过期。
- 密钥用法属性必须是 数字签名。
- 扩展的密钥用法属性必须包含 代码签名。
固件接口允许 Linux 内核在逻辑分区中运行,以加载与此分区关联的证书。IBM Z 上的 Linux 将这些证书存储在 .platform
密钥环中,允许 Linux 内核使用与该分区关联的证书验证 kexec
内核和第三方内核模块。
操作员只负责上传验证的证书,并删除已撤销的证书。
Product Signing Keys 中提供了您需要加载到 HMC 的 Red Hat Secureboot 302
证书。
Bugzilla:2190123
zipl
支持 64 位 IBM Z 上的安全引导 IPL 和转储
使用此更新,zipl
工具支持 64 位 IBM Z 架构上Extended Count Key Data (ECKD) Direct Access Storage Devices (DASD)中的 List-Directed IPL 和 List-Directed 转储。因此,IBM Z 上 RHEL 的安全引导也适用于 DASD 的 ECKD 类型。
Bugzilla:2044200
rtla
rebase 到上游 kernel
源代码的 6.6 版本
rtla
工具已升级到最新的上游版本,其提供多个 bug 修复和增强。主要变更包括:
-
添加了
-C
选项,来为除了主rtla
线程外的rtla
线程指定要在其中运行的其他控制组。 -
添加了
--house-keeping
选项,来将rtla
线程放在内务清理 CPU 上,并将测量线程放在不同的 CPU 上。 -
添加了对
timerlat
追踪器的支持,以便您可以在用户空间中运行timerlat hist
和timerlat top
线程。
Jira:RHEL-18359