8.4. 内核

执行 kdump时,The radeon 驱动程序无法正确重置硬件

当从当前运行的内核引导内核时,比如在执行 kdump 进程时,radeon 内核驱动程序当前无法正确重置硬件。相反,kdump 内核意外终止,这会导致剩余的 kdump 服务失败。

要临时解决这个问题,在 kdump 中禁用 radeon,方法是在 /etc/kdump.conf 文件中添加以下行:

dracut_args --omit-drivers "radeon"

之后,重启机器和 kdump

请注意,在这种情况下,kdump 不会提供图形界面,但 kdump 可以成功完成。

(BZ#1168430)

在 Windows Server 2019 主机上与 RHEL 7 客户机控制台的连接速度较慢

当在 Windows Server 2019 主机上以多用户模式使用 RHEL 7 作为客户机操作系统时,连接到客户机的控制台输出目前所需的时间比预期要长。要临时解决这个问题,请使用 SSH 连接到客户端,或使用 Windows Server 2016 作为主机。

(BZ#1706522)

当将 dm_crypt 与 intel_qat 搭配使用时,内核可能会死锁

intel_qat 内核模块使用 GFP_ATOMIC 内存分配,这可能会在内存压力下失败。因此,当 dm_crypt 内核模块对加密卸载使用 iintel_qat 时,可能会发生内核死锁和可能的数据损坏。要临时解决这个问题,您可以选择以下任意一种:

  • 更新至 RHEL 8
  • 避免使用 intel_qat 进行 加密卸载(潜在的性能影响)
  • 确定系统不会面临过量内存压力

(BZ#1813394)

在 RHEL 7 的 Amazon c5a 机器上,vmcore 文件生成会失败

在 Amazon c5a 机器上,当使用 kdump 内核中的 扁平模式 配置时,高级可编程 Interrupt Controller(APIC)无法路由本地 APIC(LAPIC)的中断。因此,k dump 内核无法引导,并阻止 kdump 内核保存 vmcore 文件进行进一步分析。

要临时解决这个问题:

  1. 通过将 crashkernel 参数设置为 256M 来提高崩溃内核大小:

    $ grubby-args="crashkernel=256M" --update-kernel
    /boot/vmlinuz-`uname -r`
  2. 通过编辑 /etc/sysconfig/kdump 文件来设置 nr_cpus=9 选项:

    KDUMP_COMMANDLINE_APPEND="irqpoll" *nr_cpus=9*
    reset_devices
    cgroup_disable=memory mce=off numa=off udev.children-
    max=2 panic=10 acpi_no_memhotplug
    transparent_hugepage=never nokaslr novmcoredd
    hest_disable

因此,kdump 内核 使用 9 个 CPU 引导,在内核崩溃时会捕获 vmcore 文件。请注意,k dump 服务可能会使用大量崩溃内核内存转储 vmcore 文件,因为它在 kdump 内核中启用了 9 个 CPU。因此,请确保崩溃内核的大小保留为 256MB,可用于引导 kdump 内核。

(BZ#1844522)

启用一些 kretprobes 可以触发内核 panic

使用以下 功能的 kretprobe 可能会导致 CPU 硬锁定:

  • _raw_spin_lock
  • _raw_spin_lock_irqsave
  • _raw_spin_unlock_irqrestore
  • queued_spin_lock_slowpath

因此,启用这些 kprobe 事件可能会遇到系统响应失败。在这种情况下会触发内核 panic。要解决这个问题,请避免为上述功能配置 kretprobes,并防止系统响应失败。

(BZ#1838903)

kdump 服务在启用了 UEFI 安全引导的系统上失败

如果启用了 UEFI 安全引导的系统启动时没有最新的 RHEL 内核版本,kdump 服务 将无法启动。在描述的场景中,k dump 报告以下出错信息:

kexec_file_load failed: Required key not available

此行为会因以下任一原因显示:

  • 使用未更新的内核版本引导崩溃内核。
  • /etc/sysconfig/kdump 文件中的 KDUMP_KERNELVER 变量配置为不最新的内核版本。

因此,k dump 无法启动,因此在崩溃事件中不会保存转储内核。

要解决这个问题,请使用以下方法之一:

  • 使用最新的 RHEL 7 修复引导崩溃内核。
  • etc/sysconfig/kdump 中的 Configure KDUMP_KERNELVER,以使用最新的内核版本。

因此,k dump 在上述场景中可以成功启动。

(BZ#1862840)

RHEL 安装程序可能无法检测 iSCSI 存储

RHEL 安装程序可能不会自动设置与 iSCSI 相关的内核命令行选项,用于卸载 iSCSI 主机总线适配器(HBA)。因此,RHEL 安装程序可能无法检测 iSCSI 存储。

要临时解决这个问题,请在引导到安装程序时在内核命令行中添加以下选项:

rd.iscsi.ibft=1 rd.iscsi.firmware=1

这些选项可从预 OS 固件配置中启用网络配置和 iSCSI 目标发现。

固件配置 iSCSI 存储,因此安装程序可以发现并使用 iSCSI 存储。

(BZ#1871027)

mlx5e_rep_neigh_update 工作队 列中的竞争条件有时会触发内核 panic

当在 Single Root I/O 虚拟化(SR-IOV)功能中使用 switchdev in-kernel 驱动程序模型在 mlx5 设备上卸载封装操作时mlx5e_rep_neigh_update 工作队列中可能会出现竞争条件。因此,系统会意外出现内核 panic 并被终止,并显示以下信息:

Workqueue: mlx5e mlx5e_rep_neigh_update [mlx5_core]

目前,这个问题还没有一个临时缓解方案。

(BZ#1874101)

ice 驱动程序没有为 Intel® 网络适配器加载

ice 内核驱动程序没有加载所有 Intel® 以太网网络适配器 E810-XXV,但如下:

  • v00008086d00001593sv*sd*bc*sc*i*
  • v00008086d00001592sv*sd*bc*sc*i*
  • v00008086d00001591sv*sd*bc*sc*i*

因此,网络适配器不会被操作系统检测到。要临时解决这个问题,您可以使用 Intel® 或 Dell 提供的 RHEL 7 外部驱动程序。

(BZ#1933998)

kdump 不支持在 Hyper-V 虚拟机中将 nr_cpus 设置为 2 或更高

当在 Microsoft Hyper-V 管理程序上将 RHEL 7.9 用作客户机操作系统时,当 nr_cpus 参数设置为 2 或更高版本时,kdump 内核在某些情况下会变得无响应。为避免这个问题发生,请不要在客户机的 /etc/sysconfig/kdump 文件中更改默认的 nr_cpus=1 参数。

(BZ#1773478)