29.1. AMD64 特定启动选项

还有许多其他的(通常在驱动程序文档中记录),但此处仅列出 AMD64 特定的选项。

29.1.1. 机器检查

有关 sysfs 运行时可调参数,请参阅x86-64 机器检查代码的可配置 sysfs 参数

mce=off

禁用机器检查

mce=no_cmci

禁用 Intel 处理器支持的 CMCI(纠正的机器检查中断)。通常不建议禁用此项,但如果您的硬件行为异常,它可能会很方便。请注意,由于共享的库,没有 CMCI 可能会比有 CMCI 遇到更多问题,即您可能会获得重复的错误日志。

mce=dont_log_ce

不要为已纠正的错误生成日志。所有报告为已纠正的事件都会被操作系统静默清除。如果您对任何已纠正的错误都不感兴趣,则此选项将很有用。

mce=ignore_ce

禁用已纠正错误的功能,例如轮询计时器和 CMCI。所有报告为已纠正的事件都不会被操作系统清除,而是保留在其错误库中。通常不建议禁用此项,但是,如果有代理检查/清除已纠正的错误(例如,BIOS 或硬件监控应用程序)与操作系统的错误处理冲突,并且您无法停用该代理,那么此选项将有所帮助。

mce=no_lmce

不选择本地 MCE 传递。使用传统方法广播 MCE。

mce=bootlog

启用记录启动时遗留的机器检查。在 AMD Fam10h 和更早版本上默认禁用,因为某些 BIOS 会留下伪造的机器检查。如果您的 BIOS 没有这样做,则启用它是一个好主意,以确保您甚至记录导致重新启动的机器检查事件。在 Intel 系统上,默认启用此功能。

mce=nobootlog

禁用启动机器检查日志记录。

mce=monarchtimeout (数字)

monarchtimeout:设置等待其他 CPU 进行机器检查的时间(以微秒为单位)。0 表示禁用。

mce=bios_cmci_threshold

不要覆盖 BIOS 设置的 CMCI 阈值。此启动选项可防止 Linux 覆盖 BIOS 设置的 CMCI 阈值。如果不使用此选项,Linux 始终将 CMCI 阈值设置为 1。如果 BIOS 为内存错误设置阈值,启用此功能可能会降低内存预测故障分析的有效性,因为我们将看不到所有错误的详细信息。

mce=recovery

强制启用可恢复的机器检查代码路径

nomce (与 i386 兼容)

与 mce=off 相同

其他所有内容现在都在 sysfs 中。

29.1.2. APIC

apic

使用 IO-APIC。默认

noapic

不使用 IO-APIC。

disableapic

不使用本地 APIC

nolapic

不使用本地 APIC(i386 兼容的别名)

pirq=...

请参阅IO-APIC

noapictimer

不设置 APIC 计时器

no_timer_check

不检查 IO-APIC 计时器。这可以解决某些主板上计时器初始化不正确的问题。

apicpmtimer

使用 pmtimer 执行 APIC 计时器校准。暗示 apicmaintimer。当您的 PIT 计时器完全损坏时很有用。

29.1.3. 计时

notsc

已弃用,请改用 tsc=unstable。

nohpet

不使用 HPET 计时器。

29.1.4. 空闲循环

idle=poll

不要在空闲循环中使用 HLT 来节省电源,而是轮询重新调度事件。这将使 CPU 消耗更多电量,但可能有助于在多处理器基准测试中获得略微更好的性能。它还可以使使用性能计数器进行的一些分析更加准确。请注意,在支持 MONITOR/MWAIT 的系统上(如 Intel EM64T CPU),此选项与正常的空闲循环相比没有性能优势。它也可能与超线程产生不良的相互作用。

29.1.5. 重新启动

reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] | p[ci] [, [w]arm | [c]old]
bios

使用 CPU 重新启动向量进行热重置

warm

不设置冷重新启动标志

cold

设置冷重新启动标志

triple

强制三重错误 (init)

kbd

使用键盘控制器。冷重置(默认)

acpi

使用 FADT 中的 ACPI RESET_REG。如果未配置 ACPI 或 ACPI 重置不起作用,则重新启动路径将尝试使用键盘控制器进行重置。

efi

使用 efi reset_system 运行时服务。如果未配置 EFI 或 EFI 重置不起作用,则重新启动路径将尝试使用键盘控制器进行重置。

pci

使用对 PCI 配置空间寄存器 0xcf9 的写入来触发重新启动。

使用热重置会快得多,尤其是在大型内存系统上,因为 BIOS 不会进行内存检查。缺点是并非所有硬件都会在重新启动时完全重新初始化,因此某些系统可能会出现启动问题。

reboot=force

不要在重新启动时停止其他 CPU。在某些情况下,这可以使重新启动更加可靠。

reboot=default

