第 3 章 内核
在红帽企业版 Linux 6.2 之前是由 qla4xxx
适配器固件管理查找并登录 iSCSI 目标。红帽企业版 Linux 6.2 中的新功能可让您使用 open-iscsi 管理查找并登录 qla4xxx
的过程。这样就让管理过程更为统一。
qla4xxx
iSCSI 固件:
~]# iscsiadm -m fw
ql4xdisablesysfsboot=1
参数可禁用这个功能:
- 在
/etc/modprobe.d
文件中设定该参数:~]#
echo "options qla4xxx ql4xdisablesysfsboot=1" >> /etc/modprobe.d/qla4xxx.conf
- 可执行以下命令重新载入
qla4xxx
模块:~]#
rmmod qla4xxx
~]#modprobe qla4xxx
或者您也可以通过重启系统取消引导qla4xxx
设备。
qla4xxx
设备后,将红帽企业版 Linux 6.1 升级至红帽企业版 Linux 6.2 会导致系统无法使用新内核引导。有关这个问题的详情请参考 技术说明。
Kdump(基于 kexec 的崩溃转储机制)现在支持在红帽企业版 Linux 6 的以下文件系统中进行核转储:
- Btrfs(备注:这个文件系统是技术预览)
- ext4
- XFS(备注:XFS 是层产品,且必须安装方可启动这个功能)
已将 pkgtemp
模块与 coretemp
模块合并。pkgtemp
现在已经被弃用。coretemp
模块现在支持之前的所有功能,同时附带之前由 pkgtemp
模块支持的功能。
coretemp
之前只能提供每个核的温度,而 pkgtemp
只提供 CPU 包的温度。在红帽企业版 Linux 6.2 中,coretemp
可让您读取核、非核(uncore)以及包的温度。
在红帽企业版 Linux 6.2 中,SCSI 中间层支持可选的 SCSI 驱动程序 queuecommand
功能的非锁定调度。
scsi_host_template
结构中没有使用的标签表示 SCSI 中间层,在该层驱动程序会调度 queuecommand
而无需锁定 SCSI 主机总线。
queuecommand
调度过程中保持 Scsi_Host
锁定。在 scsi_host_alloc
之前设定 scsi_host_template
非锁定字节将导致调度驱动程序 queuecommand
功能而无需保持 Scsi_Host
锁定。
queuecommand
的 SCSI 驱动程序如下:
- iscsi_iser
- be2iscsi
- bnx2fc
- bnx2i
- cxgb3i
- cxgb4i
- fcoe(软件 fcoe)
- qla2xxx
- qla4xxx
红帽企业版 Linux 6.2 包含使用以太网(FCoE)目标模式支持光纤,但仍属于技术预览。这个内核功能可使用 targetadmin 进行配置,由 fcoe-target-utils 软件包提供。FCoE 是设计用于网络支持的数据中心桥接(DCB)。有关详情请参考 dcbtool(8)
和 targetadmin(8)
man page。
重要
在红帽企业版 Linux 6.1 中,根据 BZ#605786 弃用了 crashkernel=auto
引导参数。但是在红帽企业版 Linux 6.2 中仍在所有红帽企业版 Linux 6 系统中继续支持 crashkernel=auto
。
已将 mdadm
和 mdmon
程序更新至支持阵列自动重建、RAID 层迁移、RAID 5 支持限制以及 SAS-SATA 驱动器漫游。
红帽企业版 Linux 6.2 支持合并 flush 请求以帮助执行 flush 缓慢的设备。
红帽企业版 Linux 6.2 添加了 UV2 集线器支持。UV2 是当前 UV1 集线器芯片的下一代 UV 集线器芯片。UV2 使用目前正在开发的 HARP 集线器芯片,提供对新的 Intel 插槽的支持。它还可提供新的功能以改进性能。UV2 是被设计用来支持 SSI 中的 64 TB 内存。另外已经为 UV 系统更新了节点控制器 MMR。
红帽企业版 Linux 6.2 引进了 acpi_rsdp
引导参数以便 kdump 可传递 ACPI RSDP 地址,这样 kdump 内核就可在没有 EFI(可扩展固件界面)的情况下引导。
在 QETH 网络设备驱动程序中添加了以下改进:
- 支持
af_iucv
HiperSocket 传输 - 支持强制信号适配器说明
- 支持异步存储块传递
- 在
if_ether
模块中添加新的以太网协议 ID
添加了由 IBM zEnterprise 196 提供的新的 CPACF(CP 辅助加密功能)支持。这个新硬件加速算法是:
- 用于 AES 的 CTR 模式
- 用于 DES h 3DES 的 CTR 模式
- 密钥长度为 128 和 256 字节的用于 AES 的 XTS 模式
- 用于 GCM 模式的 GHASH 信息摘要
红帽企业版 Linux 6.2 支持使用 pci=realloc
内核参数进行有条件资源重新分配。这个功能提供了在不造成任何衰退的情况下动态重新分配 pci 资源的临时解决方案。它默认是禁用动态重新分配,但添加了使用 pci=realloc
内核命令行参数重新添加该功能的能力。
默认是禁用动态重新分配,但可使用 pci=realloc
内核命令行参数重新启用它。另外,已经将桥接资源更新至可在 PCI assign unassigned
调用中提供更大的范围。
红帽企业版 Linux 6.2 在内核中启用了 SEMP(监控模式执行保护)。SMEP 提供了一个改进的机制,可允许系统设定不是在用户页执行而是以监控模式执行的请求。然后 CPU 会强制执行这个请求。这个功能可防止所有攻击,无论用户模式页中的系统代码有多薄弱,CPU 都是处于监控模式。
为最新的 Intel 平台添加了加强的快速字符串 REP
MOVSB
/STORESB
指令支持。
已在 USB 3.0 xHCI 主机端驱动程序中添加了分离集线器支持,它可让 xHCI 主机控制器以外置 USB 3.0 集线器的方式运行,方法是注册 USB 3.0 root 集线器和 USB 2.0 root 集线器。
现在默认禁用 ACPI、APEI 和 EINJ 参数支持。
红帽企业版 Linux 6.2 添加了 pstore 支持 — 即用于依赖平台持续存储的文件系统接口。
添加了支持基于 APEI(ACPI 平台出错信息界面)硬件出错信息报告的 printk,它可提供一个统一来自各个源的出错信息的方法,并将其发送到系统控制台的方法。
已将 ioatdma
驱动程序(dma
引擎驱动程序)更新至支持使用 dma
引擎的 Intel 处理器。
在 8250 PCI 串口驱动程序中添加了 Digi/IBM PCIe 2-port Async EIA-232 适配器支持。另外还在 8250 PCI 串口驱动程序中为 Digi/IBM PCIe 2-port Async EIA-232 适配器添加了 EEH(加强错误处理)支持。
在红帽企业版 Linux 6.2 中添加了 PCIe v2 功能,即 ARI(可替换路由 ID 解析)支持。
为 Intel 的最新平台添加了 PCIe OBFF(优化缓冲 Flush/Fill)启用/禁用支持。OBFF 提供包括中断和内存活性在内的设备信息,连同可能降低的电源影响,最终改善能源效率。
已红帽企业版 Linux 6.2 中,内核可捕获来自 dmesg
缓冲的 oops/panic 报告,并将其放在 PowePC 构架的 NVRAM 中。
MXM 驱动程序负责处理 NVIDIA 平台中的图像切换,已将其回移到红帽企业版 Linux 6.2 中。
红帽企业版 Linux 6.2 引进了页面整合功能,它是 IBM Power 服务器中的功能,可允许整合逻辑分区之间一致的页面。
已在最新的 AMD 系列 CPU 中添加了 L3 缓存分区支持。
已将 thinkpad_acpi
模块更新至支持新的 ThinkPad 型号。
已在 intel_idle 中添加了最新 Intel 处理器的 C-State 支持。
红帽企业版 Linux 6.2 现在在 AMD 系统中为 IOMMU(输入/输出内存管理单元)显示警告。
添加了在引导过程中在 dmesg
记录主板、系统和 BIOS 信息的功能。
在内核中添加了 cputable
条目,它可为最新的 IBM PowerPC 处理器系列提供支持。
在 IBM System p 中添加了 VPHN(虚拟处理器主节点)功能。
以下是现在由最新 Intel 芯片组支持的驱动程序:
i2c-i801
SMBus 驱动程序ahci
AHCI-mode SATAata_piix
IDE-mode SATA 驱动程序- TCO Watchdog 驱动程序
- LPC 控制器驱动程序
在 IBM PowerPC 系统中,不再强制使用 sysctl 或者 /proc/sys/kernel/exec-shield
参数中的 exec-shield
值。
在 64 位 PowerPC 和 64 位 IBM POWER 系列系统中添加了额外的检查和修复以支持 kdump
。
在 SGI 平台中添加了 UV MMTIMER 模块(uv_mmtimer
)。uv_mmtimer
模块允许对 UV 系统实时时钟的直接用户区访问,该时钟在所有集线器之间是同步的。
红帽企业版 Linux 6.2 中添加了 IB700
模块支持。
添加了 aer_mask_override
模块参数以提供覆盖正确的或者错误的 PCI 设备掩码的方法。这个掩码将包含与传递给 aer_inject()
功能的状态对应的字节。
已在 64 位 PowerPC 和 64 位 IBM POWER Series 系统中添加了 USB 3.0 主机控制器支持。
红帽企业版 Linux 6.2 回移到改进的上游 OOM(内存溢出)killer 部署。其改进包括:
- OOM killer 首选要退出的进程。
- OOM kill 进程还将杀死所选进程的子进程。
- 添加了 Heuristic 以便杀死
forkbomb
进程。
oom_score_adj
/proc
可调参数添加了保存在每个进程的 oom_score_adj
变量中的值,该值可使用 /proc
更改。这就允许在用户空间调整 OOM killer 对每个进程的亲和力,将其设定为 -1000
将完全禁用 OOM killer;而将其设定为 +1000
则将该进程标记为 OOM 的主要目标。
红帽企业版 Linux 6.2 提供一个更新的 zram
驱动程序(根据压缩的块设备生成通用 RAM)。
在红帽企业版 Linux 6.2 中,已加强内核中的 taskstat 程序(输出 ASET 任务状态),方法是提供为 top 程序提供微秒 CPU 时间间隔。
红帽企业版 Linux 6.2 在将内核升级到 v 3.1 的同时将 perf 程序更新至上游版本 3.1。有关 perf 程序提供的新支持的内核功能请参考 BZ#725524。perf 程序的更新版本包括:
- 添加了 cgroup 支持
- 添加了
/proc/sys/kernel/kptr_restrict
处理 - 添加了更多缓冲缺失比例输出
- 添加了
-d -d
和-d -d -d
选项显示更多 CPU 事件 - 添加了
--sync/-S
选项 - 添加了
PERF_TYPE_RAW
参数支持 - 添加了有关
-f/--fields
选项的更多文档 - 为 python 绑定支持添加了 python-perf 软件包。
红帽企业版 Linux 6.2 为最新的 Intel 处理器添加了 OProfile 支持。
现在可使用所有 irq 总和计数器计算中断请求数(IRQ),这样就可降低在 /proc/stat
文件中查找的消耗。
红帽企业版 Linux 6.2 引进了一个调度改进,它可根据 sleep 和 preempt 路径中的下一个 buddy 信号为调度程序提供提示。这个提示/改进可帮助多任务组群中的多任务负载。
在红帽企业版 Linux 6.2 中,现在可在内核的几个位置支持透明超大页面:
- mremap、mincore 和 mprotect 的系统调用。
/proc
可调参数:/proc/<pid>/smaps
和/proc/vmstat
红帽企业版 Linux 6.2 添加了 XTS(基于 XEX 的 Tweaked CodeBook)AES256 自我测试以满足 FIPS-140 的要求。
之前,如果丢失数据包,SELinux netfilter hook 会返回 NF_DROP
。在红帽企业版 Linux 6.2 中,netfilter hook 中的数据包丢失是永久致命错误的信号,而不是暂时性的。这样做就可将错误返回到栈中,在有些位置和应用程序中将会更快地反应出问题。
红帽企业版 Linux 6.2 中,remount 挂载选项(mount -o remount
)被转给新的 LSM hook。
红帽企业版 Linux 6.0 和 6.1 模式使用物理地址模式运行 UEFI 系统。红帽企业版 Linux 6.2 模式使用虚拟地址模式运行 UEFI 系统。之前的行为可使用 physefi
内核参数获得。
在红帽企业版 Linux 6 中,默认通过 SSH 执行 kdump 的 core_collector
方法已经从 scp
改为 makedumpfile
,它可帮助在通过网络链接复制时减小核文件的大小,使复制更迅速。
/etc/kdump.conf
文件中指定以下内容:
core_collector /usr/bin/scp