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 映射实现,例如
<kernel/dma/direct.c>:完全不使用硬件/软件 IOMMU(例如,因为您的内存 < 3 GB)。内核启动消息:“PCI-DMA: 禁用 IOMMU”
<arch/x86/kernel/amd_gart_64.c>:基于 AMD GART 的硬件 IOMMU。内核启动消息:“PCI-DMA:正在使用 GART IOMMU”
<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 检查开销。