搜索

4.9. 内核

download PDF

RHEL 9.1 中的内核版本

Red Hat Enterprise Linux 9.1 与内核版本 5.14.0-162 一起发布。

(BZ#2125549)

list_lru 的内存消耗已被优化

内部内核数据结构 list_lru 跟踪内核索引节点和文件目录条目的"最早使用"状态。在以前的版本中,list_lru 分配结构的数量与挂载点的数量和存在内存 cgroup 的数量直接成比例。两个数字都随着正在运行的容器增加,导致 O (n^2) 的内存消耗量为 n,其中 n 是正在运行的容器数。此更新可优化系统中 list_lruO(n) 的内存消耗。因此,现在有足够的内存供用户应用程序使用,特别是在有大量运行容器的系统中。

(BZ#2013413)

BPF 更新到 Linux 内核版本 5.16

Berkeley Packet Filter (BPF) 工具已更新至 Linux 内核版本 5.16,具有多个程序错误修复和增强。最显著的变化包括:

  • 简化了对内部 BPF 程序项的处理,以及 libbpf 用户空间库中的 bpf_program__set_attach_target() API。

    bpf_program__set_attach_target() API 为基于 BPF 的程序设置基于 BTF 的附加目标。

  • 添加了对 BTF_KIND_TAG kind 的支持,允许您标记声明。
  • 添加了对 bpf_get_branch_snapshot() 帮助程序的支持,它允许追踪程序从硬件捕获最后一个分支记录(LBR)。
  • libbpf 用户空间库中添加了旧的 kprobe 事件,它允许通过旧接口创建 kprobe tracepoint 事件。
  • 添加了通过 BPF 特定的结构使用 __sk_buff helper 功能访问硬件时间戳的功能。
  • 添加了对 AF_XDP 缓冲池中 RX 缓冲区分配的批处理接口的支持,支持 i40eice
  • 添加了 libbpf 用户空间库中的传统 uprobe 支持,以补充最近合并的传统 kprobe
  • bpf_trace_vprintk() 添加为 variadic printk helper。
  • 添加了 libbpf opt-in for stricter BPF 程序部分处理,作为 libbpf 1.0 工作的一部分。
  • 添加了 libbpf 支持来查找专用映射,如 perf RB 和内部删除 BTF 类型标识符。
  • 添加了 bloomfilter BPF map 类型来测试集合中是否存在某一元素。
  • 添加了对 BPF 中的内核模块功能调用的支持。
  • 添加了在 light skeleton 中的无类型和弱 ksym 的支持。
  • 添加了对 BTF_KIND_DECL_TAG 类型的支持。

有关运行中内核中可用的 BPF 功能的完整列表,请使用 bpftool feature 命令。

(BZ#2069045)

BTF 数据现在位于内核模块中

BPF 类型格式 (BTF) 是元数据格式,对与 BPF 程序和映射相关的调试信息进行编码。在以前的版本中,内核模块的 BTF 数据保存在 kernel-debuginfo 软件包中。因此,需要安装对应的 kernel-debuginfo 软件包才能将 BTF 用于内核模块。在这个版本中,BTF 数据现在直接位于内核模块中。因此,您不需要安装任何软件包就可以使 BTF 正常工作。

(BZ#2097188)

kernel-rt 源树已更新至 RHEL 9.1 树

kernel-rt 源已更新为使用最新的 Red Hat Enterprise Linux 内核源树。实时补丁集也更新至最新的上游版本 v5.15-rt。这些更新提供了很多程序错误修正和增强。

(BZ#2061574)

ARM 和 AMD 和 Intel 64 位构架启用动态抢占调度

RHEL 9 在 ARM 和 AMD 和 Intel 64 位构架中提供动态调度功能。此功能增强支持在引导时或运行时更改内核的抢占模式,而不是编译时间。/sys/kernel/debug/sched/preempt 文件包含当前的设置,并可以在运行时修改。

使用 DYNAMIC_PREEMPT 选项时,您可以在引导时将 preempt= 变量设置为 nonevoluntaryfullvoluntary 抢占为默认值。使用动态抢占处理,您可以覆盖默认的抢占模型,以改进调度延迟。

(BZ#2065226)

stalld 更新到版本 1.17

stalld 程序(提供 stall 守护进程)是防止 Linux 系统中操作系统线程的不足状态的机制。此版本监控星级状态的线程。当线程位于 CPU 运行队列中长于 starvation 的阈值,就会发生 starvation。

与之前的版本相比,这个 stalld 版本包括了很多改进和程序错误修复。值得注意的更改包括检测可运行的补救任务的能力。

stalld 检测到星号线程时,程序会将线程的调度类改为 SCHED_DEADLINE 策略,它为线程提供了指定 CPU 运行线程的小片段。当使用 timeslice 时,线程会返回其原始调度策略,而 stalld 会继续监控线程状态。

(BZ#2107275)

tpm2-tools 软件包已更新至 tpm2-tools-5.2-1 版本

tpm2-tools 软件包已更新到版本 tpm2-tools-5.2-1。此升级提供了很多重要的功能增强和程序错误修复。最显著的变化包括:

  • 在使用 tpm2_createprimarytpm2_create 工具创建的主对象时添加对公钥输出的支持。
  • 添加对 tpm2_print 工具的支持,以打印公钥输出格式。tpm2_print 解码一个受信任的平台模块(TPM)数据结构,并打印括起的元素。
  • 添加了对 tpm2_eventlog 工具的支持,以读取超过 64 KB 的日志。
  • 添加 tpm2_sessionconfig 工具以支持显示和配置会话属性。

有关显著变化的更多信息,请参阅 /usr/share/doc/tpm2-tools/Changelog.md 文件。

(BZ#2090748)

Intel E800 设备现在支持 iWARP 和 RoCE 协议

在这个版本中,您可以使用 enable_iwarpenable_roce devlink 参数打开和关闭 iWARP 或 RoCE 协议支持。使用这个强制功能,您可以使用其中一个协议配置该设备。Intel E800 设备不支持同一端口上这两个协议。

要为特定 E800 设备启用或禁用 iWARP 协议,首先获取卡的 PCI 位置:

$ lspci | awk '/E810/ {print $1}'
44:00.0
44:00.1
$

然后,启用或禁用协议。您可以将 pci/0000:44:00.0 用作第一个端口,并将 pci/0000:44:00.1 用于卡的第二个端口,作为 devlink 命令的参数

$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value false cmode runtime

要为特定 E800 设备启用或禁用 RoCE 协议,获取卡的 PCI 位置,如上所示。然后使用以下命令之一:

$ devlink dev param set pci/0000:44:00.0 name enable_roce value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_roce value false cmode runtime

(BZ#2096127)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.