Skip to content

Commit 858df1d

Browse files
committed
Merge tag 'x86-cleanups-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 cleanups from Ingo Molnar: "Miscellaneous x86 cleanups and typo fixes, and also the removal of the 'disablelapic' boot parameter" * tag 'x86-cleanups-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/ioapic: Remove a stray tab in the IO-APIC type string x86/cpufeatures: Remove "AMD" from the comments to the AMD-specific leaf Documentation/kernel-parameters: Fix a typo in kvm.enable_virt_at_load text x86/cpu: Fix typo in x86_match_cpu()'s doc x86/apic: Remove "disablelapic" cmdline option Documentation: Merge x86-specific boot options doc into kernel-parameters.txt x86/ioremap: Remove unused size parameter in remapping functions x86/ioremap: Simplify setup_data mapping variants x86/boot/compressed: Remove unused header includes from kaslr.c
2 parents 6c4aa89 + 0094014 commit 858df1d

File tree

14 files changed

+277
-434
lines changed

14 files changed

+277
-434
lines changed

Documentation/admin-guide/kernel-parameters.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,6 @@ is applicable::
194194
WDT Watchdog support is enabled.
195195
X86-32 X86-32, aka i386 architecture is enabled.
196196
X86-64 X86-64 architecture is enabled.
197-
More X86-64 boot options can be found in
198-
Documentation/arch/x86/x86_64/boot-options.rst.
199197
X86 Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
200198
X86_UV SGI UV support is enabled.
201199
XEN Xen support is enabled
@@ -213,7 +211,6 @@ Do not modify the syntax of boot loader parameters without extreme
213211
need or coordination with <Documentation/arch/x86/boot.rst>.
214212

215213
There are also arch-specific kernel-parameters not documented here.
216-
See for example <Documentation/arch/x86/x86_64/boot-options.rst>.
217214

218215
Note that ALL kernel parameters listed below are CASE SENSITIVE, and that
219216
a trailing = on the name of any parameter states that that parameter will

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 226 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
strictly ACPI specification compliant.
2222
rsdt -- prefer RSDT over (default) XSDT
2323
copy_dsdt -- copy DSDT to memory
24+
nocmcff -- Disable firmware first mode for corrected
25+
errors. This disables parsing the HEST CMC error
26+
source to check if firmware has set the FF flag. This
27+
may result in duplicate corrected error reports.
2428
nospcr -- disable console in ACPI SPCR table as
2529
default _serial_ console on ARM64
2630
For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or
@@ -405,6 +409,8 @@
405409
not play well with APC CPU idle - disable it if you have
406410
APC and your system crashes randomly.
407411

412+
apic [APIC,X86-64] Use IO-APIC. Default.
413+
408414
apic= [APIC,X86,EARLY] Advanced Programmable Interrupt Controller
409415
Change the output verbosity while booting
410416
Format: { quiet (default) | verbose | debug }
@@ -424,6 +430,10 @@
424430
useful so that a dump capture kernel won't be
425431
shot down by NMI
426432

433+
apicpmtimer Do APIC timer calibration using the pmtimer. Implies
434+
apicmaintimer. Useful when your PIT timer is totally
435+
broken.
436+
427437
autoconf= [IPV6]
428438
See Documentation/networking/ipv6.rst.
429439

@@ -1726,6 +1736,8 @@
17261736

17271737
off: Disable GDS mitigation.
17281738

1739+
gbpages [X86] Use GB pages for kernel direct mappings.
1740+
17291741
gcov_persist= [GCOV] When non-zero (default), profiling data for
17301742
kernel modules is saved and remains accessible via
17311743
debugfs, even when the module is unloaded/reloaded.
@@ -2008,12 +2020,21 @@
20082020

