3.8. 内核
RHEL 9.6 中的内核版本
Red Hat Enterprise Linux 9.6 带有内核版本 5.14.0-570.12.1。
eBPF 工具已更新至 Linux 内核版本 6.12
主要变化和增强包括:
- BPF 令牌,它支持委派 BPF 功能的子集,从特权系统范围的守护进程委派给可信和非特权的应用程序。
- BPF 是 是 BPF 程序和用户空间之间的稀疏共享内存区域,用于在 arena 内使指针无缝工作。
-
may_goto
指令,这是验证器和程序之间的合同。verifier 允许程序在大多数情况下执行循环(只要它们运行良好),但保留停止它的权利。 - BPF verifier 支持 spin lock critical 部分中的静态子program 调用。
-
支持在会话模式中附加
kprobe
BPF 程序,该程序附加到功能条目和返回。条目程序可以决定返回程序是否被执行,程序可以共享u64
cookie 值。 - 为原始追踪点程序指定和检索 BPF cookie 的功能,以简化从经典迁移到原始追踪点。
-
引入了一个新的
bpf_wq
API,为延迟事件提供机制。 -
添加了几个新的
kfuncs
(内核函数从 BPF 程序调用)来调用加密 API、启用/禁用抢占、通用位迭代器和各种 VFS 操作。 -
支持从 BPF 程序声明
kptr
、bpf_rb_root
和bpf_list_head
的数组。 -
支持为运行的内核检测
kfuncs
,并转储可编译的kfunc
原型。 - 支持 PowerPC 的 64 位 BPF v4 CPU 指令。
- 支持弹性分割 BTF,这会在重复时切断 BTF,并使 BTF 尽可能地从模块中压缩 WRT BTF。
Jira:RHEL-63880[1]
查看 cgroup.stat
中每个 cgroup 的实例数量
对于 cgroup v2
,改进了 cgroup.stat
控制文件,以显示统一层次结构中每个 cgroup 子系统的实例数量,包括任何 dying 文件。
用于显示每个 cgroup 子系统的 cgroup 数量的 /proc/cgroups
文件是为 cgroup v1
设计的。使用 cgroup v2
时,/proc/cgroups
中提供的信息不再适用。对于 cgroup v2
,该文件已弃用。
使用 root cgroup 的 cgroup.stat
文件获取正确数量的 cgroup 子系统。这是 cgroup v2
的 /proc/cgroups
替换。
Jira:RHEL-36267[1]
在 rtla-timerlat
测试过程中在 CPU 上本地禁用空闲状态的新选项: deepest-idle-state
-
deepest-idle-state
的参数是深度允许的空闲状态的数量。如果 -1 是参数中的值,并且禁用所有 CPU 上的空闲状态。 -
在
rtla-timerlat
中,而不是使用/dev/cpu_dma_latency
在全局范围内禁用处于空闲状态的 CPU,来添加deepest-idle-state
选项来为测量运行的 CPU 设置深度允许的空闲状态。
因此,您可以在 rtls-timerlat
测试过程中保存电源并反映实时工作负载,并使用 deepest-idle-state
而不是使用 /dev/cpu_dma_latency
来禁用它们。
Jira:RHEL-69522[1]
kpatch-dnf
插件通过改进的内核管理来更新
使用更新的 kpatch-dnf
插件,内核升级与 kpatch 支持一致。管理员可灵活地将内核更新集中到 kpatch 所支持的更新,从而提高了系统升级和整体稳定性。
Jira:RHEL-77113[1]
rteval
工具的容器化
在这个版本中,您可以运行 rteval
工具,及其来自容器镜像的所有运行时依赖项通过 Quay.io 容器 registry 公开获得。这个功能还允许您:
-
使用部署灵活性,其中旧的 RHEL 版本可能会获得
rteval
的较新版本。 -
在相同或多个主机上运行多个
rteval
实例。 -
分配特定的系统资源以
rteval
,这样可确保对资源使用量进行精细的控制。
或者,您可以使用 dockerfile 模板使用 rteval
构建自己的容器镜像。您可以在 上游存储库 中找到此 dockerfile 和 README 文件,其中包含更多信息。
Jira:RHEL-9909[1]
TPM_TIS
rebase 到 upstream 6.7 for Lenovo 硬件
此发行版本引入了受信任的平台模块(TPM)集成服务(TPM_TIS
)固件到上游版本 6.7 的更新版本。这个版本解决了 RHEL 9.6 的稳定性和安全性增强。
Jira:RHEL-52747[1]
kdump
被 rebase 到 6.10
这个更新包含了最新的改进、bug 修复和与崩溃转储相关的 6.10 内核中的功能。
Landlock,一个新的 Linux 安全模块(LSM)
RHEL 9.6 引入了 Landlock,它是一个新的安全功能,使您的容器更安全。Landlock 为 Podman 等进程设置严格的规则,以便通过内核 API 限制对文件系统的访问,无论权限级别如何定义规则,并允许用户在进程可访问的范围内创建硬限制。
使用 Landlock,您可以构建可降低与错误配置或恶意目标进程相关的潜在风险的程序。这使得容器和整个系统变得更加安全。
新的集成测试来验证 kdump
步骤以防止系统失败
有了这个增强,您可以在任何软件或硬件更新后检查 kdump
进程的日志文件,以防止系统失败。在分析输出日志文件后,配置条目(如内存 问题或
某些驱动程序黑名单
)已被修正,以验证 kdump
过程并生成 vmcore
。这样可确保在任何软件或硬件更新后在系统崩溃前验证并修正 kdump
过程。
Jira:RHEL-32060[1]
新的 timerlat-interval INTV_US
和 cyclictest-interval INTV_US
选项
有了这个增强,您可以使用 rteval
命令的以下新选项修改运行 timerlat
或 cyclictest
线程中的基础或定期间隔选项:
-
timerlat-interval INTV_US
-
cyclictest-interval INTV_US
请注意,如果没有将其中一个选项与 rteval
一起使用,则应用默认值 100 微秒。
Jira:RHEL-67423[1]
使用 cyclictest
在延迟测试本地禁用空闲状态的新选项
-
默认情况下,
cyclictest
工具将/dev/cpu_dma_latency
设置为 0,以避免在空闲时延迟增加,这样可禁用所有 CPU 上的空闲状态。 -
新的
deepest-idle-state
选项只禁用为测试选择的 CPU 上的空闲状态。参数指定允许的最大空闲状态,将其设置为-1
可禁用测量的 CPU 上所有空闲状态。 -
使用
cyclictest
进行调优应该反映实时工作负载测试,因此使用deepest-idle-state
而不是使用/dev/cpu_dma_latency
来禁用 CPU 空闲状态,反映出实时工作负载仅在其运行的 CPU 上空闲状态的用例。 -
因此,满足所有用例的
cyclictest
覆盖率有所增加,功耗会降低。
Jira:RHEL-65487[1]
IBM Power 上现在支持 NVMf-FC
kdump
NVMf-FC
kdump 现在支持 IBM Power 系统,以运行 kexec-tools
。这允许通过光纤频道网络捕获系统内存转储,方法是使用 NVMe 存储设备进行高速和低延迟存储访问崩溃转储数据。
Jira:RHEL-11471[1]