第 5 章 对外部内核参数的重要更改


本章为系统管理员提供了与 Red Hat Enterprise Linux 8.8 一起分发的内核中显著变化的总结。这些更改包括添加或更新的 proc 条目、sysctlsysfs 默认值、引导参数、内核配置选项或者任何可见的行为更改。

新内核参数

nomodeset

使用这个内核参数,您可以禁用内核模式设置。DRM 驱动程序将不执行显示模式更改或加速渲染。如果这是通过固件或引导装载程序进行了设置,则只有系统帧缓冲才可用。

nomodeset 可用作回退,或测试和调试。

sev=option[,option…​] [X86-64]
如需更多信息,请参阅 Documentation/x86/x86_64/boot-options.rst
amd_pstate=[X86]
  • disable :不启用 amd_pstate 作为支持的处理器的默认扩展驱动程序。
  • passive :使用 amd_pstate 作为扩展驱动程序。驱动程序在这个抽象规模上请求所需的性能,电源管理固件会将请求转换为实际的硬件状态,如核频率、数据结构和内存时钟等。
retbleed=ibpb,nosmt
这个参数与 ibpb 类似,是没有 STIBP 的系统的一种替代选择。使用这个参数,您可以在 STIBP 不可用时禁用 SMT。

更新的内核参数

amd_iommu=[HW,X86-64]

使用这个内核参数,您可以将参数传递给系统中的 AMD IOMMU 驱动程序。可能的值有:

  • fullflush:已弃用,等同于 iommu.strict=1
  • off :不初始化系统中发现的任何 AMD IOMMU。
  • force_isolation :对所有设备强制设备隔离。不再允许 IOMMU 驱动程序根据需要解除隔离要求。

    • 此选项不会覆盖 iommu=pt
  • force_enable :在已知启用了 IOMMU 的平台上强制启用 IOMMU。

    • 请谨慎使用这个选项。
crashkernel=size[KMG][@offset[KMG]]

[KNL] 使用 kexec,Linux 可以在 panic 时切换到崩溃内核。此参数为那个内核镜像保留物理内存区域 [offset, offset + size]。如果省略 @offset,则会自动选择合适的偏移量。

[KNL, X86-64, ARM64] 首先选择 4G 下的区域,并在未指定 @offset 时回退到 4G 以上的保留区域。

如需了解更多详细信息,请参阅 Documentation/admin-guide/kdump/kdump.rst

crashkernel=size[KMG],low
  • [KNL, X86-64, ARM64] 使用此参数,您可以为第二个内核指定 4G 以下的低范围。当 crashkernel=X,high 被传递时,这需要一些低内存,例如 swiotlb 需要至少 64M+32K 低内存,还需要足够的额外低内存以确保 32 位设备的 DMA 缓冲区不会耗尽。内核会尝试自动分配 4G 以下的默认内存大小。默认大小取决于平台。

    • x86: max(swiotlb_size_or_default() + 8MiB, 256MiB)
    • arm64: 128MiB

      0:禁用低分配。

      crashkernel=X,high 未使用或保留的内存低于 4G 时,将忽略此参数。

  • [KNL, ARM64] 使用此参数,您可以为崩溃转储内核指定 DMA 区域中的低范围。

    当不使用 crashkernel=X,high 时,会忽略这个参数。

intel_iommu=[DMAR]

用于设置 Intel IOMMU 驱动程序(DMAR)选项的内核参数。

  • on :启用 intel iommu 驱动程序。
  • off :禁用 intel iommu 驱动程序。
  • igfx_off [默认为 Off]: 默认情况下,gfx 被映射为普通设备。如果 gfx 设备有一个专用的 DMAR 单元,则不会使用这个选项启用 DMAR 来绕过 DMAR 单元。在这种情况下,gfx 设备将使用 DMA 的物理地址。
  • strict [默认为 Off]:已弃用,等同于 iommu.strict=1
  • sp_off [默认为 Off]:默认情况下,如果 Intel IOMMU 有能力,则支持超级页。使用此选项时,将不支持超级页。
  • sm_on [默认为 Off]:默认情况下,即使硬件公告支持可扩展的模式转换,也会禁用可扩展模式。设置此选项后,可以在声明支持它的硬件上使用可扩展模式。
  • tboot_noforce [默认为 Off]:不要强制在 tboot 下启用 Intel IOMMU。默认情况下,tboot 会强制 Intel IOMMU,这可能会损害一些高吞吐量设备(如 40GBit 网卡)的性能,即使启用了身份映射。

    注意

    使用此选项可降低 tboot 提供的安全性,因为它会使系统容易受到 DMA 攻击。

iommu.strict=[ARM64,X86]

使用这个内核参数,您可以配置 TLB 无效行为。

格式:{ "0" | "1" }

  • 0 - lazy 模式。请求 DMA 取消映射操作使用硬件 TLB 的延迟无效,以减少设备隔离为代价来提高吞吐量。如果相关 IOMMU 驱动程序不支持,将回退到 strict 模式。
  • 1 - Strict 模式.DMA 取消映射操作会同步使 IOMMU 硬件 TLB 无效。
  • unset - 使用 CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT} 的值。

    注意

    在 x86 上,通过传统的特定于驱动程序的一个选项指定的 strict 模式具有优先权。

mem_encrypt=[X86-64]

用于设置 AMD 安全内存加密(SME)控制的内核参数。

有效参数:on、off

默认值取决于内核配置选项:

  • on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y)
  • off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n)
  • mem_encrypt=on :激活 SME
  • mem_encrypt=off :不激活 SME

    有关何时可以激活内存加密的详情,请参阅 Documentation/virt/kvm/x86/amd-memory-encryption.rst

retbleed=[X86]

有了这个内核参数,您可以控制 RETBleed(带有返回指令的任意推测代码执行)漏洞的缓解。

仅使用基于 AMD 的 UNRET 和 IBPB 缓解不会同级线程影响其他同级线程的预测。因此,STIBP 用于支持它的处理器,并缓解不支持它的处理器上的 SMT。

  • off - 不缓解
  • auto - 自动选择一个缓解
  • auto,nosmt - 自动选择一个缓解,如果需要整个缓解则禁用 SMT(只在 Zen1 和没有 STIBP 的旧 Zen1 上)。
  • IBPB - 在 AMD 上,也缓解基本块边界上的短投机窗口。安全,最高的性能影响。它还启用 STIBP (如果存在的话)。不适用于 Intel。
  • unret - 强制启用未经训练的返回 thunks,仅对基于 AMD f15h-f17h 的系统有效。
  • unret,nosmt - 与 unret 类似,但将在 STIBP 不可用时禁用 SMT。这是没有 STIBP 的系统的替代选择。
swiotlb=[ARM,IA-64,PPC,MIPS,X86]

有了这个内核参数,您可以配置 I/O TLB slabs 的行为。

格式:{ <int> [,<int>] | force | noforce }

  • <int> - I/O TLB slabs 数
  • <int> - 逗号后的第二个整数。带有其自身锁的 swiotlb 区域的数量。必须为 2 的幂。
  • force - 强制使用 bounce 缓冲区,即使它们没有被内核自动使用
  • noforce - 永不使用 bounce 缓冲(用于调试)

新的 sysctl 参数

page_lock_unfairness
这个值决定了页面锁可以从服务员处被窃取的次数。在锁被窃取了该文件中指定的次数(默认为 5)后,会应用 fair lock handoff 语义,并且只有在可以取锁的情况下才会唤醒服务员。
rps_default_mask
新创建的网络设备上使用的默认 RPS CPU 掩码。空掩码表示默认禁用 RPS。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.