20092021
idle= [X86,EARLY]
20102022
Format: idle=poll, idle=halt, idle=nomwait
2011-
Poll forces a polling idle loop that can slightly
2012-
improve the performance of waking up a idle CPU, but
2013-
will use a lot of power and make the system run hot.
2014-
Not recommended.
2023+
2024+
idle=poll: Don't do power saving in the idle loop
2025+
using HLT, but poll for rescheduling event. This will
2026+
make the CPUs eat a lot more power, but may be useful
2027+
to get slightly better performance in multiprocessor
2028+
benchmarks. It also makes some profiling using
2029+
performance counters more accurate. Please note that
2030+
on systems with MONITOR/MWAIT support (like Intel
2031+
EM64T CPUs) this option has no performance advantage
2032+
over the normal idle loop. It may also interact badly
2033+
with hyperthreading.
2034+
20152035
idle=halt: Halt is forced to be used for CPU idle.
20162036
In such case C2/C3 won't be used again.
2037+
20172038
idle=nomwait: Disable mwait for CPU C-states
20182039

20192040
idxd.sva= [HW]
@@ -2311,20 +2332,73 @@
23112332
relaxed
23122333

23132334
iommu= [X86,EARLY]
2335+
23142336
off
2337+
Don't initialize and use any kind of IOMMU.
2338+
23152339
force
2340+
Force the use of the hardware IOMMU even when
2341+
it is not actually needed (e.g. because < 3 GB
2342+
memory).
2343+
23162344
noforce
2345+
Don't force hardware IOMMU usage when it is not
2346+
needed. (default).
2347+
23172348
biomerge
23182349
panic
23192350
nopanic
23202351
merge
23212352
nomerge
2353+
23222354
soft
2323-
pt [X86]
2324-
nopt [X86]
2325-
nobypass [PPC/POWERNV]
2355+
Use software bounce buffering (SWIOTLB) (default for
2356+
Intel machines). This can be used to prevent the usage
2357+
of an available hardware IOMMU.
2358+
2359+
[X86]
2360+
pt
2361+
[X86]
2362+
nopt
2363+
[PPC/POWERNV]
2364+
nobypass
23262365
Disable IOMMU bypass, using IOMMU for PCI devices.
23272366

2367+
[X86]
2368+
AMD Gart HW IOMMU-specific options:
2369+
2370+
<size>
2371+
Set the size of the remapping area in bytes.
2372+
2373+
allowed
2374+
Overwrite iommu off workarounds for specific chipsets
2375+
2376+
fullflush
2377+
Flush IOMMU on each allocation (default).
2378+
2379+
nofullflush
2380+
Don't use IOMMU fullflush.
2381+
2382+
memaper[=<order>]
2383+
Allocate an own aperture over RAM with size
2384+
32MB<<order. (default: order=1, i.e. 64MB)
2385+
2386+
merge
2387+
Do scatter-gather (SG) merging. Implies "force"
2388+
(experimental).
2389+
2390+
nomerge
2391+
Don't do scatter-gather (SG) merging.
2392+
2393+
noaperture
2394+
Ask the IOMMU not to touch the aperture for AGP.
2395+
2396+
noagp
2397+
Don't initialize the AGP driver and use full aperture.
2398+
2399+
panic
2400+
Always panic when IOMMU overflows.
2401+
23282402
iommu.forcedac= [ARM64,X86,EARLY] Control IOVA allocation for PCI devices.
23292403
Format: { "0" | "1" }
23302404
0 - Try to allocate a 32-bit DMA address first, before
@@ -2695,7 +2769,7 @@
26952769
VMs, i.e. on the 0=>1 and 1=>0 transitions of the
26962770
number of VMs.
26972771

2698-
Enabling virtualization at module lode avoids potential
2772+
Enabling virtualization at module load avoids potential
26992773
latency for creation of the 0=>1 VM, as KVM serializes
27002774
virtualization enabling across all online CPUs. The
27012775
"cost" of enabling virtualization when KVM is loaded,
@@ -3259,9 +3333,77 @@
32593333
devices can be requested on-demand with the
32603334
/dev/loop-control interface.
32613335