有一些内置的特定于平台的“怪癖” - 您可能会看到:“重新启动:检测到 <名称> 系列主板。为重新启动选择 <类型>。” 如果您认为怪癖有误(例如,您有较新的 BIOS 或较新的主板),则使用此选项将忽略内置的怪癖表,并使用通用默认重新启动操作。

29.1.6. NUMA

numa=off

仅设置一个跨越所有内存的 NUMA 节点。

numa=noacpi

不要解析 SRAT 表进行 NUMA 设置

numa=nohmat

不要解析 HMAT 表进行 NUMA 设置或软保留内存分区。

29.1.7. ACPI

acpi=off

不启用 ACPI

acpi=ht

使用 ACPI 启动表解析,但不启用 ACPI 解释器

acpi=force

强制启用 ACPI(目前不需要)

acpi=strict

禁用超出规范的 ACPI 解决方法。

acpi_sci={edge,level,high,low}

设置 ACPI SCI 中断。

acpi=noirq

不路由中断

acpi=nocmcff

禁用已纠正错误的固件优先模式。这将禁用解析 HEST CMC 错误源以检查固件是否设置了 FF 标志。这可能会导致重复的已纠正错误报告。

29.1.8. PCI

pci=off

不使用 PCI

pci=conf1

使用 conf1 访问。

pci=conf2

使用 conf2 访问。

pci=rom

分配 ROM。

pci=assign-busses

分配总线

pci=irqmask=MASK

将 PCI 中断掩码设置为 MASK

pci=lastbus=NUMBER

扫描最多 NUMBER 个总线,无论 mptable 如何指示。

pci=noacpi

不使用 ACPI 设置 PCI 中断路由。

29.1.9. IOMMU (输入/输出内存管理单元)

存在多种 x86-64 PCI-DMA 映射实现,例如

  1. <kernel/dma/direct.c>:完全不使用硬件/软件 IOMMU(例如,因为您的内存 < 3 GB)。内核启动消息:“PCI-DMA: 禁用 IOMMU”

  2. <arch/x86/kernel/amd_gart_64.c>:基于 AMD GART 的硬件 IOMMU。内核启动消息:“PCI-DMA:正在使用 GART IOMMU”

  3. <arch/x86_64/kernel/pci-swiotlb.c>:软件 IOMMU 实现。例如,如果系统中没有硬件 IOMMU 并且需要使用它,因为您的内存 > 3GB 或者告诉内核使用它 (iommu=soft)) 内核启动消息:“PCI-DMA:正在为 IO 使用软件反弹缓冲 (SWIOTLB)”

iommu=[<size>][,noagp][,off][,force][,noforce]
[,memaper[=<order>]][,merge][,fullflush][,nomerge]
[,noaperture]

通用 iommu 选项

off

不初始化和使用任何类型的 IOMMU。

noforce

在不需要时,不强制使用硬件 IOMMU。(默认)。

force

即使实际上不需要(例如,因为内存 < 3 GB),也强制使用硬件 IOMMU。

soft

使用软件反弹缓冲 (SWIOTLB)(Intel 机器的默认设置)。这可以用于阻止使用可用的硬件 IOMMU。

仅与 AMD GART 硬件 IOMMU 相关的 iommu 选项

<大小>

设置重映射区域的大小(以字节为单位)。

allowed

覆盖特定芯片组的 iommu 关闭解决方法。

fullflush

在每次分配时刷新 IOMMU(默认)。

nofullflush

不使用 IOMMU fullflush。

memaper[=<顺序>]

分配一个大小为 32MB<<顺序的 RAM 上自己的光圈。(默认: 顺序=1, 即 64MB)

merge

进行分散-收集 (SG) 合并。暗示“force”(实验性)。

nomerge

不要进行分散-聚集 (SG) 合并。

noaperture

请求 IOMMU 不要触碰 AGP 的孔径。

noagp

不要初始化 AGP 驱动程序并使用全部孔径。

panic

当 IOMMU 溢出时始终引发 panic。

IOMMU 选项仅与软件反弹缓冲 (SWIOTLB) IOMMU 实现相关

swiotlb=<slots>[,force,noforce]
<slots>

为软件 IO 反弹缓冲预留指定数量的 2K 插槽。

force

强制所有 IO 通过软件 TLB。

noforce

不初始化软件 TLB。

29.1.10. 杂项

nogbpages

不要对内核直接映射使用 GB 页面。

gbpages

对内核直接映射使用 GB 页面。

29.1.11. AMD SEV (安全加密虚拟化)

与 AMD SEV 相关的选项,通过以下格式指定

sev=option1[,option2]

可用的选项有

debug

启用调试消息。

nosnp

不启用 SEV-SNP(仅适用于主机/虚拟机管理程序)。当用户不想运行 SEV-SNP 访客时,设置“nosnp”可避免内存访问中的 RMP 检查开销。