第 12 章 内核
RHEL 7.4 中的内核版本
Red Hat Enterprise Linux 7.4 带有内核版本 3.10.0-693。(BZ#1801759)
NVMe 驱动程序 rebase 到版本 4.10
NVM-Express 内核驱动程序已更新至上游内核版本 4.10,它提供了大量的程序错误修复和增强。最显著的变化是:初始 NVMe-over-Fabrics 传输实现使用现有的 RDMA NIC(Infiniband、RoCE、iWARP)和现有的 NVMe SSD,但不包括对 DIF/DIX 和多路径的支持。(BZ#1383834)
crash rebase 到版本 7.1.9
在这个版本中,crash 软件包升级至上游版本 7.1.9,它提供了大量的程序错误修复和增强。(BZ#1393534)
崩溃
现在为 IBM Power ISA 3.0 分析 vmcore 转储
crash
工具已更新,与 IBM Power ISA 版本 3.0 架构相关的内核页表中的更改对应。因此,crash
工具现在可以在 IBM Power ISA 3.0 系统中分析内核的 vmcore 转储。(BZ#1368711)
crash 针对 IBM Power 以及 IBM Power 的 little-endian 变体进行更新
crash 软件包已更新,以支持 IBM Power 系统和 IBM Power Systems 的 little-endian 变体。这些软件包提供内核分析套件,它是一个自包含的工具,可用于调查实时系统,以及 kexec-tools 软件包或 Red Hat Enterprise Linux 内核创建的内核内核转储。(BZ#1384944)
memkind
更新至 1.3.0 版本
memkind
库已更新至 1.3.0 版本,它比之前的版本提供一些程序错误修复和增强。
主要变更包括:
- 引入了一个日志记录机制。
- 硬件位置(hwloc)已被集成,可以使用 --with-hwloc 选项打开。
- libmemkind.so 公开的符号被清理掉。例如:
libnuma
和jemalloc
不再公开。 - AutoHBW 文件已移到
/memkind/autohbw/
目录中,代码被重构,并且测试已添加到适当的场景中。 - 标记提高安全性已添加到
memkind
中。可使用--disable-secure
配置 time 选项关闭标志。 jemalloc
的配置已被修改为关闭未使用的功能。- 弃用了几个符号。详情请查看已弃用的功能部分。(BZ#1384549)
jitter Entropy RNG 添加到内核中
在这个版本中,添加了 Jitter Entropy Random Number Generator(RNG),它会通过 Linux 内核的 CPU 计时差异收集熵。此 RNG 默认通过
algif_rng
接口提供。生成的数字可以通过 /dev/random
文件添加到内核中,这使得这些数字可供其他 /dev/random
用户使用。因此,操作系统现在有更多可用的熵源。(BZ#1270982)
/dev/random
现在显示 urandom 池初始化的通知和警告
在这个版本中,随机驱动程序(/dev/random)被修改为在非阻塞池(由 /dev/urandom 使用)时打印一条消息。(BZ#1298643)
fjes
更新至 1.2 版本
fjes
驱动程序已更新至 1.2 版本,它比之前的版本包括了很多程序错误修复和增强。(BZ#1388716)
完全支持用户命名空间
现在完全支持在 Red Hat Enterprise Linux 7.2 中引进的用户命名空间(userns)。通过改进主机和容器之间的隔离,此功能为运行 Linux 容器的服务器提供额外的安全性。容器的管理员不再能够在主机上执行管理操作,这会提高安全性。
user.max_user_namespaces
的默认值为 0。
您可以将其设定为非零值,这样可停止出现故障的应用程序。建议将 user.max_usernamespaces
设置为一个大的值,如 15000
,以便在正常操作过程中不需要重新访问该值。(BZ#1340238)
makedumpfile 更新至 1.6.1
makedumpfile 软件包已升级至上游版本 1.6.1,作为 kexec-tools 2.0.14 rpm 的一部分,它提供了大量的程序错误修复和增强。(BZ#1384945)
qat
更新至最新的上游版本
qat
驱动程序已更新至最新的上游版本,它提供了大量的程序错误修复和增强。
主要程序错误修复和增强:
- 添加了对 Diffie-Hellman(DH)软件的支持
- 添加了对 Elliptic Curve Diffie-Hellman(ECDH)软件的支持
- 添加了对 Error-correcting Code(ECC)软件的支持,用于 curve P-192 和 P-256(BZ#1382849)
添加 intel-cmt-cat 软件包
此软件包中提供的
pqos
实用程序可让管理员监控和操作 L3 缓存来提高实用程序和性能。
该工具绕过内核 API 并直接在硬件上运行,这需要 CPU 固定用于目标进程,然后才能使用。(BZ#1315489)
i40e
现在支持可信的 VF
在这个版本中,增加了对可信的虚拟功能和不受信任的虚拟功能的支持,并添加到
i40e
NIC 驱动中。(BZ#1384456)
支持 OVS 802.1ad(QinQ)的内核支持
在这个版本中,通过在内核中启用 802.1ad(QinQ)网络标准,将两个 VLAN 标签用于 Open vSwitch(OVS)网络标准。请注意,这个更新的用户空间部分由 openvswitch 软件包提供。(BZ#1155732)
对共享内存和 hugetlbfs
的实时复制迁移支持
这个版本增强了内核以启用实时后复制迁移,以支持共享内存和
hugetlbfs
文件系统。得益于此功能:
- 在主机上配置 2MiB 巨页,
- 创建具有 2MiB 巨页的客户机虚拟机,
- 运行 guest 虚拟机和 stress-test 应用来测试内存,
- 使用 post-copy 实时迁移 guest 虚拟机。(BZ#1373606)
新软件包: dbxtool
dbxtool 软件包提供了一个命令行工具和一个-shot
systemd
服务,用于应用 UEFI 安全引导 DBX 更新。(BZ#1078990)
mlx5
现在支持 SRIOV 信任的 VF
在这个版本中,为
mlx5
驱动程序添加了对单根 I/O 虚拟化(SRIOV)信任的虚拟功能(VF)的支持。(BZ#1383280)
来自 4.9 内核的 rwsem
软件更新
在这个版本中,大多数上游 R/W semaphores(
rwsem
)性能与 Linux 内核版本 4.9 的性能变化在维护内核应用程序二进制接口(kABI)期间向后移植到 Linux 内核。
主要变更包括:
- writer-optimistic spinning,这可以减少锁定延迟并改进锁定性能。
- 锁定无等待,无阻碍内部销锁.(BZ#1416924)
将random
添加到 Linux 内核
在这个版本中,在 Linux 内核中添加了
getrandom
系统调用。现在,用户空间可以从 /dev/urandom 使用的相同非阻塞熵池请求随机性,用户空间可以阻断直到至少 128 位熵在这个池中被请求。(BZ#1432218)
一个新的状态行 Umask 包含在 /proc/<PID>/status
中
在以前的版本中,在没有修改的情况下无法读取进程 umask。如果没有此更改,库将无法安全地读取 umask,特别是在主程序被多线程时。proc 文件系统(procfs)现在在
/proc/<PID>/status 文件中公开
umask。格式是 Umask: OOOO
,其中 OOOOO 是任务的 umask 的数值。(BZ#1391413)
Intel® Omni-Path Architecture(OPA)主机软件
从 Red Hat Enterprise Linux 7.3 开始,完全支持 Intel® Omni-Path Architecture(OPA)主机软件。Intel® OPA 为在集群环境中的计算和 I/O 节点之间的高性能数据传输(高带宽、高消息率、低延迟)提供主机 Fabric Interface(HFI)硬件初始化和设置。
有关如何获取 Intel® Omni-Path 架构文档的步骤,请参考 https://access.redhat.com/articles/2039623。(BZ#1459948)
XTS-AES 密钥验证现在满足 FIPS 140-2 要求
在这个版本中,当以 FIPS 模式运行 Red Hat Enterprise Linux 并使用内核 XTS-AES 密钥验证时,AES 密钥被强制与调整密钥不同。这样可确保满足 FIPS 140-2 IG A.9 要求。另外,使用 passwordtext stealing(XTS)测试向量进行基于 XEX 的调整代码书模式现在可以被标记为跳过。(BZ#1314179)
现在 IBM z Systems 支持 mlx5
现在,IBM z Systems 上的 Linux 支持 Mellanox
mlx5
设备驱动程序,并可用于以太网 TCP/IP 网络。(BZ#1394197)
perf
工具现在支持处理器缓存内容检测
perf
工具现在为 Shared Data Cache-to-Cache(C2C)分析提供 c2c 子命令。这可让您检查缓存行争用并检测到 true 共享和假共享。
当 Symmetric Multi Processing(SMP)系统上的处理器核心修改其他处理器缓存行中的数据项目时,会发生争用。使用这个缓存行的所有其他处理器必须使复制结果无效并请求更新后,这可能会导致性能下降。
新的 c2c 子命令提供有关检测到争用、进程读取和写入数据、导致争用的指令以及涉及 Non-Uniform Memory Access(NUMA)节点的缓存行的详细信息。(BZ#1391243)
lpfc
驱动程序中的 SCSI-MQ 支持
在 Red Hat Enterprise Linux 7.4 中更新的
lpfc
驱动程序现在可以启用使用带有 lpfc_use_blk_mq=1
模块参数的 SCSI-MQ(multiqueue)。默认值为 0(
禁用)。
请注意,在特定情况下,在带有同步 IO 到使用 SCSI-MQ 的光纤通道适配器时,最近进行的性能会明显降低。一个修复程序已被测试,但不适用于 Red Hat Enterprise Linux 7.4 正式发布(GA)。(BZ#1382101)