3262-
mce [X86-32] Machine Check Exception
3336+
mce= [X86-{32,64}]
3337+
3338+
Please see Documentation/arch/x86/x86_64/machinecheck.rst for sysfs runtime tunables.
3339+
3340+
off
3341+
disable machine check
3342+
3343+
no_cmci
3344+
disable CMCI(Corrected Machine Check Interrupt) that
3345+
Intel processor supports. Usually this disablement is
3346+
not recommended, but it might be handy if your
3347+
hardware is misbehaving.
3348+
3349+
Note that you'll get more problems without CMCI than
3350+
with due to the shared banks, i.e. you might get
3351+
duplicated error logs.
3352+
3353+
dont_log_ce
3354+
don't make logs for corrected errors. All events
3355+
reported as corrected are silently cleared by OS. This
3356+
option will be useful if you have no interest in any
3357+
of corrected errors.
3358+
3359+
ignore_ce
3360+
disable features for corrected errors, e.g.
3361+
polling timer and CMCI. All events reported as
3362+
corrected are not cleared by OS and remained in its
3363+
error banks.
3364+
3365+
Usually this disablement is not recommended, however
3366+
if there is an agent checking/clearing corrected
3367+
errors (e.g. BIOS or hardware monitoring
3368+
applications), conflicting with OS's error handling,
3369+
and you cannot deactivate the agent, then this option
3370+
will be a help.
3371+
3372+
no_lmce
3373+
do not opt-in to Local MCE delivery. Use legacy method
3374+
to broadcast MCEs.
3375+
3376+
bootlog
3377+
enable logging of machine checks left over from
3378+
booting. Disabled by default on AMD Fam10h and older
3379+
because some BIOS leave bogus ones.
3380+
3381+
If your BIOS doesn't do that it's a good idea to
3382+
enable though to make sure you log even machine check
3383+
events that result in a reboot. On Intel systems it is
3384+
enabled by default.
3385+
3386+
nobootlog
3387+
disable boot machine check logging.
3388+
3389+
monarchtimeout (number)
3390+
sets the time in us to wait for other CPUs on machine
3391+
checks. 0 to disable.
3392+
3393+
bios_cmci_threshold
3394+
don't overwrite the bios-set CMCI threshold. This boot
3395+
option prevents Linux from overwriting the CMCI
3396+
threshold set by the bios. Without this option, Linux
3397+
always sets the CMCI threshold to 1. Enabling this may
3398+
make memory predictive failure analysis less effective
3399+
if the bios sets thresholds for memory errors since we
3400+
will not see details for all errors.
3401+
3402+
recovery
3403+
force-enable recoverable machine check code paths
3404+
3405+
Everything else is in sysfs now.
32633406

3264-
mce=option [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
32653407

32663408
md= [HW] RAID subsystems devices and level
32673409
See Documentation/admin-guide/md.rst.
@@ -3887,6 +4029,8 @@
38874029
noapic [SMP,APIC,EARLY] Tells the kernel to not make use of any
38884030
IOAPICs that may be present in the system.
38894031

4032+
noapictimer [APIC,X86] Don't set up the APIC timer
4033+
38904034
noautogroup Disable scheduler automatic task group creation.
38914035

38924036
nocache [ARM,EARLY]
@@ -3934,6 +4078,8 @@
39344078
register save and restore. The kernel will only save
39354079
legacy floating-point registers on task switch.
39364080

4081+
nogbpages [X86] Do not use GB pages for kernel direct mappings.
4082+
39374083
no_hash_pointers
39384084
[KNL,EARLY]
39394085
Force pointers printed to the console or buffers to be
@@ -3960,6 +4106,8 @@
39604106
the impact of the sleep instructions. This is also
39614107
useful when using JTAG debugger.
39624108

4109+
nohpet [X86] Don't use the HPET timer.
4110+
39634111
nohugeiomap [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge I/O mappings.
39644112

39654113
nohugevmalloc [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge vmalloc mappings.
@@ -4111,8 +4259,10 @@
41114259

41124260
nosync [HW,M68K] Disables sync negotiation for all devices.
41134261

4114-
no_timer_check [X86,APIC] Disables the code which tests for
4115-
broken timer IRQ sources.
4262+
no_timer_check [X86,APIC] Disables the code which tests for broken
4263+
timer IRQ sources, i.e., the IO-APIC timer. This can
4264+
work around problems with incorrect timer
4265+
initialization on some boards.
41164266

41174267
no_uaccess_flush
41184268
[PPC,EARLY] Don't flush the L1-D cache after accessing user data.
@@ -4192,6 +4342,11 @@
41924342
If given as an integer followed by 'U', it will
41934343
divide each physical node into N emulated nodes.
41944344

4345+
numa=noacpi [X86] Don't parse the SRAT table for NUMA setup
4346+
4347+
numa=nohmat [X86] Don't parse the HMAT table for NUMA setup, or
4348+
soft-reserved memory partitioning.
4349+
41954350
numa_balancing= [KNL,ARM64,PPC,RISCV,S390,X86] Enable or disable automatic
41964351
NUMA balancing.
41974352
Allowed values are enable and disable
@@ -5715,6 +5870,55 @@
57155870
reboot_cpu is s[mp]#### with #### being the processor
57165871
to be used for rebooting.
57175872

5873+
acpi
5874+
Use the ACPI RESET_REG in the FADT. If ACPI is not
5875+
configured or the ACPI reset does not work, the reboot
5876+
path attempts the reset using the keyboard controller.
5877+
5878+
bios
5879+
Use the CPU reboot vector for warm reset
5880+
5881+
cold
5882+
Set the cold reboot flag
5883+
5884+
default
5885+
There are some built-in platform specific "quirks"
5886+
- you may see: "reboot: <name> series board detected.
5887+
Selecting <type> for reboots." In the case where you
5888+
think the quirk is in error (e.g. you have newer BIOS,
5889+
or newer board) using this option will ignore the
5890+
built-in quirk table, and use the generic default
5891+
reboot actions.
5892+
5893+
efi
5894+
Use efi reset_system runtime service. If EFI is not
5895+
configured or the EFI reset does not work, the reboot
5896+
path attempts the reset using the keyboard controller.
5897+
5898+
force
5899+
Don't stop other CPUs on reboot. This can make reboot
5900+
more reliable in some cases.
5901+
5902+
kbd
5903+
Use the keyboard controller. cold reset (default)
5904+
5905+
pci
5906+
Use a write to the PCI config space register 0xcf9 to
5907+
trigger reboot.
5908+
5909+
triple
5910+
Force a triple fault (init)
5911+
5912+
warm
5913+
Don't set the cold reboot flag
5914+
5915+
Using warm reset will be much faster especially on big
5916+
memory systems because the BIOS will not go through
5917+
the memory check. Disadvantage is that not all
5918+
hardware will be completely reinitialized on reboot so
5919+
there may be boot problems on some systems.
5920+
5921+
57185922
refscale.holdoff= [KNL]
57195923
Set test-start holdoff period. The purpose of
57205924
this parameter is to delay the start of the
@@ -6106,7 +6310,16 @@
61066310

61076311
serialnumber [BUGS=X86-32]
61086312

6109-
sev=option[,option...] [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
6313+
sev=option[,option...] [X86-64]
6314+
6315+
debug
6316+
Enable debug messages.
6317+
6318+
nosnp
6319+
Do not enable SEV-SNP (applies to host/hypervisor
6320+
only). Setting 'nosnp' avoids the RMP check overhead
6321+
in memory accesses when users do not want to run
6322+
SEV-SNP guests.
61106323

61116324
shapers= [NET]
61126325
Maximal number of shapers.

0 commit comments

Comments
 (0)