accept_memory= [MM] | |
Format: { eager | lazy } | |
default: lazy | |
By default, unaccepted memory is accepted lazily to | |
avoid prolonged boot times. The lazy option will add | |
some runtime overhead until all memory is eventually | |
accepted. In most cases the overhead is negligible. | |
For some workloads or for debugging purposes | |
accept_memory=eager can be used to accept all memory | |
at once during boot. | |
acpi= [HW,ACPI,X86,ARM64,RISCV64,EARLY] | |
Advanced Configuration and Power Interface | |
Format: { force | on | off | strict | noirq | rsdt | | |
copy_dsdt | nospcr } | |
force -- enable ACPI if default was off | |
on -- enable ACPI but allow fallback to DT [arm64,riscv64] | |
off -- disable ACPI if default was on | |
noirq -- do not use ACPI for IRQ routing | |
strict -- Be less tolerant of platforms that are not | |
strictly ACPI specification compliant. | |
rsdt -- prefer RSDT over (default) XSDT | |
copy_dsdt -- copy DSDT to memory | |
nospcr -- disable console in ACPI SPCR table as | |
default _serial_ console on ARM64 | |
For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or | |
"acpi=nospcr" are available | |
For RISCV64, ONLY "acpi=off", "acpi=on" or "acpi=force" | |
are available | |
See also Documentation/power/runtime_pm.rst, pci=noacpi | |
acpi_apic_instance= [ACPI,IOAPIC,EARLY] | |
Format: <int> | |
2: use 2nd APIC table, if available | |
1,0: use 1st APIC table | |
default: 0 | |
acpi_backlight= [HW,ACPI] | |
{ vendor | video | native | none } | |
If set to vendor, prefer vendor-specific driver | |
(e.g. thinkpad_acpi, sony_acpi, etc.) instead | |
of the ACPI video.ko driver. | |
If set to video, use the ACPI video.ko driver. | |
If set to native, use the device's native backlight mode. | |
If set to none, disable the ACPI backlight interface. | |
acpi_force_32bit_fadt_addr [ACPI,EARLY] | |
force FADT to use 32 bit addresses rather than the | |
64 bit X_* addresses. Some firmware have broken 64 | |
bit addresses for force ACPI ignore these and use | |
the older legacy 32 bit addresses. | |
acpica_no_return_repair [HW, ACPI] | |
Disable AML predefined validation mechanism | |
This mechanism can repair the evaluation result to make | |
the return objects more ACPI specification compliant. | |
This option is useful for developers to identify the | |
root cause of an AML interpreter issue when the issue | |
has something to do with the repair mechanism. | |
acpi.debug_layer= [HW,ACPI,ACPI_DEBUG] | |
acpi.debug_level= [HW,ACPI,ACPI_DEBUG] | |
Format: <int> | |
CONFIG_ACPI_DEBUG must be enabled to produce any ACPI | |
debug output. Bits in debug_layer correspond to a | |
_COMPONENT in an ACPI source file, e.g., | |
#define _COMPONENT ACPI_EVENTS | |
Bits in debug_level correspond to a level in | |
ACPI_DEBUG_PRINT statements, e.g., | |
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... | |
The debug_level mask defaults to "info". See | |
Documentation/firmware-guide/acpi/debug.rst for more information about | |
debug layers and levels. | |
Enable processor driver info messages: | |
acpi.debug_layer=0x20000000 | |
Enable AML "Debug" output, i.e., stores to the Debug | |
object while interpreting AML: | |
acpi.debug_layer=0xffffffff acpi.debug_level=0x2 | |
Enable all messages related to ACPI hardware: | |
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff | |
Some values produce so much output that the system is | |
unusable. The "log_buf_len" parameter may be useful | |
if you need to capture more output. | |
acpi_enforce_resources= [ACPI] | |
{ strict | lax | no } | |
Check for resource conflicts between native drivers | |
and ACPI OperationRegions (SystemIO and SystemMemory | |
only). IO ports and memory declared in ACPI might be | |
used by the ACPI subsystem in arbitrary AML code and | |
can interfere with legacy drivers. | |
strict (default): access to resources claimed by ACPI | |
is denied; legacy drivers trying to access reserved | |
resources will fail to bind to device using them. | |
lax: access to resources claimed by ACPI is allowed; | |
legacy drivers trying to access reserved resources | |
will bind successfully but a warning message is logged. | |
no: ACPI OperationRegions are not marked as reserved, | |
no further checks are performed. | |
acpi_force_table_verification [HW,ACPI,EARLY] | |
Enable table checksum verification during early stage. | |
By default, this is disabled due to x86 early mapping | |
size limitation. | |
acpi_irq_balance [HW,ACPI] | |
ACPI will balance active IRQs | |
default in APIC mode | |
acpi_irq_nobalance [HW,ACPI] | |
ACPI will not move active IRQs (default) | |
default in PIC mode | |
acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA | |
Format: <irq>,<irq>... | |
acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for | |
use by PCI | |
Format: <irq>,<irq>... | |
acpi_mask_gpe= [HW,ACPI] | |
Due to the existence of _Lxx/_Exx, some GPEs triggered | |
by unsupported hardware/firmware features can result in | |
GPE floodings that cannot be automatically disabled by | |
the GPE dispatcher. | |
This facility can be used to prevent such uncontrolled | |
GPE floodings. | |
Format: <byte> or <bitmap-list> | |
acpi_no_auto_serialize [HW,ACPI] | |
Disable auto-serialization of AML methods | |
AML control methods that contain the opcodes to create | |
named objects will be marked as "Serialized" by the | |
auto-serialization feature. | |
This feature is enabled by default. | |
This option allows to turn off the feature. | |
acpi_no_memhotplug [ACPI] Disable memory hotplug. Useful for kdump | |
kernels. | |
acpi_no_static_ssdt [HW,ACPI,EARLY] | |
Disable installation of static SSDTs at early boot time | |
By default, SSDTs contained in the RSDT/XSDT will be | |
installed automatically and they will appear under | |
/sys/firmware/acpi/tables. | |
This option turns off this feature. | |
Note that specifying this option does not affect | |
dynamic table installation which will install SSDT | |
tables to /sys/firmware/acpi/tables/dynamic. | |
acpi_no_watchdog [HW,ACPI,WDT] | |
Ignore the ACPI-based watchdog interface (WDAT) and let | |
a native driver control the watchdog device instead. | |
acpi_rsdp= [ACPI,EFI,KEXEC,EARLY] | |
Pass the RSDP address to the kernel, mostly used | |
on machines running EFI runtime service to boot the | |
second kernel for kdump. | |
acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS | |
Format: To spoof as Windows 98: ="Microsoft Windows" | |
acpi_rev_override [ACPI] Override the _REV object to return 5 (instead | |
of 2 which is mandated by ACPI 6) as the supported ACPI | |
specification revision (when using this switch, it may | |
be necessary to carry out a cold reboot _twice_ in a | |
row to make it take effect on the platform firmware). | |
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings | |
acpi_osi="string1" # add string1 | |
acpi_osi="!string2" # remove string2 | |
acpi_osi=!* # remove all strings | |
acpi_osi=! # disable all built-in OS vendor | |
strings | |
acpi_osi=!! # enable all built-in OS vendor | |
strings | |
acpi_osi= # disable all strings | |
'acpi_osi=!' can be used in combination with single or | |
multiple 'acpi_osi="string1"' to support specific OS | |
vendor string(s). Note that such command can only | |
affect the default state of the OS vendor strings, thus | |
it cannot affect the default state of the feature group | |
strings and the current state of the OS vendor strings, | |
specifying it multiple times through kernel command line | |
is meaningless. This command is useful when one do not | |
care about the state of the feature group strings which | |
should be controlled by the OSPM. | |
Examples: | |
1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent | |
to 'acpi_osi="Windows 2000" acpi_osi=!', they all | |
can make '_OSI("Windows 2000")' TRUE. | |
'acpi_osi=' cannot be used in combination with other | |
'acpi_osi=' command lines, the _OSI method will not | |
exist in the ACPI namespace. NOTE that such command can | |
only affect the _OSI support state, thus specifying it | |
multiple times through kernel command line is also | |
meaningless. | |
Examples: | |
1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)' | |
FALSE. | |
'acpi_osi=!*' can be used in combination with single or | |
multiple 'acpi_osi="string1"' to support specific | |
string(s). Note that such command can affect the | |
current state of both the OS vendor strings and the | |
feature group strings, thus specifying it multiple times | |
through kernel command line is meaningful. But it may | |
still not able to affect the final state of a string if | |
there are quirks related to this string. This command | |
is useful when one want to control the state of the | |
feature group strings to debug BIOS issues related to | |
the OSPM features. | |
Examples: | |
1. 'acpi_osi="Module Device" acpi_osi=!*' can make | |
'_OSI("Module Device")' FALSE. | |
2. 'acpi_osi=!* acpi_osi="Module Device"' can make | |
'_OSI("Module Device")' TRUE. | |
3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is | |
equivalent to | |
'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"' | |
and | |
'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!', | |
they all will make '_OSI("Windows 2000")' TRUE. | |
acpi_pm_good [X86] | |
Override the pmtimer bug detection: force the kernel | |
to assume that this machine's pmtimer latches its value | |
and always returns good values. | |
acpi_sci= [HW,ACPI,EARLY] ACPI System Control Interrupt trigger mode | |
Format: { level | edge | high | low } | |
acpi_skip_timer_override [HW,ACPI,EARLY] | |
Recognize and ignore IRQ0/pin2 Interrupt Override. | |
For broken nForce2 BIOS resulting in XT-PIC timer. | |
acpi_sleep= [HW,ACPI] Sleep options | |
Format: { s3_bios, s3_mode, s3_beep, s4_hwsig, | |
s4_nohwsig, old_ordering, nonvs, | |
sci_force_enable, nobl } | |
See Documentation/power/video.rst for information on | |
s3_bios and s3_mode. | |
s3_beep is for debugging; it makes the PC's speaker beep | |
as soon as the kernel's real-mode entry point is called. | |
s4_hwsig causes the kernel to check the ACPI hardware | |
signature during resume from hibernation, and gracefully | |
refuse to resume if it has changed. This complies with | |
the ACPI specification but not with reality, since | |
Windows does not do this and many laptops do change it | |
on docking. So the default behaviour is to allow resume | |
and simply warn when the signature changes, unless the | |
s4_hwsig option is enabled. | |
s4_nohwsig prevents ACPI hardware signature from being | |
used (or even warned about) during resume. | |
old_ordering causes the ACPI 1.0 ordering of the _PTS | |
control method, with respect to putting devices into | |
low power states, to be enforced (the ACPI 2.0 ordering | |
of _PTS is used by default). | |
nonvs prevents the kernel from saving/restoring the | |
ACPI NVS memory during suspend/hibernation and resume. | |
sci_force_enable causes the kernel to set SCI_EN directly | |
on resume from S1/S3 (which is against the ACPI spec, | |
but some broken systems don't work without it). | |
nobl causes the internal blacklist of systems known to | |
behave incorrectly in some ways with respect to system | |
suspend and resume to be ignored (use wisely). | |
acpi_use_timer_override [HW,ACPI,EARLY] | |
Use timer override. For some broken Nvidia NF5 boards | |
that require a timer override, but don't have HPET | |
add_efi_memmap [EFI,X86,EARLY] Include EFI memory map in | |
kernel's map of available physical RAM. | |
agp= [AGP] | |
{ off | try_unsupported } | |
off: disable AGP support | |
try_unsupported: try to drive unsupported chipsets | |
(may crash computer or cause data corruption) | |
ALSA [HW,ALSA] | |
See Documentation/sound/alsa-configuration.rst | |
alignment= [KNL,ARM] | |
Allow the default userspace alignment fault handler | |
behaviour to be specified. Bit 0 enables warnings, | |
bit 1 enables fixups, and bit 2 sends a segfault. | |
align_va_addr= [X86-64] | |
Align virtual addresses by clearing slice [14:12] when | |
allocating a VMA at process creation time. This option | |
gives you up to 3% performance improvement on AMD F15h | |
machines (where it is enabled by default) for a | |
CPU-intensive style benchmark, and it can vary highly in | |
a microbenchmark depending on workload and compiler. | |
32: only for 32-bit processes | |
64: only for 64-bit processes | |
on: enable for both 32- and 64-bit processes | |
off: disable for both 32- and 64-bit processes | |
alloc_snapshot [FTRACE] | |
Allocate the ftrace snapshot buffer on boot up when the | |
main buffer is allocated. This is handy if debugging | |
and you need to use tracing_snapshot() on boot up, and | |
do not want to use tracing_snapshot_alloc() as it needs | |
to be done where GFP_KERNEL allocations are allowed. | |
allow_mismatched_32bit_el0 [ARM64,EARLY] | |
Allow execve() of 32-bit applications and setting of the | |
PER_LINUX32 personality on systems where only a strict | |
subset of the CPUs support 32-bit EL0. When this | |
parameter is present, the set of CPUs supporting 32-bit | |
EL0 is indicated by /sys/devices/system/cpu/aarch32_el0 | |
and hot-unplug operations may be restricted. | |
See Documentation/arch/arm64/asymmetric-32bit.rst for more | |
information. | |
amd_iommu= [HW,X86-64] | |
Pass parameters to the AMD IOMMU driver in the system. | |
Possible values are: | |
fullflush - Deprecated, equivalent to iommu.strict=1 | |
off - do not initialize any AMD IOMMU found in | |
the system | |
force_isolation - Force device isolation for all | |
devices. The IOMMU driver is not | |
allowed anymore to lift isolation | |
requirements as needed. This option | |
does not override iommu=pt | |
force_enable - Force enable the IOMMU on platforms known | |
to be buggy with IOMMU enabled. Use this | |
option with care. | |
pgtbl_v1 - Use v1 page table for DMA-API (Default). | |
pgtbl_v2 - Use v2 page table for DMA-API. | |
irtcachedis - Disable Interrupt Remapping Table (IRT) caching. | |
nohugepages - Limit page-sizes used for v1 page-tables | |
to 4 KiB. | |
v2_pgsizes_only - Limit page-sizes used for v1 page-tables | |
to 4KiB/2Mib/1GiB. | |
amd_iommu_dump= [HW,X86-64] | |
Enable AMD IOMMU driver option to dump the ACPI table | |
for AMD IOMMU. With this option enabled, AMD IOMMU | |
driver will print ACPI tables for AMD IOMMU during | |
IOMMU initialization. | |
amd_iommu_intr= [HW,X86-64] | |
Specifies one of the following AMD IOMMU interrupt | |
remapping modes: | |
legacy - Use legacy interrupt remapping mode. | |
vapic - Use virtual APIC mode, which allows IOMMU | |
to inject interrupts directly into guest. | |
This mode requires kvm-amd.avic=1. | |
(Default when IOMMU HW support is present.) | |
amd_pstate= [X86,EARLY] | |
disable | |
Do not enable amd_pstate as the default | |
scaling driver for the supported processors | |
passive | |
Use amd_pstate with passive mode as a scaling driver. | |
In this mode autonomous selection is disabled. | |
Driver requests a desired performance level and platform | |
tries to match the same performance level if it is | |
satisfied by guaranteed performance level. | |
active | |
Use amd_pstate_epp driver instance as the scaling driver, | |
driver provides a hint to the hardware if software wants | |
to bias toward performance (0x0) or energy efficiency (0xff) | |
to the CPPC firmware. then CPPC power algorithm will | |
calculate the runtime workload and adjust the realtime cores | |
frequency. | |
guided | |
Activate guided autonomous mode. Driver requests minimum and | |
maximum performance level and the platform autonomously | |
selects a performance level in this range and appropriate | |
to the current workload. | |
amd_prefcore= | |
[X86] | |
disable | |
Disable amd-pstate preferred core. | |
amijoy.map= [HW,JOY] Amiga joystick support | |
Map of devices attached to JOY0DAT and JOY1DAT | |
Format: <a>,<b> | |
See also Documentation/input/joydev/joystick.rst | |
analog.map= [HW,JOY] Analog joystick and gamepad support | |
Specifies type or capabilities of an analog joystick | |
connected to one of 16 gameports | |
Format: <type1>,<type2>,..<type16> | |
apc= [HW,SPARC] | |
Power management functions (SPARCstation-4/5 + deriv.) | |
Format: noidle | |
Disable APC CPU standby support. SPARCstation-Fox does | |
not play well with APC CPU idle - disable it if you have | |
APC and your system crashes randomly. | |
apic= [APIC,X86,EARLY] Advanced Programmable Interrupt Controller | |
Change the output verbosity while booting | |
Format: { quiet (default) | verbose | debug } | |
Change the amount of debugging information output | |
when initialising the APIC and IO-APIC components. | |
For X86-32, this can also be used to specify an APIC | |
driver name. | |
Format: apic=driver_name | |
Examples: apic=bigsmp | |
apic_extnmi= [APIC,X86,EARLY] External NMI delivery setting | |
Format: { bsp (default) | all | none } | |
bsp: External NMI is delivered only to CPU 0 | |
all: External NMIs are broadcast to all CPUs as a | |
backup of CPU 0 | |
none: External NMI is masked for all CPUs. This is | |
useful so that a dump capture kernel won't be | |
shot down by NMI | |
autoconf= [IPV6] | |
See Documentation/networking/ipv6.rst. | |
apm= [APM] Advanced Power Management | |
See header of arch/x86/kernel/apm_32.c. | |
apparmor= [APPARMOR] Disable or enable AppArmor at boot time | |
Format: { "0" | "1" } | |
See security/apparmor/Kconfig help text | |
0 -- disable. | |
1 -- enable. | |
Default value is set via kernel config option. | |
arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards | |
Format: <io>,<irq>,<nodeID> | |
arm64.no32bit_el0 [ARM64] Unconditionally disable the execution of | |
32 bit applications. | |
arm64.nobti [ARM64] Unconditionally disable Branch Target | |
Identification support | |
arm64.nogcs [ARM64] Unconditionally disable Guarded Control Stack | |
support | |
arm64.nomops [ARM64] Unconditionally disable Memory Copy and Memory | |
Set instructions support | |
arm64.nomte [ARM64] Unconditionally disable Memory Tagging Extension | |
support | |
arm64.nopauth [ARM64] Unconditionally disable Pointer Authentication | |
support | |
arm64.nosme [ARM64] Unconditionally disable Scalable Matrix | |
Extension support | |
arm64.nosve [ARM64] Unconditionally disable Scalable Vector | |
Extension support | |
ataflop= [HW,M68k] | |
atarimouse= [HW,MOUSE] Atari Mouse | |
atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess, | |
EzKey and similar keyboards | |
atkbd.reset= [HW] Reset keyboard during initialization | |
atkbd.set= [HW] Select keyboard code set | |
Format: <int> (2 = AT (default), 3 = PS/2) | |
atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar | |
keyboards | |
atkbd.softraw= [HW] Choose between synthetic and real raw mode | |
Format: <bool> (0 = real, 1 = synthetic (default)) | |
atkbd.softrepeat= [HW] | |
Use software keyboard repeat | |
audit= [KNL] Enable the audit sub-system | |
Format: { "0" | "1" | "off" | "on" } | |
0 | off - kernel audit is disabled and can not be | |
enabled until the next reboot | |
unset - kernel audit is initialized but disabled and | |
will be fully enabled by the userspace auditd. | |
1 | on - kernel audit is initialized and partially | |
enabled, storing at most audit_backlog_limit | |
messages in RAM until it is fully enabled by the | |
userspace auditd. | |
Default: unset | |
audit_backlog_limit= [KNL] Set the audit queue size limit. | |
Format: <int> (must be >=0) | |
Default: 64 | |
bau= [X86_UV] Enable the BAU on SGI UV. The default | |
behavior is to disable the BAU (i.e. bau=0). | |
Format: { "0" | "1" } | |
0 - Disable the BAU. | |
1 - Enable the BAU. | |
unset - Disable the BAU. | |
baycom_epp= [HW,AX25] | |
Format: <io>,<mode> | |
baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem | |
Format: <io>,<mode> | |
See header of drivers/net/hamradio/baycom_par.c. | |
baycom_ser_fdx= [HW,AX25] | |
BayCom Serial Port AX.25 Modem (Full Duplex Mode) | |
Format: <io>,<irq>,<mode>[,<baud>] | |
See header of drivers/net/hamradio/baycom_ser_fdx.c. | |
baycom_ser_hdx= [HW,AX25] | |
BayCom Serial Port AX.25 Modem (Half Duplex Mode) | |
Format: <io>,<irq>,<mode> | |
See header of drivers/net/hamradio/baycom_ser_hdx.c. | |
bdev_allow_write_mounted= | |
Format: <bool> | |
Control the ability to open a mounted block device | |
for writing, i.e., allow / disallow writes that bypass | |
the FS. This was implemented as a means to prevent | |
fuzzers from crashing the kernel by overwriting the | |
metadata underneath a mounted FS without its awareness. | |
This also prevents destructive formatting of mounted | |
filesystems by naive storage tooling that don't use | |
O_EXCL. Default is Y and can be changed through the | |
Kconfig option CONFIG_BLK_DEV_WRITE_MOUNTED. | |
bert_disable [ACPI] | |
Disable BERT OS support on buggy BIOSes. | |
bgrt_disable [ACPI,X86,EARLY] | |
Disable BGRT to avoid flickering OEM logo. | |
blkdevparts= Manual partition parsing of block device(s) for | |
embedded devices based on command line input. | |
See Documentation/block/cmdline-partition.rst | |
boot_delay= [KNL,EARLY] | |
Milliseconds to delay each printk during boot. | |
Only works if CONFIG_BOOT_PRINTK_DELAY is enabled, | |
and you may also have to specify "lpj=". Boot_delay | |
values larger than 10 seconds (10000) are assumed | |
erroneous and ignored. | |
Format: integer | |
bootconfig [KNL,EARLY] | |
Extended command line options can be added to an initrd | |
and this will cause the kernel to look for it. | |
See Documentation/admin-guide/bootconfig.rst | |
bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards) | |
bttv.radio= Most important insmod options are available as | |
kernel args too. | |
bttv.pll= See Documentation/admin-guide/media/bttv.rst | |
bttv.tuner= | |
bulk_remove=off [PPC] This parameter disables the use of the pSeries | |
firmware feature for flushing multiple hpte entries | |
at a time. | |
c101= [NET] Moxa C101 synchronous serial card | |
cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection. | |
Sometimes CPU hardware bugs make them report the cache | |
size incorrectly. The kernel will attempt work arounds | |
to fix known problems, but for some CPUs it is not | |
possible to determine what the correct size should be. | |
This option provides an override for these situations. | |
carrier_timeout= | |
[NET] Specifies amount of time (in seconds) that | |
the kernel should wait for a network carrier. By default | |
it waits 120 seconds. | |
ca_keys= [KEYS] This parameter identifies a specific key(s) on | |
the system trusted keyring to be used for certificate | |
trust validation. | |
format: { id:<keyid> | builtin } | |
cca= [MIPS,EARLY] Override the kernel pages' cache coherency | |
algorithm. Accepted values range from 0 to 7 | |
inclusive. See arch/mips/include/asm/pgtable-bits.h | |
for platform specific values (SB1, Loongson3 and | |
others). | |
ccw_timeout_log [S390] | |
See Documentation/arch/s390/common_io.rst for details. | |
cgroup_disable= [KNL] Disable a particular controller or optional feature | |
Format: {name of the controller(s) or feature(s) to disable} | |
The effects of cgroup_disable=foo are: | |
- foo isn't auto-mounted if you mount all cgroups in | |
a single hierarchy | |
- foo isn't visible as an individually mountable | |
subsystem | |
- if foo is an optional feature then the feature is | |
disabled and corresponding cgroup files are not | |
created | |
{Currently only "memory" controller deal with this and | |
cut the overhead, others just disable the usage. So | |
only cgroup_disable=memory is actually worthy} | |
Specifying "pressure" disables per-cgroup pressure | |
stall information accounting feature | |
cgroup_no_v1= [KNL] Disable cgroup controllers and named hierarchies in v1 | |
Format: { { controller | "all" | "named" } | |
[,{ controller | "all" | "named" }...] } | |
Like cgroup_disable, but only applies to cgroup v1; | |
the blacklisted controllers remain available in cgroup2. | |
"all" blacklists all controllers and "named" disables | |
named mounts. Specifying both "all" and "named" disables | |
all v1 hierarchies. | |
cgroup_favordynmods= [KNL] Enable or Disable favordynmods. | |
Format: { "true" | "false" } | |
Defaults to the value of CONFIG_CGROUP_FAVOR_DYNMODS. | |
cgroup.memory= [KNL] Pass options to the cgroup memory controller. | |
Format: <string> | |
nosocket -- Disable socket memory accounting. | |
nokmem -- Disable kernel memory accounting. | |
nobpf -- Disable BPF memory accounting. | |
checkreqprot= [SELINUX] Set initial checkreqprot flag value. | |
Format: { "0" | "1" } | |
See security/selinux/Kconfig help text. | |
0 -- check protection applied by kernel (includes | |
any implied execute protection). | |
1 -- check protection requested by application. | |
Default value is set via a kernel config option. | |
Value can be changed at runtime via | |
/sys/fs/selinux/checkreqprot. | |
Setting checkreqprot to 1 is deprecated. | |
cio_ignore= [S390] | |
See Documentation/arch/s390/common_io.rst for details. | |
clearcpuid=X[,X...] [X86] | |
Disable CPUID feature X for the kernel. See | |
arch/x86/include/asm/cpufeatures.h for the valid bit | |
numbers X. Note the Linux-specific bits are not necessarily | |
stable over kernel options, but the vendor-specific | |
ones should be. | |
X can also be a string as appearing in the flags: line | |
in /proc/cpuinfo which does not have the above | |
instability issue. However, not all features have names | |
in /proc/cpuinfo. | |
Note that using this option will taint your kernel. | |
Also note that user programs calling CPUID directly | |
or using the feature without checking anything | |
will still see it. This just prevents it from | |
being used by the kernel or shown in /proc/cpuinfo. | |
Also note the kernel might malfunction if you disable | |
some critical bits. | |
clk_ignore_unused | |
[CLK] | |
Prevents the clock framework from automatically gating | |
clocks that have not been explicitly enabled by a Linux | |
device driver but are enabled in hardware at reset or | |
by the bootloader/firmware. Note that this does not | |
force such clocks to be always-on nor does it reserve | |
those clocks in any way. This parameter is useful for | |
debug and development, but should not be needed on a | |
platform with proper driver support. For more | |
information, see Documentation/driver-api/clk.rst. | |
clock= [BUGS=X86-32, HW] gettimeofday clocksource override. | |
[Deprecated] | |
Forces specified clocksource (if available) to be used | |
when calculating gettimeofday(). If specified | |
clocksource is not available, it defaults to PIT. | |
Format: { pit | tsc | cyclone | pmtmr } | |
clocksource= Override the default clocksource | |
Format: <string> | |
Override the default clocksource and use the clocksource | |
with the name specified. | |
Some clocksource names to choose from, depending on | |
the platform: | |
[all] jiffies (this is the base, fallback clocksource) | |
[ACPI] acpi_pm | |
[ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, | |
pxa_timer,timer3,32k_counter,timer0_1 | |
[X86-32] pit,hpet,tsc; | |
scx200_hrt on Geode; cyclone on IBM x440 | |
[MIPS] MIPS | |
[PARISC] cr16 | |
[S390] tod | |
[SH] SuperH | |
[SPARC64] tick | |
[X86-64] hpet,tsc | |
clocksource.arm_arch_timer.evtstrm= | |
[ARM,ARM64,EARLY] | |
Format: <bool> | |
Enable/disable the eventstream feature of the ARM | |
architected timer so that code using WFE-based polling | |
loops can be debugged more effectively on production | |
systems. | |
clocksource.verify_n_cpus= [KNL] | |
Limit the number of CPUs checked for clocksources | |
marked with CLOCK_SOURCE_VERIFY_PERCPU that | |
are marked unstable due to excessive skew. | |
A negative value says to check all CPUs, while | |
zero says not to check any. Values larger than | |
nr_cpu_ids are silently truncated to nr_cpu_ids. | |
The actual CPUs are chosen randomly, with | |
no replacement if the same CPU is chosen twice. | |
clocksource-wdtest.holdoff= [KNL] | |
Set the time in seconds that the clocksource | |
watchdog test waits before commencing its tests. | |
Defaults to zero when built as a module and to | |
10 seconds when built into the kernel. | |
cma=nn[MG]@[start[MG][-end[MG]]] | |
[KNL,CMA,EARLY] | |
Sets the size of kernel global memory area for | |
contiguous memory allocations and optionally the | |
placement constraint by the physical address range of | |
memory allocations. A value of 0 disables CMA | |
altogether. For more information, see | |
kernel/dma/contiguous.c | |
cma_pernuma=nn[MG] | |
[KNL,CMA,EARLY] | |
Sets the size of kernel per-numa memory area for | |
contiguous memory allocations. A value of 0 disables | |
per-numa CMA altogether. And If this option is not | |
specified, the default value is 0. | |
With per-numa CMA enabled, DMA users on node nid will | |
first try to allocate buffer from the pernuma area | |
which is located in node nid, if the allocation fails, | |
they will fallback to the global default memory area. | |
numa_cma=<node>:nn[MG][,<node>:nn[MG]] | |
[KNL,CMA,EARLY] | |
Sets the size of kernel numa memory area for | |
contiguous memory allocations. It will reserve CMA | |
area for the specified node. | |
With numa CMA enabled, DMA users on node nid will | |
first try to allocate buffer from the numa area | |
which is located in node nid, if the allocation fails, | |
they will fallback to the global default memory area. | |
cmo_free_hint= [PPC] Format: { yes | no } | |
Specify whether pages are marked as being inactive | |
when they are freed. This is used in CMO environments | |
to determine OS memory pressure for page stealing by | |
a hypervisor. | |
Default: yes | |
coherent_pool=nn[KMG] [ARM,KNL,EARLY] | |
Sets the size of memory pool for coherent, atomic dma | |
allocations, by default set to 256K. | |
com20020= [HW,NET] ARCnet - COM20020 chipset | |
Format: | |
<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]] | |
com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers) | |
Format: <io>[,<irq>] | |
com90xx= [HW,NET] | |
ARCnet - COM90xx chipset (memory-mapped buffers) | |
Format: <io>[,<irq>[,<memstart>]] | |
condev= [HW,S390] console device | |
conmode= | |
con3215_drop= [S390,EARLY] 3215 console drop mode. | |
Format: y|n|Y|N|1|0 | |
When set to true, drop data on the 3215 console when | |
the console buffer is full. In this case the | |
operator using a 3270 terminal emulator (for example | |
x3270) does not have to enter the clear key for the | |
console output to advance and the kernel to continue. | |
This leads to a much faster boot time when a 3270 | |
terminal emulator is active. If no 3270 terminal | |
emulator is used, this parameter has no effect. | |
console= [KNL] Output console device and options. | |
tty<n> Use the virtual console device <n>. | |
ttyS<n>[,options] | |
ttyUSB0[,options] | |
Use the specified serial port. The options are of | |
the form "bbbbpnf", where "bbbb" is the baud rate, | |
"p" is parity ("n", "o", or "e"), "n" is number of | |
bits, and "f" is flow control ("r" for RTS or | |
omit it). Default is "9600n8". | |
See Documentation/admin-guide/serial-console.rst for more | |
information. See | |
Documentation/networking/netconsole.rst for an | |
alternative. | |
<DEVNAME>:<n>.<n>[,options] | |
Use the specified serial port on the serial core bus. | |
The addressing uses DEVNAME of the physical serial port | |
device, followed by the serial core controller instance, | |
and the serial port instance. The options are the same | |
as documented for the ttyS addressing above. | |
The mapping of the serial ports to the tty instances | |
can be viewed with: | |
$ ls -d /sys/bus/serial-base/devices/*:*.*/tty/* | |
/sys/bus/serial-base/devices/00:04:0.0/tty/ttyS0 | |
In the above example, the console can be addressed with | |
console=00:04:0.0. Note that a console addressed this | |
way will only get added when the related device driver | |
is ready. The use of an earlycon parameter in addition to | |
the console may be desired for console output early on. | |
uart[8250],io,<addr>[,options] | |
uart[8250],mmio,<addr>[,options] | |
uart[8250],mmio16,<addr>[,options] | |
uart[8250],mmio32,<addr>[,options] | |
uart[8250],0x<addr>[,options] | |
Start an early, polled-mode console on the 8250/16550 | |
UART at the specified I/O port or MMIO address, | |
switching to the matching ttyS device later. | |
MMIO inter-register address stride is either 8-bit | |
(mmio), 16-bit (mmio16), or 32-bit (mmio32). | |
If none of [io|mmio|mmio16|mmio32], <addr> is assumed | |
to be equivalent to 'mmio'. 'options' are specified in | |
the same format described for ttyS above; if unspecified, | |
the h/w is not re-initialized. | |
hvc<n> Use the hypervisor console device <n>. This is for | |
both Xen and PowerPC hypervisors. | |
{ null | "" } | |
Use to disable console output, i.e., to have kernel | |
console messages discarded. | |
This must be the only console= parameter used on the | |
kernel command line. | |
If the device connected to the port is not a TTY but a braille | |
device, prepend "brl," before the device type, for instance | |
console=brl,ttyS0 | |
For now, only VisioBraille is supported. | |
console_msg_format= | |
[KNL] Change console messages format | |
default | |
By default we print messages on consoles in | |
"[time stamp] text\n" format (time stamp may not be | |
printed, depending on CONFIG_PRINTK_TIME or | |
`printk_time' param). | |
syslog | |
Switch to syslog format: "<%u>[time stamp] text\n" | |
IOW, each message will have a facility and loglevel | |
prefix. The format is similar to one used by syslog() | |
syscall, or to executing "dmesg -S --raw" or to reading | |
from /proc/kmsg. | |
consoleblank= [KNL] The console blank (screen saver) timeout in | |
seconds. A value of 0 disables the blank timer. | |
Defaults to 0. | |
coredump_filter= | |
[KNL] Change the default value for | |
/proc/<pid>/coredump_filter. | |
See also Documentation/filesystems/proc.rst. | |
coresight_cpu_debug.enable | |
[ARM,ARM64] | |
Format: <bool> | |
Enable/disable the CPU sampling based debugging. | |
0: default value, disable debugging | |
1: enable debugging at boot time | |
cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver | |
Format: | |
<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] | |
cpuidle.off=1 [CPU_IDLE] | |
disable the cpuidle sub-system | |
cpuidle.governor= | |
[CPU_IDLE] Name of the cpuidle governor to use. | |
cpufreq.off=1 [CPU_FREQ] | |
disable the cpufreq sub-system | |
cpufreq.default_governor= | |
[CPU_FREQ] Name of the default cpufreq governor or | |
policy to use. This governor must be registered in the | |
kernel before the cpufreq driver probes. | |
cpu_init_udelay=N | |
[X86,EARLY] Delay for N microsec between assert and de-assert | |
of APIC INIT to start processors. This delay occurs | |
on every CPU online, such as boot, and resume from suspend. | |
Default: 10000 | |
cpuhp.parallel= | |
[SMP] Enable/disable parallel bringup of secondary CPUs | |
Format: <bool> | |
Default is enabled if CONFIG_HOTPLUG_PARALLEL=y. Otherwise | |
the parameter has no effect. | |
crash_kexec_post_notifiers | |
Only jump to kdump kernel after running the panic | |
notifiers and dumping kmsg. This option increases | |
the risks of a kdump failure, since some panic | |
notifiers can make the crashed kernel more unstable. | |
In configurations where kdump may not be reliable, | |
running the panic notifiers could allow collecting | |
more data on dmesg, like stack traces from other CPUS | |
or extra data dumped by panic_print. Note that some | |
configurations enable this option unconditionally, | |
like Hyper-V, PowerPC (fadump) and AMD SEV-SNP. | |
crashkernel=size[KMG][@offset[KMG]] | |
[KNL,EARLY] Using kexec, Linux can switch to a 'crash kernel' | |
upon panic. This parameter reserves the physical | |
memory region [offset, offset + size] for that kernel | |
image. If '@offset' is omitted, then a suitable offset | |
is selected automatically. | |
[KNL, X86-64, ARM64, RISCV, LoongArch] Select a region | |
under 4G first, and fall back to reserve region above | |
4G when '@offset' hasn't been specified. | |
See Documentation/admin-guide/kdump/kdump.rst for further details. | |
crashkernel=range1:size1[,range2:size2,...][@offset] | |
[KNL] Same as above, but depends on the memory | |
in the running system. The syntax of range is | |
start-[end] where start and end are both | |
a memory unit (amount[KMG]). See also | |
Documentation/admin-guide/kdump/kdump.rst for an example. | |
crashkernel=size[KMG],high | |
[KNL, X86-64, ARM64, RISCV, LoongArch] range could be | |
above 4G. | |
Allow kernel to allocate physical memory region from top, | |
so could be above 4G if system have more than 4G ram | |
installed. Otherwise memory region will be allocated | |
below 4G, if available. | |
It will be ignored if crashkernel=X is specified. | |
crashkernel=size[KMG],low | |
[KNL, X86-64, ARM64, RISCV, LoongArch] range under 4G. | |
When crashkernel=X,high is passed, kernel could allocate | |
physical memory region above 4G, that cause second kernel | |
crash on system that require some amount of low memory, | |
e.g. swiotlb requires at least 64M+32K low memory, also | |
enough extra low memory is needed to make sure DMA buffers | |
for 32-bit devices won't run out. Kernel would try to allocate | |
default size of memory below 4G automatically. The default | |
size is platform dependent. | |
--> x86: max(swiotlb_size_or_default() + 8MiB, 256MiB) | |
--> arm64: 128MiB | |
--> riscv: 128MiB | |
--> loongarch: 128MiB | |
This one lets the user specify own low range under 4G | |
for second kernel instead. | |
0: to disable low allocation. | |
It will be ignored when crashkernel=X,high is not used | |
or memory reserved is below 4G. | |
cryptomgr.notests | |
[KNL] Disable crypto self-tests | |
cs89x0_dma= [HW,NET] | |
Format: <dma> | |
cs89x0_media= [HW,NET] | |
Format: { rj45 | aui | bnc } | |
csdlock_debug= [KNL] Enable or disable debug add-ons of cross-CPU | |
function call handling. When switched on, | |
additional debug data is printed to the console | |
in case a hanging CPU is detected, and that | |
CPU is pinged again in order to try to resolve | |
the hang situation. The default value of this | |
option depends on the CSD_LOCK_WAIT_DEBUG_DEFAULT | |
Kconfig option. | |
dasd= [HW,NET] | |
See header of drivers/s390/block/dasd_devmap.c. | |
db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port | |
(one device per port) | |
Format: <port#>,<type> | |
See also Documentation/input/devices/joystick-parport.rst | |
debug [KNL,EARLY] Enable kernel debugging (events log level). | |
debug_boot_weak_hash | |
[KNL,EARLY] Enable printing [hashed] pointers early in the | |
boot sequence. If enabled, we use a weak hash instead | |
of siphash to hash pointers. Use this option if you are | |
seeing instances of '(___ptrval___)') and need to see a | |
value (hashed pointer) instead. Cryptographically | |
insecure, please do not use on production kernels. | |
debug_locks_verbose= | |
[KNL] verbose locking self-tests | |
Format: <int> | |
Print debugging info while doing the locking API | |
self-tests. | |
Bitmask for the various LOCKTYPE_ tests. Defaults to 0 | |
(no extra messages), setting it to -1 (all bits set) | |
will print _a_lot_ more information - normally only | |
useful to lockdep developers. | |
debug_objects [KNL,EARLY] Enable object debugging | |
debug_guardpage_minorder= | |
[KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this | |
parameter allows control of the order of pages that will | |
be intentionally kept free (and hence protected) by the | |
buddy allocator. Bigger value increase the probability | |
of catching random memory corruption, but reduce the | |
amount of memory for normal system use. The maximum | |
possible value is MAX_PAGE_ORDER/2. Setting this | |
parameter to 1 or 2 should be enough to identify most | |
random memory corruption problems caused by bugs in | |
kernel or driver code when a CPU writes to (or reads | |
from) a random memory location. Note that there exists | |
a class of memory corruptions problems caused by buggy | |
H/W or F/W or by drivers badly programming DMA | |
(basically when memory is written at bus level and the | |
CPU MMU is bypassed) which are not detectable by | |
CONFIG_DEBUG_PAGEALLOC, hence this option will not | |
help tracking down these problems. | |
debug_pagealloc= | |
[KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this parameter | |
enables the feature at boot time. By default, it is | |
disabled and the system will work mostly the same as a | |
kernel built without CONFIG_DEBUG_PAGEALLOC. | |
Note: to get most of debug_pagealloc error reports, it's | |
useful to also enable the page_owner functionality. | |
on: enable the feature | |
debugfs= [KNL,EARLY] This parameter enables what is exposed to | |
userspace and debugfs internal clients. | |
Format: { on, no-mount, off } | |
on: All functions are enabled. | |
no-mount: | |
Filesystem is not registered but kernel clients can | |
access APIs and a crashkernel can be used to read | |
its content. There is nothing to mount. | |
off: Filesystem is not registered and clients | |
get a -EPERM as result when trying to register files | |
or directories within debugfs. | |
This is equivalent of the runtime functionality if | |
debugfs was not enabled in the kernel at all. | |
Default value is set in build-time with a kernel configuration. | |
debugpat [X86] Enable PAT debugging | |
default_hugepagesz= | |
[HW] The size of the default HugeTLB page. This is | |
the size represented by the legacy /proc/ hugepages | |
APIs. In addition, this is the default hugetlb size | |
used for shmget(), mmap() and mounting hugetlbfs | |
filesystems. If not specified, defaults to the | |
architecture's default huge page size. Huge page | |
sizes are architecture dependent. See also | |
Documentation/admin-guide/mm/hugetlbpage.rst. | |
Format: size[KMG] | |
deferred_probe_timeout= | |
[KNL] Debugging option to set a timeout in seconds for | |
deferred probe to give up waiting on dependencies to | |
probe. Only specific dependencies (subsystems or | |
drivers) that have opted in will be ignored. A timeout | |
of 0 will timeout at the end of initcalls. If the time | |
out hasn't expired, it'll be restarted by each | |
successful driver registration. This option will also | |
dump out devices still on the deferred probe list after | |
retrying. | |
delayacct [KNL] Enable per-task delay accounting | |
dell_smm_hwmon.ignore_dmi= | |
[HW] Continue probing hardware even if DMI data | |
indicates that the driver is running on unsupported | |
hardware. | |
dell_smm_hwmon.force= | |
[HW] Activate driver even if SMM BIOS signature does | |
not match list of supported models and enable otherwise | |
blacklisted features. | |
dell_smm_hwmon.power_status= | |
[HW] Report power status in /proc/i8k | |
(disabled by default). | |
dell_smm_hwmon.restricted= | |
[HW] Allow controlling fans only if SYS_ADMIN | |
capability is set. | |
dell_smm_hwmon.fan_mult= | |
[HW] Factor to multiply fan speed with. | |
dell_smm_hwmon.fan_max= | |
[HW] Maximum configurable fan speed. | |
dfltcc= [HW,S390] | |
Format: { on | off | def_only | inf_only | always } | |
on: s390 zlib hardware support for compression on | |
level 1 and decompression (default) | |
off: No s390 zlib hardware support | |
def_only: s390 zlib hardware support for deflate | |
only (compression on level 1) | |
inf_only: s390 zlib hardware support for inflate | |
only (decompression) | |
always: Same as 'on' but ignores the selected compression | |
level always using hardware support (used for debugging) | |
dhash_entries= [KNL] | |
Set number of hash buckets for dentry cache. | |
disable_1tb_segments [PPC,EARLY] | |
Disables the use of 1TB hash page table segments. This | |
causes the kernel to fall back to 256MB segments which | |
can be useful when debugging issues that require an SLB | |
miss to occur. | |
disable= [IPV6] | |
See Documentation/networking/ipv6.rst. | |
disable_radix [PPC,EARLY] | |
Disable RADIX MMU mode on POWER9 | |
disable_tlbie [PPC] | |
Disable TLBIE instruction. Currently does not work | |
with KVM, with HASH MMU, or with coherent accelerators. | |
disable_ddw [PPC/PSERIES,EARLY] | |
Disable Dynamic DMA Window support. Use this | |
to workaround buggy firmware. | |
disable_ipv6= [IPV6] | |
See Documentation/networking/ipv6.rst. | |
disable_mtrr_cleanup [X86,EARLY] | |
The kernel tries to adjust MTRR layout from continuous | |
to discrete, to make X server driver able to add WB | |
entry later. This parameter disables that. | |
disable_mtrr_trim [X86, Intel and AMD only,EARLY] | |
By default the kernel will trim any uncacheable | |
memory out of your available memory pool based on | |
MTRR settings. This parameter disables that behavior, | |
possibly causing your machine to run very slowly. | |
disable_timer_pin_1 [X86,EARLY] | |
Disable PIN 1 of APIC timer | |
Can be useful to work around chipset bugs. | |
dis_ucode_ldr [X86] Disable the microcode loader. | |
dma_debug=off If the kernel is compiled with DMA_API_DEBUG support, | |
this option disables the debugging code at boot. | |
dma_debug_entries=<number> | |
This option allows to tune the number of preallocated | |
entries for DMA-API debugging code. One entry is | |
required per DMA-API allocation. Use this if the | |
DMA-API debugging code disables itself because the | |
architectural default is too low. | |
dma_debug_driver=<driver_name> | |
With this option the DMA-API debugging driver | |
filter feature can be enabled at boot time. Just | |
pass the driver to filter for as the parameter. | |
The filter can be disabled or changed to another | |
driver later using sysfs. | |
reg_file_data_sampling= | |
[X86] Controls mitigation for Register File Data | |
Sampling (RFDS) vulnerability. RFDS is a CPU | |
vulnerability which may allow userspace to infer | |
kernel data values previously stored in floating point | |
registers, vector registers, or integer registers. | |
RFDS only affects Intel Atom processors. | |
on: Turns ON the mitigation. | |
off: Turns OFF the mitigation. | |
This parameter overrides the compile time default set | |
by CONFIG_MITIGATION_RFDS. Mitigation cannot be | |
disabled when other VERW based mitigations (like MDS) | |
are enabled. In order to disable RFDS mitigation all | |
VERW based mitigations need to be disabled. | |
For details see: | |
Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst | |
driver_async_probe= [KNL] | |
List of driver names to be probed asynchronously. * | |
matches with all driver names. If * is specified, the | |
rest of the listed driver names are those that will NOT | |
match the *. | |
Format: <driver_name1>,<driver_name2>... | |
drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>] | |
Broken monitors, graphic adapters, KVMs and EDIDless | |
panels may send no or incorrect EDID data sets. | |
This parameter allows to specify an EDID data sets | |
in the /lib/firmware directory that are used instead. | |
An EDID data set will only be used for a particular | |
connector, if its name and a colon are prepended to | |
the EDID name. Each connector may use a unique EDID | |
data set by separating the files with a comma. An EDID | |
data set with no connector name will be used for | |
any connectors not explicitly specified. | |
dscc4.setup= [NET] | |
dt_cpu_ftrs= [PPC,EARLY] | |
Format: {"off" | "known"} | |
Control how the dt_cpu_ftrs device-tree binding is | |
used for CPU feature discovery and setup (if it | |
exists). | |
off: Do not use it, fall back to legacy cpu table. | |
known: Do not pass through unknown features to guests | |
or userspace, only those that the kernel is aware of. | |
dump_apple_properties [X86] | |
Dump name and content of EFI device properties on | |
x86 Macs. Useful for driver authors to determine | |
what data is available or for reverse-engineering. | |
dyndbg[="val"] [KNL,DYNAMIC_DEBUG] | |
<module>.dyndbg[="val"] | |
Enable debug messages at boot time. See | |
Documentation/admin-guide/dynamic-debug-howto.rst | |
for details. | |
early_ioremap_debug [KNL,EARLY] | |
Enable debug messages in early_ioremap support. This | |
is useful for tracking down temporary early mappings | |
which are not unmapped. | |
earlycon= [KNL,EARLY] Output early console device and options. | |
When used with no options, the early console is | |
determined by stdout-path property in device tree's | |
chosen node or the ACPI SPCR table if supported by | |
the platform. | |
cdns,<addr>[,options] | |
Start an early, polled-mode console on a Cadence | |
(xuartps) serial port at the specified address. Only | |
supported option is baud rate. If baud rate is not | |
specified, the serial port must already be setup and | |
configured. | |
uart[8250],io,<addr>[,options[,uartclk]] | |
uart[8250],mmio,<addr>[,options[,uartclk]] | |
uart[8250],mmio32,<addr>[,options[,uartclk]] | |
uart[8250],mmio32be,<addr>[,options[,uartclk]] | |
uart[8250],0x<addr>[,options] | |
Start an early, polled-mode console on the 8250/16550 | |
UART at the specified I/O port or MMIO address. | |
MMIO inter-register address stride is either 8-bit | |
(mmio) or 32-bit (mmio32 or mmio32be). | |
If none of [io|mmio|mmio32|mmio32be], <addr> is assumed | |
to be equivalent to 'mmio'. 'options' are specified | |
in the same format described for "console=ttyS<n>"; if | |
unspecified, the h/w is not initialized. 'uartclk' is | |
the uart clock frequency; if unspecified, it is set | |
to 'BASE_BAUD' * 16. | |
pl011,<addr> | |
pl011,mmio32,<addr> | |
Start an early, polled-mode console on a pl011 serial | |
port at the specified address. The pl011 serial port | |
must already be setup and configured. Options are not | |
yet supported. If 'mmio32' is specified, then only | |
the driver will use only 32-bit accessors to read/write | |
the device registers. | |
liteuart,<addr> | |
Start an early console on a litex serial port at the | |
specified address. The serial port must already be | |
setup and configured. Options are not yet supported. | |
meson,<addr> | |
Start an early, polled-mode console on a meson serial | |
port at the specified address. The serial port must | |
already be setup and configured. Options are not yet | |
supported. | |
msm_serial,<addr> | |
Start an early, polled-mode console on an msm serial | |
port at the specified address. The serial port | |
must already be setup and configured. Options are not | |
yet supported. | |
msm_serial_dm,<addr> | |
Start an early, polled-mode console on an msm serial | |
dm port at the specified address. The serial port | |
must already be setup and configured. Options are not | |
yet supported. | |
owl,<addr> | |
Start an early, polled-mode console on a serial port | |
of an Actions Semi SoC, such as S500 or S900, at the | |
specified address. The serial port must already be | |
setup and configured. Options are not yet supported. | |
rda,<addr> | |
Start an early, polled-mode console on a serial port | |
of an RDA Micro SoC, such as RDA8810PL, at the | |
specified address. The serial port must already be | |
setup and configured. Options are not yet supported. | |
sbi | |
Use RISC-V SBI (Supervisor Binary Interface) for early | |
console. | |
smh Use ARM semihosting calls for early console. | |
s3c2410,<addr> | |
s3c2412,<addr> | |
s3c2440,<addr> | |
s3c6400,<addr> | |
s5pv210,<addr> | |
exynos4210,<addr> | |
Use early console provided by serial driver available | |
on Samsung SoCs, requires selecting proper type and | |
a correct base address of the selected UART port. The | |
serial port must already be setup and configured. | |
Options are not yet supported. | |
lantiq,<addr> | |
Start an early, polled-mode console on a lantiq serial | |
(lqasc) port at the specified address. The serial port | |
must already be setup and configured. Options are not | |
yet supported. | |
lpuart,<addr> | |
lpuart32,<addr> | |
Use early console provided by Freescale LP UART driver | |
found on Freescale Vybrid and QorIQ LS1021A processors. | |
A valid base address must be provided, and the serial | |
port must already be setup and configured. | |
ec_imx21,<addr> | |
ec_imx6q,<addr> | |
Start an early, polled-mode, output-only console on the | |
Freescale i.MX UART at the specified address. The UART | |
must already be setup and configured. | |
ar3700_uart,<addr> | |
Start an early, polled-mode console on the | |
Armada 3700 serial port at the specified | |
address. The serial port must already be setup | |
and configured. Options are not yet supported. | |
qcom_geni,<addr> | |
Start an early, polled-mode console on a Qualcomm | |
Generic Interface (GENI) based serial port at the | |
specified address. The serial port must already be | |
setup and configured. Options are not yet supported. | |
efifb,[options] | |
Start an early, unaccelerated console on the EFI | |
memory mapped framebuffer (if available). On cache | |
coherent non-x86 systems that use system memory for | |
the framebuffer, pass the 'ram' option so that it is | |
mapped with the correct attributes. | |
linflex,<addr> | |
Use early console provided by Freescale LINFlexD UART | |
serial driver for NXP S32V234 SoCs. A valid base | |
address must be provided, and the serial port must | |
already be setup and configured. | |
earlyprintk= [X86,SH,ARM,M68k,S390,UM,EARLY] | |
earlyprintk=vga | |
earlyprintk=sclp | |
earlyprintk=xen | |
earlyprintk=serial[,ttySn[,baudrate]] | |
earlyprintk=serial[,0x...[,baudrate]] | |
earlyprintk=ttySn[,baudrate] | |
earlyprintk=dbgp[debugController#] | |
earlyprintk=pciserial[,force],bus:device.function[,baudrate] | |
earlyprintk=xdbc[xhciController#] | |
earlyprintk=bios | |
earlyprintk is useful when the kernel crashes before | |
the normal console is initialized. It is not enabled by | |
default because it has some cosmetic problems. | |
Append ",keep" to not disable it when the real console | |
takes over. | |
Only one of vga, serial, or usb debug port can | |
be used at a time. | |
Currently only ttyS0 and ttyS1 may be specified by | |
name. Other I/O ports may be explicitly specified | |
on some architectures (x86 and arm at least) by | |
replacing ttySn with an I/O port address, like this: | |
earlyprintk=serial,0x1008,115200 | |
You can find the port for a given device in | |
/proc/tty/driver/serial: | |
2: uart:ST16650V2 port:00001008 irq:18 ... | |
Interaction with the standard serial driver is not | |
very good. | |
The VGA output is eventually overwritten by | |
the real console. | |
The xen option can only be used in Xen domains. | |
The sclp output can only be used on s390. | |
The bios output can only be used on SuperH. | |
The optional "force" to "pciserial" enables use of a | |
PCI device even when its classcode is not of the | |
UART class. | |
edac_report= [HW,EDAC] Control how to report EDAC event | |
Format: {"on" | "off" | "force"} | |
on: enable EDAC to report H/W event. May be overridden | |
by other higher priority error reporting module. | |
off: disable H/W event reporting through EDAC. | |
force: enforce the use of EDAC to report H/W event. | |
default: on. | |
edd= [EDD] | |
Format: {"off" | "on" | "skip[mbr]"} | |
efi= [EFI,EARLY] | |
Format: { "debug", "disable_early_pci_dma", | |
"nochunk", "noruntime", "nosoftreserve", | |
"novamap", "no_disable_early_pci_dma" } | |
debug: enable misc debug output. | |
disable_early_pci_dma: disable the busmaster bit on all | |
PCI bridges while in the EFI boot stub. | |
nochunk: disable reading files in "chunks" in the EFI | |
boot stub, as chunking can cause problems with some | |
firmware implementations. | |
noruntime : disable EFI runtime services support | |
nosoftreserve: The EFI_MEMORY_SP (Specific Purpose) | |
attribute may cause the kernel to reserve the | |
memory range for a memory mapping driver to | |
claim. Specify efi=nosoftreserve to disable this | |
reservation and treat the memory by its base type | |
(i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). | |
novamap: do not call SetVirtualAddressMap(). | |
no_disable_early_pci_dma: Leave the busmaster bit set | |
on all PCI bridges while in the EFI boot stub | |
efi_no_storage_paranoia [EFI,X86,EARLY] | |
Using this parameter you can use more than 50% of | |
your efi variable storage. Use this parameter only if | |
you are really sure that your UEFI does sane gc and | |
fulfills the spec otherwise your board may brick. | |
efivar_ssdt= [EFI; X86] Name of an EFI variable that contains an SSDT | |
that is to be dynamically loaded by Linux. If there are | |
multiple variables with the same name but with different | |
vendor GUIDs, all of them will be loaded. See | |
Documentation/admin-guide/acpi/ssdt-overlays.rst for details. | |
eisa_irq_edge= [PARISC,HW] | |
See header of drivers/parisc/eisa.c. | |
ekgdboc= [X86,KGDB,EARLY] Allow early kernel console debugging | |
Format: ekgdboc=kbd | |
This is designed to be used in conjunction with | |
the boot argument: earlyprintk=vga | |
This parameter works in place of the kgdboc parameter | |
but can only be used if the backing tty is available | |
very early in the boot process. For early debugging | |
via a serial port see kgdboc_earlycon instead. | |
elanfreq= [X86-32] | |
See comment before function elanfreq_setup() in | |
arch/x86/kernel/cpu/cpufreq/elanfreq.c. | |
elfcorehdr=[size[KMG]@]offset[KMG] [PPC,SH,X86,S390,EARLY] | |
Specifies physical address of start of kernel core | |
image elf header and optionally the size. Generally | |
kexec loader will pass this option to capture kernel. | |
See Documentation/admin-guide/kdump/kdump.rst for details. | |
enable_mtrr_cleanup [X86,EARLY] | |
The kernel tries to adjust MTRR layout from continuous | |
to discrete, to make X server driver able to add WB | |
entry later. This parameter enables that. | |
enable_timer_pin_1 [X86] | |
Enable PIN 1 of APIC timer | |
Can be useful to work around chipset bugs | |
(in particular on some ATI chipsets). | |
The kernel tries to set a reasonable default. | |
enforcing= [SELINUX] Set initial enforcing status. | |
Format: {"0" | "1"} | |
See security/selinux/Kconfig help text. | |
0 -- permissive (log only, no denials). | |
1 -- enforcing (deny and log). | |
Default value is 0. | |
Value can be changed at runtime via | |
/sys/fs/selinux/enforce. | |
erst_disable [ACPI] | |
Disable Error Record Serialization Table (ERST) | |
support. | |
ether= [HW,NET] Ethernet cards parameters | |
This option is obsoleted by the "netdev=" option, which | |
has equivalent usage. See its documentation for details. | |
evm= [EVM] | |
Format: { "fix" } | |
Permit 'security.evm' to be updated regardless of | |
current integrity status. | |
early_page_ext [KNL,EARLY] Enforces page_ext initialization to earlier | |
stages so cover more early boot allocations. | |
Please note that as side effect some optimizations | |
might be disabled to achieve that (e.g. parallelized | |
memory initialization is disabled) so the boot process | |
might take longer, especially on systems with a lot of | |
memory. Available with CONFIG_PAGE_EXTENSION=y. | |
failslab= | |
fail_usercopy= | |
fail_page_alloc= | |
fail_skb_realloc= | |
fail_make_request=[KNL] | |
General fault injection mechanism. | |
Format: <interval>,<probability>,<space>,<times> | |
See also Documentation/fault-injection/. | |
fb_tunnels= [NET] | |
Format: { initns | none } | |
See Documentation/admin-guide/sysctl/net.rst for | |
fb_tunnels_only_for_init_ns | |
floppy= [HW] | |
See Documentation/admin-guide/blockdev/floppy.rst. | |
forcepae [X86-32] | |
Forcefully enable Physical Address Extension (PAE). | |
Many Pentium M systems disable PAE but may have a | |
functionally usable PAE implementation. | |
Warning: use of this parameter will taint the kernel | |
and may cause unknown problems. | |
fred= [X86-64] | |
Enable/disable Flexible Return and Event Delivery. | |
Format: { on | off } | |
on: enable FRED when it's present. | |
off: disable FRED, the default setting. | |
ftrace=[tracer] | |
[FTRACE] will set and start the specified tracer | |
as early as possible in order to facilitate early | |
boot debugging. | |
ftrace_boot_snapshot | |
[FTRACE] On boot up, a snapshot will be taken of the | |
ftrace ring buffer that can be read at: | |
/sys/kernel/tracing/snapshot. | |
This is useful if you need tracing information from kernel | |
boot up that is likely to be overridden by user space | |
start up functionality. | |
Optionally, the snapshot can also be defined for a tracing | |
instance that was created by the trace_instance= command | |
line parameter. | |
trace_instance=foo,sched_switch ftrace_boot_snapshot=foo | |
The above will cause the "foo" tracing instance to trigger | |
a snapshot at the end of boot up. | |
ftrace_dump_on_oops[=2(orig_cpu) | =<instance>][,<instance> | | |
,<instance>=2(orig_cpu)] | |
[FTRACE] will dump the trace buffers on oops. | |
If no parameter is passed, ftrace will dump global | |
buffers of all CPUs, if you pass 2 or orig_cpu, it | |
will dump only the buffer of the CPU that triggered | |
the oops, or the specific instance will be dumped if | |
its name is passed. Multiple instance dump is also | |
supported, and instances are separated by commas. Each | |
instance supports only dump on CPU that triggered the | |
oops by passing 2 or orig_cpu to it. | |
ftrace_dump_on_oops=foo=orig_cpu | |
The above will dump only the buffer of "foo" instance | |
on CPU that triggered the oops. | |
ftrace_dump_on_oops,foo,bar=orig_cpu | |
The above will dump global buffer on all CPUs, the | |
buffer of "foo" instance on all CPUs and the buffer | |
of "bar" instance on CPU that triggered the oops. | |
ftrace_filter=[function-list] | |
[FTRACE] Limit the functions traced by the function | |
tracer at boot up. function-list is a comma-separated | |
list of functions. This list can be changed at run | |
time by the set_ftrace_filter file in the debugfs | |
tracing directory. | |
ftrace_notrace=[function-list] | |
[FTRACE] Do not trace the functions specified in | |
function-list. This list can be changed at run time | |
by the set_ftrace_notrace file in the debugfs | |
tracing directory. | |
ftrace_graph_filter=[function-list] | |
[FTRACE] Limit the top level callers functions traced | |
by the function graph tracer at boot up. | |
function-list is a comma-separated list of functions | |
that can be changed at run time by the | |
set_graph_function file in the debugfs tracing directory. | |
ftrace_graph_notrace=[function-list] | |
[FTRACE] Do not trace from the functions specified in | |
function-list. This list is a comma-separated list of | |
functions that can be changed at run time by the | |
set_graph_notrace file in the debugfs tracing directory. | |
ftrace_graph_max_depth=<uint> | |
[FTRACE] Used with the function graph tracer. This is | |
the max depth it will trace into a function. This value | |
can be changed at run time by the max_graph_depth file | |
in the tracefs tracing directory. default: 0 (no limit) | |
fw_devlink= [KNL,EARLY] Create device links between consumer and supplier | |
devices by scanning the firmware to infer the | |
consumer/supplier relationships. This feature is | |
especially useful when drivers are loaded as modules as | |
it ensures proper ordering of tasks like device probing | |
(suppliers first, then consumers), supplier boot state | |
clean up (only after all consumers have probed), | |
suspend/resume & runtime PM (consumers first, then | |
suppliers). | |
Format: { off | permissive | on | rpm } | |
off -- Don't create device links from firmware info. | |
permissive -- Create device links from firmware info | |
but use it only for ordering boot state clean | |
up (sync_state() calls). | |
on -- Create device links from firmware info and use it | |
to enforce probe and suspend/resume ordering. | |
rpm -- Like "on", but also use to order runtime PM. | |
fw_devlink.strict=<bool> | |
[KNL,EARLY] Treat all inferred dependencies as mandatory | |
dependencies. This only applies for fw_devlink=on|rpm. | |
Format: <bool> | |
fw_devlink.sync_state = | |
[KNL,EARLY] When all devices that could probe have finished | |
probing, this parameter controls what to do with | |
devices that haven't yet received their sync_state() | |
calls. | |
Format: { strict | timeout } | |
strict -- Default. Continue waiting on consumers to | |
probe successfully. | |
timeout -- Give up waiting on consumers and call | |
sync_state() on any devices that haven't yet | |
received their sync_state() calls after | |
deferred_probe_timeout has expired or by | |
late_initcall() if !CONFIG_MODULES. | |
gamecon.map[2|3]= | |
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad | |
support via parallel port (up to 5 devices per port) | |
Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5> | |
See also Documentation/input/devices/joystick-parport.rst | |
gamma= [HW,DRM] | |
gart_fix_e820= [X86-64,EARLY] disable the fix e820 for K8 GART | |
Format: off | on | |
default: on | |
gather_data_sampling= | |
[X86,INTEL,EARLY] Control the Gather Data Sampling (GDS) | |
mitigation. | |
Gather Data Sampling is a hardware vulnerability which | |
allows unprivileged speculative access to data which was | |
previously stored in vector registers. | |
This issue is mitigated by default in updated microcode. | |
The mitigation may have a performance impact but can be | |
disabled. On systems without the microcode mitigation | |
disabling AVX serves as a mitigation. | |
force: Disable AVX to mitigate systems without | |
microcode mitigation. No effect if the microcode | |
mitigation is present. Known to cause crashes in | |
userspace with buggy AVX enumeration. | |
off: Disable GDS mitigation. | |
gcov_persist= [GCOV] When non-zero (default), profiling data for | |
kernel modules is saved and remains accessible via | |
debugfs, even when the module is unloaded/reloaded. | |
When zero, profiling data is discarded and associated | |
debugfs files are removed at module unload time. | |
goldfish [X86] Enable the goldfish android emulator platform. | |
Don't use this when you are not running on the | |
android emulator | |
gpio-mockup.gpio_mockup_ranges | |
[HW] Sets the ranges of gpiochip of for this device. | |
Format: <start1>,<end1>,<start2>,<end2>... | |
gpio-mockup.gpio_mockup_named_lines | |
[HW] Let the driver know GPIO lines should be named. | |
gpt [EFI] Forces disk with valid GPT signature but | |
invalid Protective MBR to be treated as GPT. If the | |
primary GPT is corrupted, it enables the backup/alternate | |
GPT to be used instead. | |
grcan.enable0= [HW] Configuration of physical interface 0. Determines | |
the "Enable 0" bit of the configuration register. | |
Format: 0 | 1 | |
Default: 0 | |
grcan.enable1= [HW] Configuration of physical interface 1. Determines | |
the "Enable 0" bit of the configuration register. | |
Format: 0 | 1 | |
Default: 0 | |
grcan.select= [HW] Select which physical interface to use. | |
Format: 0 | 1 | |
Default: 0 | |
grcan.txsize= [HW] Sets the size of the tx buffer. | |
Format: <unsigned int> such that (txsize & ~0x1fffc0) == 0. | |
Default: 1024 | |
grcan.rxsize= [HW] Sets the size of the rx buffer. | |
Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0. | |
Default: 1024 | |
hardened_usercopy= | |
[KNL] Under CONFIG_HARDENED_USERCOPY, whether | |
hardening is enabled for this boot. Hardened | |
usercopy checking is used to protect the kernel | |
from reading or writing beyond known memory | |
allocation boundaries as a proactive defense | |
against bounds-checking flaws in the kernel's | |
copy_to_user()/copy_from_user() interface. | |
on Perform hardened usercopy checks (default). | |
off Disable hardened usercopy checks. | |
hardlockup_all_cpu_backtrace= | |
[KNL] Should the hard-lockup detector generate | |
backtraces on all cpus. | |
Format: 0 | 1 | |
hashdist= [KNL,NUMA] Large hashes allocated during boot | |
are distributed across NUMA nodes. Defaults on | |
for 64-bit NUMA, off otherwise. | |
Format: 0 | 1 (for off | on) | |
hd= [EIDE] (E)IDE hard drive subsystem geometry | |
Format: <cyl>,<head>,<sect> | |
hest_disable [ACPI] | |
Disable Hardware Error Source Table (HEST) support; | |
corresponding firmware-first mode error processing | |
logic will be disabled. | |
hibernate= [HIBERNATION] | |
noresume Don't check if there's a hibernation image | |
present during boot. | |
nocompress Don't compress/decompress hibernation images. | |
no Disable hibernation and resume. | |
protect_image Turn on image protection during restoration | |
(that will set all pages holding image data | |
during restoration read-only). | |
hibernate.compressor= [HIBERNATION] Compression algorithm to be | |
used with hibernation. | |
Format: { lzo | lz4 } | |
Default: lzo | |
lzo: Select LZO compression algorithm to | |
compress/decompress hibernation image. | |
lz4: Select LZ4 compression algorithm to | |
compress/decompress hibernation image. | |
highmem=nn[KMG] [KNL,BOOT,EARLY] forces the highmem zone to have an exact | |
size of <nn>. This works even on boxes that have no | |
highmem otherwise. This also works to reduce highmem | |
size on bigger boxes. | |
highres= [KNL] Enable/disable high resolution timer mode. | |
Valid parameters: "on", "off" | |
Default: "on" | |
hlt [BUGS=ARM,SH] | |
hostname= [KNL,EARLY] Set the hostname (aka UTS nodename). | |
Format: <string> | |
This allows setting the system's hostname during early | |
startup. This sets the name returned by gethostname. | |
Using this parameter to set the hostname makes it | |
possible to ensure the hostname is correctly set before | |
any userspace processes run, avoiding the possibility | |
that a process may call gethostname before the hostname | |
has been explicitly set, resulting in the calling | |
process getting an incorrect result. The string must | |
not exceed the maximum allowed hostname length (usually | |
64 characters) and will be truncated otherwise. | |
hpet= [X86-32,HPET] option to control HPET usage | |
Format: { enable (default) | disable | force | | |
verbose } | |
disable: disable HPET and use PIT instead | |
force: allow force enabled of undocumented chips (ICH4, | |
VIA, nVidia) | |
verbose: show contents of HPET registers during setup | |
hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET | |
registers. Default set by CONFIG_HPET_MMAP_DEFAULT. | |
hugepages= [HW] Number of HugeTLB pages to allocate at boot. | |
If this follows hugepagesz (below), it specifies | |
the number of pages of hugepagesz to be allocated. | |
If this is the first HugeTLB parameter on the command | |
line, it specifies the number of pages to allocate for | |
the default huge page size. If using node format, the | |
number of pages to allocate per-node can be specified. | |
See also Documentation/admin-guide/mm/hugetlbpage.rst. | |
Format: <integer> or (node format) | |
<node>:<integer>[,<node>:<integer>] | |
hugepagesz= | |
[HW] The size of the HugeTLB pages. This is used in | |
conjunction with hugepages (above) to allocate huge | |
pages of a specific size at boot. The pair | |
hugepagesz=X hugepages=Y can be specified once for | |
each supported huge page size. Huge page sizes are | |
architecture dependent. See also | |
Documentation/admin-guide/mm/hugetlbpage.rst. | |
Format: size[KMG] | |
hugetlb_cma= [HW,CMA,EARLY] The size of a CMA area used for allocation | |
of gigantic hugepages. Or using node format, the size | |
of a CMA area per node can be specified. | |
Format: nn[KMGTPE] or (node format) | |
<node>:nn[KMGTPE][,<node>:nn[KMGTPE]] | |
Reserve a CMA area of given size and allocate gigantic | |
hugepages using the CMA allocator. If enabled, the | |
boot-time allocation of gigantic hugepages is skipped. | |
hugetlb_free_vmemmap= | |
[KNL] Requires CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP | |
enabled. | |
Control if HugeTLB Vmemmap Optimization (HVO) is enabled. | |
Allows heavy hugetlb users to free up some more | |
memory (7 * PAGE_SIZE for each 2MB hugetlb page). | |
Format: { on | off (default) } | |
on: enable HVO | |
off: disable HVO | |
Built with CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=y, | |
the default is on. | |
Note that the vmemmap pages may be allocated from the added | |
memory block itself when memory_hotplug.memmap_on_memory is | |
enabled, those vmemmap pages cannot be optimized even if this | |
feature is enabled. Other vmemmap pages not allocated from | |
the added memory block itself do not be affected. | |
hung_task_panic= | |
[KNL] Should the hung task detector generate panics. | |
Format: 0 | 1 | |
A value of 1 instructs the kernel to panic when a | |
hung task is detected. The default value is controlled | |
by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time | |
option. The value selected by this boot parameter can | |
be changed later by the kernel.hung_task_panic sysctl. | |
hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC) | |
terminal devices. Valid values: 0..8 | |
hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs. | |
If specified, z/VM IUCV HVC accepts connections | |
from listed z/VM user IDs only. | |
hv_nopvspin [X86,HYPER_V,EARLY] | |
Disables the paravirt spinlock optimizations | |
which allow the hypervisor to 'idle' the guest | |
on lock contention. | |
i2c_bus= [HW] Override the default board specific I2C bus speed | |
or register an additional I2C bus that is not | |
registered from board initialization code. | |
Format: | |
<bus_id>,<clkrate> | |
i2c_touchscreen_props= [HW,ACPI,X86] | |
Set device-properties for ACPI-enumerated I2C-attached | |
touchscreen, to e.g. fix coordinates of upside-down | |
mounted touchscreens. If you need this option please | |
submit a drivers/platform/x86/touchscreen_dmi.c patch | |
adding a DMI quirk for this. | |
Format: | |
<ACPI_HW_ID>:<prop_name>=<val>[:prop_name=val][:...] | |
Where <val> is one of: | |
Omit "=<val>" entirely Set a boolean device-property | |
Unsigned number Set a u32 device-property | |
Anything else Set a string device-property | |
Examples (split over multiple lines): | |
i2c_touchscreen_props=GDIX1001:touchscreen-inverted-x: | |
touchscreen-inverted-y | |
i2c_touchscreen_props=MSSL1680:touchscreen-size-x=1920: | |
touchscreen-size-y=1080:touchscreen-inverted-y: | |
firmware-name=gsl1680-vendor-model.fw:silead,home-button | |
i8042.debug [HW] Toggle i8042 debug mode | |
i8042.unmask_kbd_data | |
[HW] Enable printing of interrupt data from the KBD port | |
(disabled by default, and as a pre-condition | |
requires that i8042.debug=1 be enabled) | |
i8042.direct [HW] Put keyboard port into non-translated mode | |
i8042.dumbkbd [HW] Pretend that controller can only read data from | |
keyboard and cannot control its state | |
(Don't attempt to blink the leds) | |
i8042.noaux [HW] Don't check for auxiliary (== mouse) port | |
i8042.nokbd [HW] Don't check/create keyboard port | |
i8042.noloop [HW] Disable the AUX Loopback command while probing | |
for the AUX port | |
i8042.nomux [HW] Don't check presence of an active multiplexing | |
controller | |
i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX | |
controllers | |
i8042.notimeout [HW] Ignore timeout condition signalled by controller | |
i8042.reset [HW] Reset the controller during init, cleanup and | |
suspend-to-ram transitions, only during s2r | |
transitions, or never reset | |
Format: { 1 | Y | y | 0 | N | n } | |
1, Y, y: always reset controller | |
0, N, n: don't ever reset controller | |
Default: only on s2r transitions on x86; most other | |
architectures force reset to be always executed | |
i8042.unlock [HW] Unlock (ignore) the keylock | |
i8042.kbdreset [HW] Reset device connected to KBD port | |
i8042.probe_defer | |
[HW] Allow deferred probing upon i8042 probe errors | |
i810= [HW,DRM] | |
i915.invert_brightness= | |
[DRM] Invert the sense of the variable that is used to | |
set the brightness of the panel backlight. Normally a | |
brightness value of 0 indicates backlight switched off, | |
and the maximum of the brightness value sets the backlight | |
to maximum brightness. If this parameter is set to 0 | |
(default) and the machine requires it, or this parameter | |
is set to 1, a brightness value of 0 sets the backlight | |
to maximum brightness, and the maximum of the brightness | |
value switches the backlight off. | |
-1 -- never invert brightness | |
0 -- machine default | |
1 -- force brightness inversion | |
ia32_emulation= [X86-64] | |
Format: <bool> | |
When true, allows loading 32-bit programs and executing 32-bit | |
syscalls, essentially overriding IA32_EMULATION_DEFAULT_DISABLED at | |
boot time. When false, unconditionally disables IA32 emulation. | |
icn= [HW,ISDN] | |
Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]] | |
idle= [X86,EARLY] | |
Format: idle=poll, idle=halt, idle=nomwait | |
Poll forces a polling idle loop that can slightly | |
improve the performance of waking up a idle CPU, but | |
will use a lot of power and make the system run hot. | |
Not recommended. | |
idle=halt: Halt is forced to be used for CPU idle. | |
In such case C2/C3 won't be used again. | |
idle=nomwait: Disable mwait for CPU C-states | |
idxd.sva= [HW] | |
Format: <bool> | |
Allow force disabling of Shared Virtual Memory (SVA) | |
support for the idxd driver. By default it is set to | |
true (1). | |
idxd.tc_override= [HW] | |
Format: <bool> | |
Allow override of default traffic class configuration | |
for the device. By default it is set to false (0). | |
ieee754= [MIPS] Select IEEE Std 754 conformance mode | |
Format: { strict | legacy | 2008 | relaxed | emulated } | |
Default: strict | |
Choose which programs will be accepted for execution | |
based on the IEEE 754 NaN encoding(s) supported by | |
the FPU and the NaN encoding requested with the value | |
of an ELF file header flag individually set by each | |
binary. Hardware implementations are permitted to | |
support either or both of the legacy and the 2008 NaN | |
encoding mode. | |
Available settings are as follows: | |
strict accept binaries that request a NaN encoding | |
supported by the FPU | |
legacy only accept legacy-NaN binaries, if supported | |
by the FPU | |
2008 only accept 2008-NaN binaries, if supported | |
by the FPU | |
relaxed accept any binaries regardless of whether | |
supported by the FPU | |
emulated accept any binaries but enable FPU emulator | |
if binary mode is unsupported by the FPU. | |
The FPU emulator is always able to support both NaN | |
encodings, so if no FPU hardware is present or it has | |
been disabled with 'nofpu', then the settings of | |
'legacy' and '2008' strap the emulator accordingly, | |
'relaxed' straps the emulator for both legacy-NaN and | |
2008-NaN, whereas 'strict' enables legacy-NaN only on | |
legacy processors and both NaN encodings on MIPS32 or | |
MIPS64 CPUs. | |
The setting for ABS.fmt/NEG.fmt instruction execution | |
mode generally follows that for the NaN encoding, | |
except where unsupported by hardware. | |
ignore_loglevel [KNL,EARLY] | |
Ignore loglevel setting - this will print /all/ | |
kernel messages to the console. Useful for debugging. | |
We also add it as printk module parameter, so users | |
could change it dynamically, usually by | |
/sys/module/printk/parameters/ignore_loglevel. | |
ignore_rlimit_data | |
Ignore RLIMIT_DATA setting for data mappings, | |
print warning at first misuse. Can be changed via | |
/sys/module/kernel/parameters/ignore_rlimit_data. | |
ihash_entries= [KNL] | |
Set number of hash buckets for inode cache. | |
ima_appraise= [IMA] appraise integrity measurements | |
Format: { "off" | "enforce" | "fix" | "log" } | |
default: "enforce" | |
ima_appraise_tcb [IMA] Deprecated. Use ima_policy= instead. | |
The builtin appraise policy appraises all files | |
owned by uid=0. | |
ima_canonical_fmt [IMA] | |
Use the canonical format for the binary runtime | |
measurements, instead of host native format. | |
ima_hash= [IMA] | |
Format: { md5 | sha1 | rmd160 | sha256 | sha384 | |
| sha512 | ... } | |
default: "sha1" | |
The list of supported hash algorithms is defined | |
in crypto/hash_info.h. | |
ima_policy= [IMA] | |
The builtin policies to load during IMA setup. | |
Format: "tcb | appraise_tcb | secure_boot | | |
fail_securely | critical_data" | |
The "tcb" policy measures all programs exec'd, files | |
mmap'd for exec, and all files opened with the read | |
mode bit set by either the effective uid (euid=0) or | |
uid=0. | |
The "appraise_tcb" policy appraises the integrity of | |
all files owned by root. | |
The "secure_boot" policy appraises the integrity | |
of files (eg. kexec kernel image, kernel modules, | |
firmware, policy, etc) based on file signatures. | |
The "fail_securely" policy forces file signature | |
verification failure also on privileged mounted | |
filesystems with the SB_I_UNVERIFIABLE_SIGNATURE | |
flag. | |
The "critical_data" policy measures kernel integrity | |
critical data. | |
ima_tcb [IMA] Deprecated. Use ima_policy= instead. | |
Load a policy which meets the needs of the Trusted | |
Computing Base. This means IMA will measure all | |
programs exec'd, files mmap'd for exec, and all files | |
opened for read by uid=0. | |
ima_template= [IMA] | |
Select one of defined IMA measurements template formats. | |
Formats: { "ima" | "ima-ng" | "ima-ngv2" | "ima-sig" | | |
"ima-sigv2" } | |
Default: "ima-ng" | |
ima_template_fmt= | |
[IMA] Define a custom template format. | |
Format: { "field1|...|fieldN" } | |
ima.ahash_minsize= [IMA] Minimum file size for asynchronous hash usage | |
Format: <min_file_size> | |
Set the minimal file size for using asynchronous hash. | |
If left unspecified, ahash usage is disabled. | |
ahash performance varies for different data sizes on | |
different crypto accelerators. This option can be used | |
to achieve the best performance for a particular HW. | |
ima.ahash_bufsize= [IMA] Asynchronous hash buffer size | |
Format: <bufsize> | |
Set hashing buffer size. Default: 4k. | |
ahash performance varies for different chunk sizes on | |
different crypto accelerators. This option can be used | |
to achieve best performance for particular HW. | |
init= [KNL] | |
Format: <full_path> | |
Run specified binary instead of /sbin/init as init | |
process. | |
initcall_debug [KNL] Trace initcalls as they are executed. Useful | |
for working out where the kernel is dying during | |
startup. | |
initcall_blacklist= [KNL] Do not execute a comma-separated list of | |
initcall functions. Useful for debugging built-in | |
modules and initcalls. | |
initramfs_async= [KNL] | |
Format: <bool> | |
Default: 1 | |
This parameter controls whether the initramfs | |
image is unpacked asynchronously, concurrently | |
with devices being probed and | |
initialized. This should normally just work, | |
but as a debugging aid, one can get the | |
historical behaviour of the initramfs | |
unpacking being completed before device_ and | |
late_ initcalls. | |
initrd= [BOOT,EARLY] Specify the location of the initial ramdisk | |
initrdmem= [KNL,EARLY] Specify a physical address and size from which to | |
load the initrd. If an initrd is compiled in or | |
specified in the bootparams, it takes priority over this | |
setting. | |
Format: ss[KMG],nn[KMG] | |
Default is 0, 0 | |
init_on_alloc= [MM,EARLY] Fill newly allocated pages and heap objects with | |
zeroes. | |
Format: 0 | 1 | |
Default set by CONFIG_INIT_ON_ALLOC_DEFAULT_ON. | |
init_on_free= [MM,EARLY] Fill freed pages and heap objects with zeroes. | |
Format: 0 | 1 | |
Default set by CONFIG_INIT_ON_FREE_DEFAULT_ON. | |
init_pkru= [X86] Specify the default memory protection keys rights | |
register contents for all processes. 0x55555554 by | |
default (disallow access to all but pkey 0). Can | |
override in debugfs after boot. | |
inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver | |
Format: <irq> | |
int_pln_enable [X86] Enable power limit notification interrupt | |
integrity_audit=[IMA] | |
Format: { "0" | "1" } | |
0 -- basic integrity auditing messages. (Default) | |
1 -- additional integrity auditing messages. | |
intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option | |
on | |
Enable intel iommu driver. | |
off | |
Disable intel iommu driver. | |
igfx_off [Default Off] | |
By default, gfx is mapped as normal device. If a gfx | |
device has a dedicated DMAR unit, the DMAR unit is | |
bypassed by not enabling DMAR with this option. In | |
this case, gfx device will use physical address for | |
DMA. | |
strict [Default Off] | |
Deprecated, equivalent to iommu.strict=1. | |
sp_off [Default Off] | |
By default, super page will be supported if Intel IOMMU | |
has the capability. With this option, super page will | |
not be supported. | |
sm_on | |
Enable the Intel IOMMU scalable mode if the hardware | |
advertises that it has support for the scalable mode | |
translation. | |
sm_off | |
Disallow use of the Intel IOMMU scalable mode. | |
tboot_noforce [Default Off] | |
Do not force the Intel IOMMU enabled under tboot. | |
By default, tboot will force Intel IOMMU on, which | |
could harm performance of some high-throughput | |
devices like 40GBit network cards, even if identity | |
mapping is enabled. | |
Note that using this option lowers the security | |
provided by tboot because it makes the system | |
vulnerable to DMA attacks. | |
intel_idle.max_cstate= [KNL,HW,ACPI,X86] | |
0 disables intel_idle and fall back on acpi_idle. | |
1 to 9 specify maximum depth of C-state. | |
intel_pstate= [X86,EARLY] | |
disable | |
Do not enable intel_pstate as the default | |
scaling driver for the supported processors | |
active | |
Use intel_pstate driver to bypass the scaling | |
governors layer of cpufreq and provides it own | |
algorithms for p-state selection. There are two | |
P-state selection algorithms provided by | |
intel_pstate in the active mode: powersave and | |
performance. The way they both operate depends | |
on whether or not the hardware managed P-states | |
(HWP) feature has been enabled in the processor | |
and possibly on the processor model. | |
passive | |
Use intel_pstate as a scaling driver, but configure it | |
to work with generic cpufreq governors (instead of | |
enabling its internal governor). This mode cannot be | |
used along with the hardware-managed P-states (HWP) | |
feature. | |
force | |
Enable intel_pstate on systems that prohibit it by default | |
in favor of acpi-cpufreq. Forcing the intel_pstate driver | |
instead of acpi-cpufreq may disable platform features, such | |
as thermal controls and power capping, that rely on ACPI | |
P-States information being indicated to OSPM and therefore | |
should be used with caution. This option does not work with | |
processors that aren't supported by the intel_pstate driver | |
or on platforms that use pcc-cpufreq instead of acpi-cpufreq. | |
no_hwp | |
Do not enable hardware P state control (HWP) | |
if available. | |
hwp_only | |
Only load intel_pstate on systems which support | |
hardware P state control (HWP) if available. | |
support_acpi_ppc | |
Enforce ACPI _PPC performance limits. If the Fixed ACPI | |
Description Table, specifies preferred power management | |
profile as "Enterprise Server" or "Performance Server", | |
then this feature is turned on by default. | |
per_cpu_perf_limits | |
Allow per-logical-CPU P-State performance control limits using | |
cpufreq sysfs interface | |
intremap= [X86-64,Intel-IOMMU,EARLY] | |
on enable Interrupt Remapping (default) | |
off disable Interrupt Remapping | |
nosid disable Source ID checking | |
no_x2apic_optout | |
BIOS x2APIC opt-out request will be ignored | |
nopost disable Interrupt Posting | |
posted_msi | |
enable MSIs delivered as posted interrupts | |
iomem= Disable strict checking of access to MMIO memory | |
strict regions from userspace. | |
relaxed | |
iommu= [X86,EARLY] | |
off | |
force | |
noforce | |
biomerge | |
panic | |
nopanic | |
merge | |
nomerge | |
soft | |
pt [X86] | |
nopt [X86] | |
nobypass [PPC/POWERNV] | |
Disable IOMMU bypass, using IOMMU for PCI devices. | |
iommu.forcedac= [ARM64,X86,EARLY] Control IOVA allocation for PCI devices. | |
Format: { "0" | "1" } | |
0 - Try to allocate a 32-bit DMA address first, before | |
falling back to the full range if needed. | |
1 - Allocate directly from the full usable range, | |
forcing Dual Address Cycle for PCI cards supporting | |
greater than 32-bit addressing. | |
iommu.strict= [ARM64,X86,S390,EARLY] Configure TLB invalidation behaviour | |
Format: { "0" | "1" } | |
0 - Lazy mode. | |
Request that DMA unmap operations use deferred | |
invalidation of hardware TLBs, for increased | |
throughput at the cost of reduced device isolation. | |
Will fall back to strict mode if not supported by | |
the relevant IOMMU driver. | |
1 - Strict mode. | |
DMA unmap operations invalidate IOMMU hardware TLBs | |
synchronously. | |
unset - Use value of CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT}. | |
Note: on x86, strict mode specified via one of the | |
legacy driver-specific options takes precedence. | |
iommu.passthrough= | |
[ARM64,X86,EARLY] Configure DMA to bypass the IOMMU by default. | |
Format: { "0" | "1" } | |
0 - Use IOMMU translation for DMA. | |
1 - Bypass the IOMMU for DMA. | |
unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH. | |
io7= [HW] IO7 for Marvel-based Alpha systems | |
See comment before marvel_specify_io7 in | |
arch/alpha/kernel/core_marvel.c. | |
io_delay= [X86,EARLY] I/O delay method | |
0x80 | |
Standard port 0x80 based delay | |
0xed | |
Alternate port 0xed based delay (needed on some systems) | |
udelay | |
Simple two microseconds delay | |
none | |
No delay | |
ip= [IP_PNP] | |
See Documentation/admin-guide/nfs/nfsroot.rst. | |
ipcmni_extend [KNL,EARLY] Extend the maximum number of unique System V | |
IPC identifiers from 32,768 to 16,777,216. | |
ipe.enforce= [IPE] | |
Format: <bool> | |
Determine whether IPE starts in permissive (0) or | |
enforce (1) mode. The default is enforce. | |
ipe.success_audit= | |
[IPE] | |
Format: <bool> | |
Start IPE with success auditing enabled, emitting | |
an audit event when a binary is allowed. The default | |
is 0. | |
irqaffinity= [SMP] Set the default irq affinity mask | |
The argument is a cpu list, as described above. | |
irqchip.gicv2_force_probe= | |
[ARM,ARM64,EARLY] | |
Format: <bool> | |
Force the kernel to look for the second 4kB page | |
of a GICv2 controller even if the memory range | |
exposed by the device tree is too small. | |
irqchip.gicv3_nolpi= | |
[ARM,ARM64,EARLY] | |
Force the kernel to ignore the availability of | |
LPIs (and by consequence ITSs). Intended for system | |
that use the kernel as a bootloader, and thus want | |
to let secondary kernels in charge of setting up | |
LPIs. | |
irqchip.gicv3_pseudo_nmi= [ARM64,EARLY] | |
Enables support for pseudo-NMIs in the kernel. This | |
requires the kernel to be built with | |
CONFIG_ARM64_PSEUDO_NMI. | |
irqfixup [HW] | |
When an interrupt is not handled search all handlers | |
for it. Intended to get systems with badly broken | |
firmware running. | |
irqpoll [HW] | |
When an interrupt is not handled search all handlers | |
for it. Also check all handlers each timer | |
interrupt. Intended to get systems with badly broken | |
firmware running. | |
isapnp= [ISAPNP] | |
Format: <RDP>,<reset>,<pci_scan>,<verbosity> | |
isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance. | |
[Deprecated - use cpusets instead] | |
Format: [flag-list,]<cpu-list> | |
Specify one or more CPUs to isolate from disturbances | |
specified in the flag list (default: domain): | |
nohz | |
Disable the tick when a single task runs. | |
A residual 1Hz tick is offloaded to workqueues, which you | |
need to affine to housekeeping through the global | |
workqueue's affinity configured via the | |
/sys/devices/virtual/workqueue/cpumask sysfs file, or | |
by using the 'domain' flag described below. | |
NOTE: by default the global workqueue runs on all CPUs, | |
so to protect individual CPUs the 'cpumask' file has to | |
be configured manually after bootup. | |
domain | |
Isolate from the general SMP balancing and scheduling | |
algorithms. Note that performing domain isolation this way | |
is irreversible: it's not possible to bring back a CPU to | |
the domains once isolated through isolcpus. It's strongly | |
advised to use cpusets instead to disable scheduler load | |
balancing through the "cpuset.sched_load_balance" file. | |
It offers a much more flexible interface where CPUs can | |
move in and out of an isolated set anytime. | |
You can move a process onto or off an "isolated" CPU via | |
the CPU affinity syscalls or cpuset. | |
<cpu number> begins at 0 and the maximum value is | |
"number of CPUs in system - 1". | |
managed_irq | |
Isolate from being targeted by managed interrupts | |
which have an interrupt mask containing isolated | |
CPUs. The affinity of managed interrupts is | |
handled by the kernel and cannot be changed via | |
the /proc/irq/* interfaces. | |
This isolation is best effort and only effective | |
if the automatically assigned interrupt mask of a | |
device queue contains isolated and housekeeping | |
CPUs. If housekeeping CPUs are online then such | |
interrupts are directed to the housekeeping CPU | |
so that IO submitted on the housekeeping CPU | |
cannot disturb the isolated CPU. | |
If a queue's affinity mask contains only isolated | |
CPUs then this parameter has no effect on the | |
interrupt routing decision, though interrupts are | |
only delivered when tasks running on those | |
isolated CPUs submit IO. IO submitted on | |
housekeeping CPUs has no influence on those | |
queues. | |
The format of <cpu-list> is described above. | |
iucv= [HW,NET] | |
ivrs_ioapic [HW,X86-64] | |
Provide an override to the IOAPIC-ID<->DEVICE-ID | |
mapping provided in the IVRS ACPI table. | |
By default, PCI segment is 0, and can be omitted. | |
For example, to map IOAPIC-ID decimal 10 to | |
PCI segment 0x1 and PCI device 00:14.0, | |
write the parameter as: | |
ivrs_ioapic=10@0001:00:14.0 | |
Deprecated formats: | |
* To map IOAPIC-ID decimal 10 to PCI device 00:14.0 | |
write the parameter as: | |
ivrs_ioapic[10]=00:14.0 | |
* To map IOAPIC-ID decimal 10 to PCI segment 0x1 and | |
PCI device 00:14.0 write the parameter as: | |
ivrs_ioapic[10]=0001:00:14.0 | |
ivrs_hpet [HW,X86-64] | |
Provide an override to the HPET-ID<->DEVICE-ID | |
mapping provided in the IVRS ACPI table. | |
By default, PCI segment is 0, and can be omitted. | |
For example, to map HPET-ID decimal 10 to | |
PCI segment 0x1 and PCI device 00:14.0, | |
write the parameter as: | |
ivrs_hpet=10@0001:00:14.0 | |
Deprecated formats: | |
* To map HPET-ID decimal 0 to PCI device 00:14.0 | |
write the parameter as: | |
ivrs_hpet[0]=00:14.0 | |
* To map HPET-ID decimal 10 to PCI segment 0x1 and | |
PCI device 00:14.0 write the parameter as: | |
ivrs_ioapic[10]=0001:00:14.0 | |
ivrs_acpihid [HW,X86-64] | |
Provide an override to the ACPI-HID:UID<->DEVICE-ID | |
mapping provided in the IVRS ACPI table. | |
By default, PCI segment is 0, and can be omitted. | |
For example, to map UART-HID:UID AMD0020:0 to | |
PCI segment 0x1 and PCI device ID 00:14.5, | |
write the parameter as: | |
ivrs_acpihid=AMD0020:0@0001:00:14.5 | |
Deprecated formats: | |
* To map UART-HID:UID AMD0020:0 to PCI segment is 0, | |
PCI device ID 00:14.5, write the parameter as: | |
ivrs_acpihid[00:14.5]=AMD0020:0 | |
* To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and | |
PCI device ID 00:14.5, write the parameter as: | |
ivrs_acpihid[0001:00:14.5]=AMD0020:0 | |
js= [HW,JOY] Analog joystick | |
See Documentation/input/joydev/joystick.rst. | |
kasan_multi_shot | |
[KNL] Enforce KASAN (Kernel Address Sanitizer) to print | |
report on every invalid memory access. Without this | |
parameter KASAN will print report only for the first | |
invalid access. | |
keep_bootcon [KNL,EARLY] | |
Do not unregister boot console at start. This is only | |
useful for debugging when something happens in the window | |
between unregistering the boot console and initializing | |
the real console. | |
keepinitrd [HW,ARM] See retain_initrd. | |
kernelcore= [KNL,X86,PPC,EARLY] | |
Format: nn[KMGTPE] | nn% | "mirror" | |
This parameter specifies the amount of memory usable by | |
the kernel for non-movable allocations. The requested | |
amount is spread evenly throughout all nodes in the | |
system as ZONE_NORMAL. The remaining memory is used for | |
movable memory in its own zone, ZONE_MOVABLE. In the | |
event, a node is too small to have both ZONE_NORMAL and | |
ZONE_MOVABLE, kernelcore memory will take priority and | |
other nodes will have a larger ZONE_MOVABLE. | |
ZONE_MOVABLE is used for the allocation of pages that | |
may be reclaimed or moved by the page migration | |
subsystem. Note that allocations like PTEs-from-HighMem | |
still use the HighMem zone if it exists, and the Normal | |
zone if it does not. | |
It is possible to specify the exact amount of memory in | |
the form of "nn[KMGTPE]", a percentage of total system | |
memory in the form of "nn%", or "mirror". If "mirror" | |
option is specified, mirrored (reliable) memory is used | |
for non-movable allocations and remaining memory is used | |
for Movable pages. "nn[KMGTPE]", "nn%", and "mirror" | |
are exclusive, so you cannot specify multiple forms. | |
kgdbdbgp= [KGDB,HW,EARLY] kgdb over EHCI usb debug port. | |
Format: <Controller#>[,poll interval] | |
The controller # is the number of the ehci usb debug | |
port as it is probed via PCI. The poll interval is | |
optional and is the number seconds in between | |
each poll cycle to the debug port in case you need | |
the functionality for interrupting the kernel with | |
gdb or control-c on the dbgp connection. When | |
not using this parameter you use sysrq-g to break into | |
the kernel debugger. | |
kgdboc= [KGDB,HW] kgdb over consoles. | |
Requires a tty driver that supports console polling, | |
or a supported polling keyboard driver (non-usb). | |
Serial only format: <serial_device>[,baud] | |
keyboard only format: kbd | |
keyboard and serial format: kbd,<serial_device>[,baud] | |
Optional Kernel mode setting: | |
kms, kbd format: kms,kbd | |
kms, kbd and serial format: kms,kbd,<ser_dev>[,baud] | |
kgdboc_earlycon= [KGDB,HW,EARLY] | |
If the boot console provides the ability to read | |
characters and can work in polling mode, you can use | |
this parameter to tell kgdb to use it as a backend | |
until the normal console is registered. Intended to | |
be used together with the kgdboc parameter which | |
specifies the normal console to transition to. | |
The name of the early console should be specified | |
as the value of this parameter. Note that the name of | |
the early console might be different than the tty | |
name passed to kgdboc. It's OK to leave the value | |
blank and the first boot console that implements | |
read() will be picked. | |
kgdbwait [KGDB,EARLY] Stop kernel execution and enter the | |
kernel debugger at the earliest opportunity. | |
kmac= [MIPS] Korina ethernet MAC address. | |
Configure the RouterBoard 532 series on-chip | |
Ethernet adapter MAC address. | |
kmemleak= [KNL,EARLY] Boot-time kmemleak enable/disable | |
Valid arguments: on, off | |
Default: on | |
Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y, | |
the default is off. | |
kprobe_event=[probe-list] | |
[FTRACE] Add kprobe events and enable at boot time. | |
The probe-list is a semicolon delimited list of probe | |
definitions. Each definition is same as kprobe_events | |
interface, but the parameters are comma delimited. | |
For example, to add a kprobe event on vfs_read with | |
arg1 and arg2, add to the command line; | |
kprobe_event=p,vfs_read,$arg1,$arg2 | |
See also Documentation/trace/kprobetrace.rst "Kernel | |
Boot Parameter" section. | |
kpti= [ARM64,EARLY] Control page table isolation of | |
user and kernel address spaces. | |
Default: enabled on cores which need mitigation. | |
0: force disabled | |
1: force enabled | |
kunit.enable= [KUNIT] Enable executing KUnit tests. Requires | |
CONFIG_KUNIT to be set to be fully enabled. The | |
default value can be overridden via | |
KUNIT_DEFAULT_ENABLED. | |
Default is 1 (enabled) | |
kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs. | |
Default is 0 (don't ignore, but inject #GP) | |
kvm.eager_page_split= | |
[KVM,X86] Controls whether or not KVM will try to | |
proactively split all huge pages during dirty logging. | |
Eager page splitting reduces interruptions to vCPU | |
execution by eliminating the write-protection faults | |
and MMU lock contention that would otherwise be | |
required to split huge pages lazily. | |
VM workloads that rarely perform writes or that write | |
only to a small region of VM memory may benefit from | |
disabling eager page splitting to allow huge pages to | |
still be used for reads. | |
The behavior of eager page splitting depends on whether | |
KVM_DIRTY_LOG_INITIALLY_SET is enabled or disabled. If | |
disabled, all huge pages in a memslot will be eagerly | |
split when dirty logging is enabled on that memslot. If | |
enabled, eager page splitting will be performed during | |
the KVM_CLEAR_DIRTY ioctl, and only for the pages being | |
cleared. | |
Eager page splitting is only supported when kvm.tdp_mmu=Y. | |
Default is Y (on). | |
kvm.enable_virt_at_load=[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86] | |
If enabled, KVM will enable virtualization in hardware | |
when KVM is loaded, and disable virtualization when KVM | |
is unloaded (if KVM is built as a module). | |
If disabled, KVM will dynamically enable and disable | |
virtualization on-demand when creating and destroying | |
VMs, i.e. on the 0=>1 and 1=>0 transitions of the | |
number of VMs. | |
Enabling virtualization at module lode avoids potential | |
latency for creation of the 0=>1 VM, as KVM serializes | |
virtualization enabling across all online CPUs. The | |
"cost" of enabling virtualization when KVM is loaded, | |
is that doing so may interfere with using out-of-tree | |
hypervisors that want to "own" virtualization hardware. | |
kvm.enable_vmware_backdoor=[KVM] Support VMware backdoor PV interface. | |
Default is false (don't support). | |
kvm.nx_huge_pages= | |
[KVM] Controls the software workaround for the | |
X86_BUG_ITLB_MULTIHIT bug. | |
force : Always deploy workaround. | |
off : Never deploy workaround. | |
auto : Deploy workaround based on the presence of | |
X86_BUG_ITLB_MULTIHIT. | |
Default is 'auto'. | |
If the software workaround is enabled for the host, | |
guests do need not to enable it for nested guests. | |
kvm.nx_huge_pages_recovery_ratio= | |
[KVM] Controls how many 4KiB pages are periodically zapped | |
back to huge pages. 0 disables the recovery, otherwise if | |
the value is N KVM will zap 1/Nth of the 4KiB pages every | |
period (see below). The default is 60. | |
kvm.nx_huge_pages_recovery_period_ms= | |
[KVM] Controls the time period at which KVM zaps 4KiB pages | |
back to huge pages. If the value is a non-zero N, KVM will | |
zap a portion (see ratio above) of the pages every N msecs. | |
If the value is 0 (the default), KVM will pick a period based | |
on the ratio, such that a page is zapped after 1 hour on average. | |
kvm-amd.nested= [KVM,AMD] Control nested virtualization feature in | |
KVM/SVM. Default is 1 (enabled). | |
kvm-amd.npt= [KVM,AMD] Control KVM's use of Nested Page Tables, | |
a.k.a. Two-Dimensional Page Tables. Default is 1 | |
(enabled). Disable by KVM if hardware lacks support | |
for NPT. | |
kvm-arm.mode= | |
[KVM,ARM,EARLY] Select one of KVM/arm64's modes of | |
operation. | |
none: Forcefully disable KVM. | |
nvhe: Standard nVHE-based mode, without support for | |
protected guests. | |
protected: nVHE-based mode with support for guests whose | |
state is kept private from the host. | |
nested: VHE-based mode with support for nested | |
virtualization. Requires at least ARMv8.3 | |
hardware. | |
Defaults to VHE/nVHE based on hardware support. Setting | |
mode to "protected" will disable kexec and hibernation | |
for the host. "nested" is experimental and should be | |
used with extreme caution. | |
kvm-arm.vgic_v3_group0_trap= | |
[KVM,ARM,EARLY] Trap guest accesses to GICv3 group-0 | |
system registers | |
kvm-arm.vgic_v3_group1_trap= | |
[KVM,ARM,EARLY] Trap guest accesses to GICv3 group-1 | |
system registers | |
kvm-arm.vgic_v3_common_trap= | |
[KVM,ARM,EARLY] Trap guest accesses to GICv3 common | |
system registers | |
kvm-arm.vgic_v4_enable= | |
[KVM,ARM,EARLY] Allow use of GICv4 for direct | |
injection of LPIs. | |
kvm-arm.wfe_trap_policy= | |
[KVM,ARM] Control when to set WFE instruction trap for | |
KVM VMs. Traps are allowed but not guaranteed by the | |
CPU architecture. | |
trap: set WFE instruction trap | |
notrap: clear WFE instruction trap | |
kvm-arm.wfi_trap_policy= | |
[KVM,ARM] Control when to set WFI instruction trap for | |
KVM VMs. Traps are allowed but not guaranteed by the | |
CPU architecture. | |
trap: set WFI instruction trap | |
notrap: clear WFI instruction trap | |
kvm_cma_resv_ratio=n [PPC,EARLY] | |
Reserves given percentage from system memory area for | |
contiguous memory allocation for KVM hash pagetable | |
allocation. | |
By default it reserves 5% of total system memory. | |
Format: <integer> | |
Default: 5 | |
kvm-intel.ept= [KVM,Intel] Control KVM's use of Extended Page Tables, | |
a.k.a. Two-Dimensional Page Tables. Default is 1 | |
(enabled). Disable by KVM if hardware lacks support | |
for EPT. | |
kvm-intel.emulate_invalid_guest_state= | |
[KVM,Intel] Control whether to emulate invalid guest | |
state. Ignored if kvm-intel.enable_unrestricted_guest=1, | |
as guest state is never invalid for unrestricted | |
guests. This param doesn't apply to nested guests (L2), | |
as KVM never emulates invalid L2 guest state. | |
Default is 1 (enabled). | |
kvm-intel.flexpriority= | |
[KVM,Intel] Control KVM's use of FlexPriority feature | |
(TPR shadow). Default is 1 (enabled). Disable by KVM if | |
hardware lacks support for it. | |
kvm-intel.nested= | |
[KVM,Intel] Control nested virtualization feature in | |
KVM/VMX. Default is 1 (enabled). | |
kvm-intel.unrestricted_guest= | |
[KVM,Intel] Control KVM's use of unrestricted guest | |
feature (virtualized real and unpaged mode). Default | |
is 1 (enabled). Disable by KVM if EPT is disabled or | |
hardware lacks support for it. | |
kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault | |
CVE-2018-3620. | |
Valid arguments: never, cond, always | |
always: L1D cache flush on every VMENTER. | |
cond: Flush L1D on VMENTER only when the code between | |
VMEXIT and VMENTER can leak host memory. | |
never: Disables the mitigation | |
Default is cond (do L1 cache flush in specific instances) | |
kvm-intel.vpid= [KVM,Intel] Control KVM's use of Virtual Processor | |
Identification feature (tagged TLBs). Default is 1 | |
(enabled). Disable by KVM if hardware lacks support | |
for it. | |
l1d_flush= [X86,INTEL,EARLY] | |
Control mitigation for L1D based snooping vulnerability. | |
Certain CPUs are vulnerable to an exploit against CPU | |
internal buffers which can forward information to a | |
disclosure gadget under certain conditions. | |
In vulnerable processors, the speculatively | |
forwarded data can be used in a cache side channel | |
attack, to access data to which the attacker does | |
not have direct access. | |
This parameter controls the mitigation. The | |
options are: | |
on - enable the interface for the mitigation | |
l1tf= [X86,EARLY] Control mitigation of the L1TF vulnerability on | |
affected CPUs | |
The kernel PTE inversion protection is unconditionally | |
enabled and cannot be disabled. | |
full | |
Provides all available mitigations for the | |
L1TF vulnerability. Disables SMT and | |
enables all mitigations in the | |
hypervisors, i.e. unconditional L1D flush. | |
SMT control and L1D flush control via the | |
sysfs interface is still possible after | |
boot. Hypervisors will issue a warning | |
when the first VM is started in a | |
potentially insecure configuration, | |
i.e. SMT enabled or L1D flush disabled. | |
full,force | |
Same as 'full', but disables SMT and L1D | |
flush runtime control. Implies the | |
'nosmt=force' command line option. | |
(i.e. sysfs control of SMT is disabled.) | |
flush | |
Leaves SMT enabled and enables the default | |
hypervisor mitigation, i.e. conditional | |
L1D flush. | |
SMT control and L1D flush control via the | |
sysfs interface is still possible after | |
boot. Hypervisors will issue a warning | |
when the first VM is started in a | |
potentially insecure configuration, | |
i.e. SMT enabled or L1D flush disabled. | |
flush,nosmt | |
Disables SMT and enables the default | |
hypervisor mitigation. | |
SMT control and L1D flush control via the | |
sysfs interface is still possible after | |
boot. Hypervisors will issue a warning | |
when the first VM is started in a | |
potentially insecure configuration, | |
i.e. SMT enabled or L1D flush disabled. | |
flush,nowarn | |
Same as 'flush', but hypervisors will not | |
warn when a VM is started in a potentially | |
insecure configuration. | |
off | |
Disables hypervisor mitigations and doesn't | |
emit any warnings. | |
It also drops the swap size and available | |
RAM limit restriction on both hypervisor and | |
bare metal. | |
Default is 'flush'. | |
For details see: Documentation/admin-guide/hw-vuln/l1tf.rst | |
l2cr= [PPC] | |
l3cr= [PPC] | |
lapic [X86-32,APIC,EARLY] Enable the local APIC even if BIOS | |
disabled it. | |
lapic= [X86,APIC] Do not use TSC deadline | |
value for LAPIC timer one-shot implementation. Default | |
back to the programmable timer unit in the LAPIC. | |
Format: notscdeadline | |
lapic_timer_c2_ok [X86,APIC,EARLY] trust the local apic timer | |
in C2 power state. | |
libata.dma= [LIBATA] DMA control | |
libata.dma=0 Disable all PATA and SATA DMA | |
libata.dma=1 PATA and SATA Disk DMA only | |
libata.dma=2 ATAPI (CDROM) DMA only | |
libata.dma=4 Compact Flash DMA only | |
Combinations also work, so libata.dma=3 enables DMA | |
for disks and CDROMs, but not CFs. | |
libata.ignore_hpa= [LIBATA] Ignore HPA limit | |
libata.ignore_hpa=0 keep BIOS limits (default) | |
libata.ignore_hpa=1 ignore limits, using full disk | |
libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume | |
when set. | |
Format: <int> | |
libata.force= [LIBATA] Force configurations. The format is a comma- | |
separated list of "[ID:]VAL" where ID is PORT[.DEVICE]. | |
PORT and DEVICE are decimal numbers matching port, link | |
or device. Basically, it matches the ATA ID string | |
printed on console by libata. If the whole ID part is | |
omitted, the last PORT and DEVICE values are used. If | |
ID hasn't been specified yet, the configuration applies | |
to all ports, links and devices. | |
If only DEVICE is omitted, the parameter applies to | |
the port and all links and devices behind it. DEVICE | |
number of 0 either selects the first device or the | |
first fan-out link behind PMP device. It does not | |
select the host link. DEVICE number of 15 selects the | |
host link and device attached to it. | |
The VAL specifies the configuration to force. As long | |
as there is no ambiguity, shortcut notation is allowed. | |
For example, both 1.5 and 1.5G would work for 1.5Gbps. | |
The following configurations can be forced. | |
* Cable type: 40c, 80c, short40c, unk, ign or sata. | |
Any ID with matching PORT is used. | |
* SATA link speed limit: 1.5Gbps or 3.0Gbps. | |
* Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7]. | |
udma[/][16,25,33,44,66,100,133] notation is also | |
allowed. | |
* nohrst, nosrst, norst: suppress hard, soft and both | |
resets. | |
* rstonce: only attempt one reset during hot-unplug | |
link recovery. | |
* [no]dbdelay: Enable or disable the extra 200ms delay | |
before debouncing a link PHY and device presence | |
detection. | |
* [no]ncq: Turn on or off NCQ. | |
* [no]ncqtrim: Enable or disable queued DSM TRIM. | |
* [no]ncqati: Enable or disable NCQ trim on ATI chipset. | |
* [no]trim: Enable or disable (unqueued) TRIM. | |
* trim_zero: Indicate that TRIM command zeroes data. | |
* max_trim_128m: Set 128M maximum trim size limit. | |
* [no]dma: Turn on or off DMA transfers. | |
* atapi_dmadir: Enable ATAPI DMADIR bridge support. | |
* atapi_mod16_dma: Enable the use of ATAPI DMA for | |
commands that are not a multiple of 16 bytes. | |
* [no]dmalog: Enable or disable the use of the | |
READ LOG DMA EXT command to access logs. | |
* [no]iddevlog: Enable or disable access to the | |
identify device data log. | |
* [no]logdir: Enable or disable access to the general | |
purpose log directory. | |
* max_sec_128: Set transfer size limit to 128 sectors. | |
* max_sec_1024: Set or clear transfer size limit to | |
1024 sectors. | |
* max_sec_lba48: Set or clear transfer size limit to | |
65535 sectors. | |
* [no]lpm: Enable or disable link power management. | |
* [no]setxfer: Indicate if transfer speed mode setting | |
should be skipped. | |
* [no]fua: Disable or enable FUA (Force Unit Access) | |
support for devices supporting this feature. | |
* dump_id: Dump IDENTIFY data. | |
* disable: Disable this device. | |
If there are multiple matching configurations changing | |
the same attribute, the last one is used. | |
load_ramdisk= [RAM] [Deprecated] | |
lockd.nlm_grace_period=P [NFS] Assign grace period. | |
Format: <integer> | |
lockd.nlm_tcpport=N [NFS] Assign TCP port. | |
Format: <integer> | |
lockd.nlm_timeout=T [NFS] Assign timeout value. | |
Format: <integer> | |
lockd.nlm_udpport=M [NFS] Assign UDP port. | |
Format: <integer> | |
lockdown= [SECURITY,EARLY] | |
{ integrity | confidentiality } | |
Enable the kernel lockdown feature. If set to | |
integrity, kernel features that allow userland to | |
modify the running kernel are disabled. If set to | |
confidentiality, kernel features that allow userland | |
to extract confidential information from the kernel | |
are also disabled. | |
locktorture.acq_writer_lim= [KNL] | |
Set the time limit in jiffies for a lock | |
acquisition. Acquisitions exceeding this limit | |
will result in a splat once they do complete. | |
locktorture.bind_readers= [KNL] | |
Specify the list of CPUs to which the readers are | |
to be bound. | |
locktorture.bind_writers= [KNL] | |
Specify the list of CPUs to which the writers are | |
to be bound. | |
locktorture.call_rcu_chains= [KNL] | |
Specify the number of self-propagating call_rcu() | |
chains to set up. These are used to ensure that | |
there is a high probability of an RCU grace period | |
in progress at any given time. Defaults to 0, | |
which disables these call_rcu() chains. | |
locktorture.long_hold= [KNL] | |
Specify the duration in milliseconds for the | |
occasional long-duration lock hold time. Defaults | |
to 100 milliseconds. Select 0 to disable. | |
locktorture.nested_locks= [KNL] | |
Specify the maximum lock nesting depth that | |
locktorture is to exercise, up to a limit of 8 | |
(MAX_NESTED_LOCKS). Specify zero to disable. | |
Note that this parameter is ineffective on types | |
of locks that do not support nested acquisition. | |
locktorture.nreaders_stress= [KNL] | |
Set the number of locking read-acquisition kthreads. | |
Defaults to being automatically set based on the | |
number of online CPUs. | |
locktorture.nwriters_stress= [KNL] | |
Set the number of locking write-acquisition kthreads. | |
locktorture.onoff_holdoff= [KNL] | |
Set time (s) after boot for CPU-hotplug testing. | |
locktorture.onoff_interval= [KNL] | |
Set time (s) between CPU-hotplug operations, or | |
zero to disable CPU-hotplug testing. | |
locktorture.rt_boost= [KNL] | |
Do periodic testing of real-time lock priority | |
boosting. Select 0 to disable, 1 to boost | |
only rt_mutex, and 2 to boost unconditionally. | |
Defaults to 2, which might seem to be an | |
odd choice, but which should be harmless for | |
non-real-time spinlocks, due to their disabling | |
of preemption. Note that non-realtime mutexes | |
disable boosting. | |
locktorture.rt_boost_factor= [KNL] | |
Number that determines how often and for how | |
long priority boosting is exercised. This is | |
scaled down by the number of writers, so that the | |
number of boosts per unit time remains roughly | |
constant as the number of writers increases. | |
On the other hand, the duration of each boost | |
increases with the number of writers. | |
locktorture.shuffle_interval= [KNL] | |
Set task-shuffle interval (jiffies). Shuffling | |
tasks allows some CPUs to go into dyntick-idle | |
mode during the locktorture test. | |
locktorture.shutdown_secs= [KNL] | |
Set time (s) after boot system shutdown. This | |
is useful for hands-off automated testing. | |
locktorture.stat_interval= [KNL] | |
Time (s) between statistics printk()s. | |
locktorture.stutter= [KNL] | |
Time (s) to stutter testing, for example, | |
specifying five seconds causes the test to run for | |
five seconds, wait for five seconds, and so on. | |
This tests the locking primitive's ability to | |
transition abruptly to and from idle. | |
locktorture.torture_type= [KNL] | |
Specify the locking implementation to test. | |
locktorture.verbose= [KNL] | |
Enable additional printk() statements. | |
locktorture.writer_fifo= [KNL] | |
Run the write-side locktorture kthreads at | |
sched_set_fifo() real-time priority. | |
logibm.irq= [HW,MOUSE] Logitech Bus Mouse Driver | |
Format: <irq> | |
loglevel= [KNL,EARLY] | |
All Kernel Messages with a loglevel smaller than the | |
console loglevel will be printed to the console. It can | |
also be changed with klogd or other programs. The | |
loglevels are defined as follows: | |
0 (KERN_EMERG) system is unusable | |
1 (KERN_ALERT) action must be taken immediately | |
2 (KERN_CRIT) critical conditions | |
3 (KERN_ERR) error conditions | |
4 (KERN_WARNING) warning conditions | |
5 (KERN_NOTICE) normal but significant condition | |
6 (KERN_INFO) informational | |
7 (KERN_DEBUG) debug-level messages | |
log_buf_len=n[KMG] [KNL,EARLY] | |
Sets the size of the printk ring buffer, in bytes. | |
n must be a power of two and greater than the | |
minimal size. The minimal size is defined by | |
LOG_BUF_SHIFT kernel config parameter. There | |
is also CONFIG_LOG_CPU_MAX_BUF_SHIFT config | |
parameter that allows to increase the default size | |
depending on the number of CPUs. See init/Kconfig | |
for more details. | |
logo.nologo [FB] Disables display of the built-in Linux logo. | |
This may be used to provide more screen space for | |
kernel log messages and is useful when debugging | |
kernel boot problems. | |
lp=0 [LP] Specify parallel ports to use, e.g, | |
lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses | |
lp=reset first parallel port). 'lp=0' disables the | |
lp=auto printer driver. 'lp=reset' (which can be | |
specified in addition to the ports) causes | |
attached printers to be reset. Using | |
lp=port1,port2,... specifies the parallel ports | |
to associate lp devices with, starting with | |
lp0. A port specification may be 'none' to skip | |
that lp device, or a parport name such as | |
'parport0'. Specifying 'lp=auto' instead of a | |
port specification list means that device IDs | |
from each port should be examined, to see if | |
an IEEE 1284-compliant printer is attached; if | |
so, the driver will manage that printer. | |
See also header of drivers/char/lp.c. | |
lpj=n [KNL] | |
Sets loops_per_jiffy to given constant, thus avoiding | |
time-consuming boot-time autodetection (up to 250 ms per | |
CPU). 0 enables autodetection (default). To determine | |
the correct value for your kernel, boot with normal | |
autodetection and see what value is printed. Note that | |
on SMP systems the preset will be applied to all CPUs, | |
which is likely to cause problems if your CPUs need | |
significantly divergent settings. An incorrect value | |
will cause delays in the kernel to be wrong, leading to | |
unpredictable I/O errors and other breakage. Although | |
unlikely, in the extreme case this might damage your | |
hardware. | |
lsm.debug [SECURITY] Enable LSM initialization debugging output. | |
lsm=lsm1,...,lsmN | |
[SECURITY] Choose order of LSM initialization. This | |
overrides CONFIG_LSM, and the "security=" parameter. | |
machtype= [Loongson] Share the same kernel image file between | |
different yeeloong laptops. | |
Example: machtype=lemote-yeeloong-2f-7inch | |
maxcpus= [SMP,EARLY] Maximum number of processors that an SMP kernel | |
will bring up during bootup. maxcpus=n : n >= 0 limits | |
the kernel to bring up 'n' processors. Surely after | |
bootup you can bring up the other plugged cpu by executing | |
"echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus | |
only takes effect during system bootup. | |
While n=0 is a special case, it is equivalent to "nosmp", | |
which also disables the IO APIC. | |
max_loop= [LOOP] The number of loop block devices that get | |
(loop.max_loop) unconditionally pre-created at init time. The default | |
number is configured by BLK_DEV_LOOP_MIN_COUNT. Instead | |
of statically allocating a predefined number, loop | |
devices can be requested on-demand with the | |
/dev/loop-control interface. | |
mce [X86-32] Machine Check Exception | |
mce=option [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst | |
md= [HW] RAID subsystems devices and level | |
See Documentation/admin-guide/md.rst. | |
mdacon= [MDA] | |
Format: <first>,<last> | |
Specifies range of consoles to be captured by the MDA. | |
mds= [X86,INTEL,EARLY] | |
Control mitigation for the Micro-architectural Data | |
Sampling (MDS) vulnerability. | |
Certain CPUs are vulnerable to an exploit against CPU | |
internal buffers which can forward information to a | |
disclosure gadget under certain conditions. | |
In vulnerable processors, the speculatively | |
forwarded data can be used in a cache side channel | |
attack, to access data to which the attacker does | |
not have direct access. | |
This parameter controls the MDS mitigation. The | |
options are: | |
full - Enable MDS mitigation on vulnerable CPUs | |
full,nosmt - Enable MDS mitigation and disable | |
SMT on vulnerable CPUs | |
off - Unconditionally disable MDS mitigation | |
On TAA-affected machines, mds=off can be prevented by | |
an active TAA mitigation as both vulnerabilities are | |
mitigated with the same mechanism so in order to disable | |
this mitigation, you need to specify tsx_async_abort=off | |
too. | |
Not specifying this option is equivalent to | |
mds=full. | |
For details see: Documentation/admin-guide/hw-vuln/mds.rst | |
mem=nn[KMG] [HEXAGON,EARLY] Set the memory size. | |
Must be specified, otherwise memory size will be 0. | |
mem=nn[KMG] [KNL,BOOT,EARLY] Force usage of a specific amount | |
of memory Amount of memory to be used in cases | |
as follows: | |
1 for test; | |
2 when the kernel is not able to see the whole system memory; | |
3 memory that lies after 'mem=' boundary is excluded from | |
the hypervisor, then assigned to KVM guests. | |
4 to limit the memory available for kdump kernel. | |
[ARC,MICROBLAZE] - the limit applies only to low memory, | |
high memory is not affected. | |
[ARM64] - only limits memory covered by the linear | |
mapping. The NOMAP regions are not affected. | |
[X86] Work as limiting max address. Use together | |
with memmap= to avoid physical address space collisions. | |
Without memmap= PCI devices could be placed at addresses | |
belonging to unused RAM. | |
Note that this only takes effects during boot time since | |
in above case 3, memory may need be hot added after boot | |
if system memory of hypervisor is not sufficient. | |
mem=nn[KMG]@ss[KMG] | |
[ARM,MIPS,EARLY] - override the memory layout | |
reported by firmware. | |
Define a memory region of size nn[KMG] starting at | |
ss[KMG]. | |
Multiple different regions can be specified with | |
multiple mem= parameters on the command line. | |
mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel | |
memory. | |
memblock=debug [KNL,EARLY] Enable memblock debug messages. | |
memchunk=nn[KMG] | |
[KNL,SH] Allow user to override the default size for | |
per-device physically contiguous DMA buffers. | |
memhp_default_state=online/offline/online_kernel/online_movable | |
[KNL] Set the initial state for the memory hotplug | |
onlining policy. If not specified, the default value is | |
set according to the | |
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel config | |
option. | |
See Documentation/admin-guide/mm/memory-hotplug.rst. | |
memmap=exactmap [KNL,X86,EARLY] Enable setting of an exact | |
E820 memory map, as specified by the user. | |
Such memmap=exactmap lines can be constructed based on | |
BIOS output or other requirements. See the memmap=nn@ss | |
option description. | |
memmap=nn[KMG]@ss[KMG] | |
[KNL, X86,MIPS,XTENSA,EARLY] Force usage of a specific region of memory. | |
Region of memory to be used is from ss to ss+nn. | |
If @ss[KMG] is omitted, it is equivalent to mem=nn[KMG], | |
which limits max address to nn[KMG]. | |
Multiple different regions can be specified, | |
comma delimited. | |
Example: | |
memmap=100M@2G,100M#3G,1G!1024G | |
memmap=nn[KMG]#ss[KMG] | |
[KNL,ACPI,EARLY] Mark specific memory as ACPI data. | |
Region of memory to be marked is from ss to ss+nn. | |
memmap=nn[KMG]$ss[KMG] | |
[KNL,ACPI,EARLY] Mark specific memory as reserved. | |
Region of memory to be reserved is from ss to ss+nn. | |
Example: Exclude memory from 0x18690000-0x1869ffff | |
memmap=64K$0x18690000 | |
or | |
memmap=0x10000$0x18690000 | |
Some bootloaders may need an escape character before '$', | |
like Grub2, otherwise '$' and the following number | |
will be eaten. | |
memmap=nn[KMG]!ss[KMG,EARLY] | |
[KNL,X86] Mark specific memory as protected. | |
Region of memory to be used, from ss to ss+nn. | |
The memory region may be marked as e820 type 12 (0xc) | |
and is NVDIMM or ADR memory. | |
memmap=<size>%<offset>-<oldtype>+<newtype> | |
[KNL,ACPI,EARLY] Convert memory within the specified region | |
from <oldtype> to <newtype>. If "-<oldtype>" is left | |
out, the whole region will be marked as <newtype>, | |
even if previously unavailable. If "+<newtype>" is left | |
out, matching memory will be removed. Types are | |
specified as e820 types, e.g., 1 = RAM, 2 = reserved, | |
3 = ACPI, 12 = PRAM. | |
memory_corruption_check=0/1 [X86,EARLY] | |
Some BIOSes seem to corrupt the first 64k of | |
memory when doing things like suspend/resume. | |
Setting this option will scan the memory | |
looking for corruption. Enabling this will | |
both detect corruption and prevent the kernel | |
from using the memory being corrupted. | |
However, its intended as a diagnostic tool; if | |
repeatable BIOS-originated corruption always | |
affects the same memory, you can use memmap= | |
to prevent the kernel from using that memory. | |
memory_corruption_check_size=size [X86,EARLY] | |
By default it checks for corruption in the low | |
64k, making this memory unavailable for normal | |
use. Use this parameter to scan for | |
corruption in more or less memory. | |
memory_corruption_check_period=seconds [X86,EARLY] | |
By default it checks for corruption every 60 | |
seconds. Use this parameter to check at some | |
other rate. 0 disables periodic checking. | |
memory_hotplug.memmap_on_memory | |
[KNL,X86,ARM] Boolean flag to enable this feature. | |
Format: {on | off (default)} | |
When enabled, runtime hotplugged memory will | |
allocate its internal metadata (struct pages, | |
those vmemmap pages cannot be optimized even | |
if hugetlb_free_vmemmap is enabled) from the | |
hotadded memory which will allow to hotadd a | |
lot of memory without requiring additional | |
memory to do so. | |
This feature is disabled by default because it | |
has some implication on large (e.g. GB) | |
allocations in some configurations (e.g. small | |
memory blocks). | |
The state of the flag can be read in | |
/sys/module/memory_hotplug/parameters/memmap_on_memory. | |
Note that even when enabled, there are a few cases where | |
the feature is not effective. | |
memtest= [KNL,X86,ARM,M68K,PPC,RISCV,EARLY] Enable memtest | |
Format: <integer> | |
default : 0 <disable> | |
Specifies the number of memtest passes to be | |
performed. Each pass selects another test | |
pattern from a given set of patterns. Memtest | |
fills the memory with this pattern, validates | |
memory contents and reserves bad memory | |
regions that are detected. | |
mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control | |
Valid arguments: on, off | |
Default: off | |
mem_encrypt=on: Activate SME | |
mem_encrypt=off: Do not activate SME | |
Refer to Documentation/virt/kvm/x86/amd-memory-encryption.rst | |
for details on when memory encryption can be activated. | |
mem_sleep_default= [SUSPEND] Default system suspend mode: | |
s2idle - Suspend-To-Idle | |
shallow - Power-On Suspend or equivalent (if supported) | |
deep - Suspend-To-RAM or equivalent (if supported) | |
See Documentation/admin-guide/pm/sleep-states.rst. | |
mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms when | |
the BIOS has incorrectly applied a workaround. TinyBIOS | |
version 0.98 is known to be affected, 0.99 fixes the | |
problem by letting the user disable the workaround. | |
mga= [HW,DRM] | |
microcode.force_minrev= [X86] | |
Format: <bool> | |
Enable or disable the microcode minimal revision | |
enforcement for the runtime microcode loader. | |
mini2440= [ARM,HW,KNL] | |
Format:[0..2][b][c][t] | |
Default: "0tb" | |
MINI2440 configuration specification: | |
0 - The attached screen is the 3.5" TFT | |
1 - The attached screen is the 7" TFT | |
2 - The VGA Shield is attached (1024x768) | |
Leaving out the screen size parameter will not load | |
the TFT driver, and the framebuffer will be left | |
unconfigured. | |
b - Enable backlight. The TFT backlight pin will be | |
linked to the kernel VESA blanking code and a GPIO | |
LED. This parameter is not necessary when using the | |
VGA shield. | |
c - Enable the s3c camera interface. | |
t - Reserved for enabling touchscreen support. The | |
touchscreen support is not enabled in the mainstream | |
kernel as of 2.6.30, a preliminary port can be found | |
in the "bleeding edge" mini2440 support kernel at | |
https://repo.or.cz/w/linux-2.6/mini2440.git | |
mitigations= | |
[X86,PPC,S390,ARM64,EARLY] Control optional mitigations for | |
CPU vulnerabilities. This is a set of curated, | |
arch-independent options, each of which is an | |
aggregation of existing arch-specific options. | |
Note, "mitigations" is supported if and only if the | |
kernel was built with CPU_MITIGATIONS=y. | |
off | |
Disable all optional CPU mitigations. This | |
improves system performance, but it may also | |
expose users to several CPU vulnerabilities. | |
Equivalent to: if nokaslr then kpti=0 [ARM64] | |
gather_data_sampling=off [X86] | |
kvm.nx_huge_pages=off [X86] | |
l1tf=off [X86] | |
mds=off [X86] | |
mmio_stale_data=off [X86] | |
no_entry_flush [PPC] | |
no_uaccess_flush [PPC] | |
nobp=0 [S390] | |
nopti [X86,PPC] | |
nospectre_bhb [ARM64] | |
nospectre_v1 [X86,PPC] | |
nospectre_v2 [X86,PPC,S390,ARM64] | |
reg_file_data_sampling=off [X86] | |
retbleed=off [X86] | |
spec_rstack_overflow=off [X86] | |
spec_store_bypass_disable=off [X86,PPC] | |
spectre_bhi=off [X86] | |
spectre_v2_user=off [X86] | |
srbds=off [X86,INTEL] | |
ssbd=force-off [ARM64] | |
tsx_async_abort=off [X86] | |
Exceptions: | |
This does not have any effect on | |
kvm.nx_huge_pages when | |
kvm.nx_huge_pages=force. | |
auto (default) | |
Mitigate all CPU vulnerabilities, but leave SMT | |
enabled, even if it's vulnerable. This is for | |
users who don't want to be surprised by SMT | |
getting disabled across kernel upgrades, or who | |
have other ways of avoiding SMT-based attacks. | |
Equivalent to: (default behavior) | |
auto,nosmt | |
Mitigate all CPU vulnerabilities, disabling SMT | |
if needed. This is for users who always want to | |
be fully mitigated, even if it means losing SMT. | |
Equivalent to: l1tf=flush,nosmt [X86] | |
mds=full,nosmt [X86] | |
tsx_async_abort=full,nosmt [X86] | |
mmio_stale_data=full,nosmt [X86] | |
retbleed=auto,nosmt [X86] | |
mminit_loglevel= | |
[KNL,EARLY] When CONFIG_DEBUG_MEMORY_INIT is set, this | |
parameter allows control of the logging verbosity for | |
the additional memory initialisation checks. A value | |
of 0 disables mminit logging and a level of 4 will | |
log everything. Information is printed at KERN_DEBUG | |
so loglevel=8 may also need to be specified. | |
mmio_stale_data= | |
[X86,INTEL,EARLY] Control mitigation for the Processor | |
MMIO Stale Data vulnerabilities. | |
Processor MMIO Stale Data is a class of | |
vulnerabilities that may expose data after an MMIO | |
operation. Exposed data could originate or end in | |
the same CPU buffers as affected by MDS and TAA. | |
Therefore, similar to MDS and TAA, the mitigation | |
is to clear the affected CPU buffers. | |
This parameter controls the mitigation. The | |
options are: | |
full - Enable mitigation on vulnerable CPUs | |
full,nosmt - Enable mitigation and disable SMT on | |
vulnerable CPUs. | |
off - Unconditionally disable mitigation | |
On MDS or TAA affected machines, | |
mmio_stale_data=off can be prevented by an active | |
MDS or TAA mitigation as these vulnerabilities are | |
mitigated with the same mechanism so in order to | |
disable this mitigation, you need to specify | |
mds=off and tsx_async_abort=off too. | |
Not specifying this option is equivalent to | |
mmio_stale_data=full. | |
For details see: | |
Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst | |
<module>.async_probe[=<bool>] [KNL] | |
If no <bool> value is specified or if the value | |
specified is not a valid <bool>, enable asynchronous | |
probe on this module. Otherwise, enable/disable | |
asynchronous probe on this module as indicated by the | |
<bool> value. See also: module.async_probe | |
module.async_probe=<bool> | |
[KNL] When set to true, modules will use async probing | |
by default. To enable/disable async probing for a | |
specific module, use the module specific control that | |
is documented under <module>.async_probe. When both | |
module.async_probe and <module>.async_probe are | |
specified, <module>.async_probe takes precedence for | |
the specific module. | |
module.enable_dups_trace | |
[KNL] When CONFIG_MODULE_DEBUG_AUTOLOAD_DUPS is set, | |
this means that duplicate request_module() calls will | |
trigger a WARN_ON() instead of a pr_warn(). Note that | |
if MODULE_DEBUG_AUTOLOAD_DUPS_TRACE is set, WARN_ON()s | |
will always be issued and this option does nothing. | |
module.sig_enforce | |
[KNL] When CONFIG_MODULE_SIG is set, this means that | |
modules without (valid) signatures will fail to load. | |
Note that if CONFIG_MODULE_SIG_FORCE is set, that | |
is always true, so this option does nothing. | |
module_blacklist= [KNL] Do not load a comma-separated list of | |
modules. Useful for debugging problem modules. | |
mousedev.tap_time= | |
[MOUSE] Maximum time between finger touching and | |
leaving touchpad surface for touch to be considered | |
a tap and be reported as a left button click (for | |
touchpads working in absolute mode only). | |
Format: <msecs> | |
mousedev.xres= [MOUSE] Horizontal screen resolution, used for devices | |
reporting absolute coordinates, such as tablets | |
mousedev.yres= [MOUSE] Vertical screen resolution, used for devices | |
reporting absolute coordinates, such as tablets | |
movablecore= [KNL,X86,PPC,EARLY] | |
Format: nn[KMGTPE] | nn% | |
This parameter is the complement to kernelcore=, it | |
specifies the amount of memory used for migratable | |
allocations. If both kernelcore and movablecore is | |
specified, then kernelcore will be at *least* the | |
specified value but may be more. If movablecore on its | |
own is specified, the administrator must be careful | |
that the amount of memory usable for all allocations | |
is not too small. | |
movable_node [KNL,EARLY] Boot-time switch to make hotplugable memory | |
NUMA nodes to be movable. This means that the memory | |
of such nodes will be usable only for movable | |
allocations which rules out almost all kernel | |
allocations. Use with caution! | |
MTD_Partition= [MTD] | |
Format: <name>,<region-number>,<size>,<offset> | |
MTD_Region= [MTD] Format: | |
<name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] | |
mtdparts= [MTD] | |
See drivers/mtd/parsers/cmdlinepart.c | |
mtouchusb.raw_coordinates= | |
[HW] Make the MicroTouch USB driver use raw coordinates | |
('y', default) or cooked coordinates ('n') | |
mtrr=debug [X86,EARLY] | |
Enable printing debug information related to MTRR | |
registers at boot time. | |
mtrr_chunk_size=nn[KMG,X86,EARLY] | |
used for mtrr cleanup. It is largest continuous chunk | |
that could hold holes aka. UC entries. | |
mtrr_gran_size=nn[KMG,X86,EARLY] | |
Used for mtrr cleanup. It is granularity of mtrr block. | |
Default is 1. | |
Large value could prevent small alignment from | |
using up MTRRs. | |
mtrr_spare_reg_nr=n [X86,EARLY] | |
Format: <integer> | |
Range: 0,7 : spare reg number | |
Default : 1 | |
Used for mtrr cleanup. It is spare mtrr entries number. | |
Set to 2 or more if your graphical card needs more. | |
multitce=off [PPC] This parameter disables the use of the pSeries | |
firmware feature for updating multiple TCE entries | |
at a time. | |
n2= [NET] SDL Inc. RISCom/N2 synchronous serial card | |
netdev= [NET] Network devices parameters | |
Format: <irq>,<io>,<mem_start>,<mem_end>,<name> | |
Note that mem_start is often overloaded to mean | |
something different and driver-specific. | |
This usage is only documented in each driver source | |
file if at all. | |
netpoll.carrier_timeout= | |
[NET] Specifies amount of time (in seconds) that | |
netpoll should wait for a carrier. By default netpoll | |
waits 4 seconds. | |
nf_conntrack.acct= | |
[NETFILTER] Enable connection tracking flow accounting | |
0 to disable accounting | |
1 to enable accounting | |
Default value is 0. | |
nfs.cache_getent= | |
[NFS] sets the pathname to the program which is used | |
to update the NFS client cache entries. | |
nfs.cache_getent_timeout= | |
[NFS] sets the timeout after which an attempt to | |
update a cache entry is deemed to have failed. | |
nfs.callback_nr_threads= | |
[NFSv4] set the total number of threads that the | |
NFS client will assign to service NFSv4 callback | |
requests. | |
nfs.callback_tcpport= | |
[NFS] set the TCP port on which the NFSv4 callback | |
channel should listen. | |
nfs.delay_retrans= | |
[NFS] specifies the number of times the NFSv4 client | |
retries the request before returning an EAGAIN error, | |
after a reply of NFS4ERR_DELAY from the server. | |
Only applies if the softerr mount option is enabled, | |
and the specified value is >= 0. | |
nfs.enable_ino64= | |
[NFS] enable 64-bit inode numbers. | |
If zero, the NFS client will fake up a 32-bit inode | |
number for the readdir() and stat() syscalls instead | |
of returning the full 64-bit number. | |
The default is to return 64-bit inode numbers. | |
nfs.idmap_cache_timeout= | |
[NFS] set the maximum lifetime for idmapper cache | |
entries. | |
nfs.max_session_cb_slots= | |
[NFSv4.1] Sets the maximum number of session | |
slots the client will assign to the callback | |
channel. This determines the maximum number of | |
callbacks the client will process in parallel for | |
a particular server. | |
nfs.max_session_slots= | |
[NFSv4.1] Sets the maximum number of session slots | |
the client will attempt to negotiate with the server. | |
This limits the number of simultaneous RPC requests | |
that the client can send to the NFSv4.1 server. | |
Note that there is little point in setting this | |
value higher than the max_tcp_slot_table_limit. | |
nfs.nfs4_disable_idmapping= | |
[NFSv4] When set to the default of '1', this option | |
ensures that both the RPC level authentication | |
scheme and the NFS level operations agree to use | |
numeric uids/gids if the mount is using the | |
'sec=sys' security flavour. In effect it is | |
disabling idmapping, which can make migration from | |
legacy NFSv2/v3 systems to NFSv4 easier. | |
Servers that do not support this mode of operation | |
will be autodetected by the client, and it will fall | |
back to using the idmapper. | |
To turn off this behaviour, set the value to '0'. | |
nfs.nfs4_unique_id= | |
[NFS4] Specify an additional fixed unique ident- | |
ification string that NFSv4 clients can insert into | |
their nfs_client_id4 string. This is typically a | |
UUID that is generated at system install time. | |
nfs.recover_lost_locks= | |
[NFSv4] Attempt to recover locks that were lost due | |
to a lease timeout on the server. Please note that | |
doing this risks data corruption, since there are | |
no guarantees that the file will remain unchanged | |
after the locks are lost. | |
If you want to enable the kernel legacy behaviour of | |
attempting to recover these locks, then set this | |
parameter to '1'. | |
The default parameter value of '0' causes the kernel | |
not to attempt recovery of lost locks. | |
nfs.send_implementation_id= | |
[NFSv4.1] Send client implementation identification | |
information in exchange_id requests. | |
If zero, no implementation identification information | |
will be sent. | |
The default is to send the implementation identification | |
information. | |
nfs4.layoutstats_timer= | |
[NFSv4.2] Change the rate at which the kernel sends | |
layoutstats to the pNFS metadata server. | |
Setting this to value to 0 causes the kernel to use | |
whatever value is the default set by the layout | |
driver. A non-zero value sets the minimum interval | |
in seconds between layoutstats transmissions. | |
nfsd.inter_copy_offload_enable= | |
[NFSv4.2] When set to 1, the server will support | |
server-to-server copies for which this server is | |
the destination of the copy. | |
nfsd.nfs4_disable_idmapping= | |
[NFSv4] When set to the default of '1', the NFSv4 | |
server will return only numeric uids and gids to | |
clients using auth_sys, and will accept numeric uids | |
and gids from such clients. This is intended to ease | |
migration from NFSv2/v3. | |
nfsd.nfsd4_ssc_umount_timeout= | |
[NFSv4.2] When used as the destination of a | |
server-to-server copy, knfsd temporarily mounts | |
the source server. It caches the mount in case | |
it will be needed again, and discards it if not | |
used for the number of milliseconds specified by | |
this parameter. | |
nfsaddrs= [NFS] Deprecated. Use ip= instead. | |
See Documentation/admin-guide/nfs/nfsroot.rst. | |
nfsroot= [NFS] nfs root filesystem for disk-less boxes. | |
See Documentation/admin-guide/nfs/nfsroot.rst. | |
nfsrootdebug [NFS] enable nfsroot debugging messages. | |
See Documentation/admin-guide/nfs/nfsroot.rst. | |
nmi_backtrace.backtrace_idle [KNL] | |
Dump stacks even of idle CPUs in response to an | |
NMI stack-backtrace request. | |
nmi_debug= [KNL,SH] Specify one or more actions to take | |
when a NMI is triggered. | |
Format: [state][,regs][,debounce][,die] | |
nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels | |
Format: [panic,][nopanic,][rNNN,][num] | |
Valid num: 0 or 1 | |
0 - turn hardlockup detector in nmi_watchdog off | |
1 - turn hardlockup detector in nmi_watchdog on | |
rNNN - configure the watchdog with raw perf event 0xNNN | |
When panic is specified, panic when an NMI watchdog | |
timeout occurs (or 'nopanic' to not panic on an NMI | |
watchdog, if CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is set) | |
To disable both hard and soft lockup detectors, | |
please see 'nowatchdog'. | |
This is useful when you use a panic=... timeout and | |
need the box quickly up again. | |
These settings can be accessed at runtime via | |
the nmi_watchdog and hardlockup_panic sysctls. | |
no387 [BUGS=X86-32] Tells the kernel to use the 387 maths | |
emulation library even if a 387 maths coprocessor | |
is present. | |
no4lvl [RISCV,EARLY] Disable 4-level and 5-level paging modes. | |
Forces kernel to use 3-level paging instead. | |
no5lvl [X86-64,RISCV,EARLY] Disable 5-level paging mode. Forces | |
kernel to use 4-level paging instead. | |
noalign [KNL,ARM] | |
noapic [SMP,APIC,EARLY] Tells the kernel to not make use of any | |
IOAPICs that may be present in the system. | |
noautogroup Disable scheduler automatic task group creation. | |
nocache [ARM,EARLY] | |
no_console_suspend | |
[HW] Never suspend the console | |
Disable suspending of consoles during suspend and | |
hibernate operations. Once disabled, debugging | |
messages can reach various consoles while the rest | |
of the system is being put to sleep (ie, while | |
debugging driver suspend/resume hooks). This may | |
not work reliably with all consoles, but is known | |
to work with serial and VGA consoles. | |
To facilitate more flexible debugging, we also add | |
console_suspend, a printk module parameter to control | |
it. Users could use console_suspend (usually | |
/sys/module/printk/parameters/console_suspend) to | |
turn on/off it dynamically. | |
no_debug_objects | |
[KNL,EARLY] Disable object debugging | |
nodsp [SH] Disable hardware DSP at boot time. | |
noefi [EFI,EARLY] Disable EFI runtime services support. | |
no_entry_flush [PPC,EARLY] Don't flush the L1-D cache when entering the kernel. | |
noexec32 [X86-64] | |
This affects only 32-bit executables. | |
noexec32=on: enable non-executable mappings (default) | |
read doesn't imply executable mappings | |
noexec32=off: disable non-executable mappings | |
read implies executable mappings | |
no_file_caps Tells the kernel not to honor file capabilities. The | |
only way then for a file to be executed with privilege | |
is to be setuid root or executed by root. | |
nofpu [MIPS,SH] Disable hardware FPU at boot time. | |
nofsgsbase [X86] Disables FSGSBASE instructions. | |
nofxsr [BUGS=X86-32] Disables x86 floating point extended | |
register save and restore. The kernel will only save | |
legacy floating-point registers on task switch. | |
no_hash_pointers | |
[KNL,EARLY] | |
Force pointers printed to the console or buffers to be | |
unhashed. By default, when a pointer is printed via %p | |
format string, that pointer is "hashed", i.e. obscured | |
by hashing the pointer value. This is a security feature | |
that hides actual kernel addresses from unprivileged | |
users, but it also makes debugging the kernel more | |
difficult since unequal pointers can no longer be | |
compared. However, if this command-line option is | |
specified, then all normal pointers will have their true | |
value printed. This option should only be specified when | |
debugging the kernel. Please do not use on production | |
kernels. | |
nohibernate [HIBERNATION] Disable hibernation and resume. | |
nohlt [ARM,ARM64,MICROBLAZE,MIPS,PPC,RISCV,SH] Forces the kernel to | |
busy wait in do_idle() and not use the arch_cpu_idle() | |
implementation; requires CONFIG_GENERIC_IDLE_POLL_SETUP | |
to be effective. This is useful on platforms where the | |
sleep(SH) or wfi(ARM,ARM64) instructions do not work | |
correctly or when doing power measurements to evaluate | |
the impact of the sleep instructions. This is also | |
useful when using JTAG debugger. | |
nohugeiomap [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge I/O mappings. | |
nohugevmalloc [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge vmalloc mappings. | |
nohz= [KNL] Boottime enable/disable dynamic ticks | |
Valid arguments: on, off | |
Default: on | |
nohz_full= [KNL,BOOT,SMP,ISOL] | |
The argument is a cpu list, as described above. | |
In kernels built with CONFIG_NO_HZ_FULL=y, set | |
the specified list of CPUs whose tick will be stopped | |
whenever possible. The boot CPU will be forced outside | |
the range to maintain the timekeeping. Any CPUs | |
in this list will have their RCU callbacks offloaded, | |
just as if they had also been called out in the | |
rcu_nocbs= boot parameter. | |
Note that this argument takes precedence over | |
the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option. | |
noinitrd [RAM] Tells the kernel not to load any configured | |
initial RAM disk. | |
nointremap [X86-64,Intel-IOMMU,EARLY] Do not enable interrupt | |
remapping. | |
[Deprecated - use intremap=off] | |
noinvpcid [X86,EARLY] Disable the INVPCID cpu feature. | |
noiotrap [SH] Disables trapped I/O port accesses. | |
noirqdebug [X86-32] Disables the code which attempts to detect and | |
disable unhandled interrupt sources. | |
noisapnp [ISAPNP] Disables ISA PnP code. | |
nokaslr [KNL,EARLY] | |
When CONFIG_RANDOMIZE_BASE is set, this disables | |
kernel and module base offset ASLR (Address Space | |
Layout Randomization). | |
no-kvmapf [X86,KVM,EARLY] Disable paravirtualized asynchronous page | |
fault handling. | |
no-kvmclock [X86,KVM,EARLY] Disable paravirtualized KVM clock driver | |
nolapic [X86-32,APIC,EARLY] Do not enable or use the local APIC. | |
nolapic_timer [X86-32,APIC,EARLY] Do not use the local APIC timer. | |
nomce [X86-32] Disable Machine Check Exception | |
nomfgpt [X86-32] Disable Multi-Function General Purpose | |
Timer usage (for AMD Geode machines). | |
nomodeset Disable kernel modesetting. Most systems' firmware | |
sets up a display mode and provides framebuffer memory | |
for output. With nomodeset, DRM and fbdev drivers will | |
not load if they could possibly displace the pre- | |
initialized output. Only the system framebuffer will | |
be available for use. The respective drivers will not | |
perform display-mode changes or accelerated rendering. | |
Useful as error fallback, or for testing and debugging. | |
nomodule Disable module load | |
nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to | |
shutdown the other cpus. Instead use the REBOOT_VECTOR | |
irq. | |
nopat [X86,EARLY] Disable PAT (page attribute table extension of | |
pagetables) support. | |
nopcid [X86-64,EARLY] Disable the PCID cpu feature. | |
nopku [X86] Disable Memory Protection Keys CPU feature found | |
in some Intel CPUs. | |
nopti [X86-64,EARLY] | |
Equivalent to pti=off | |
nopv= [X86,XEN,KVM,HYPER_V,VMWARE,EARLY] | |
Disables the PV optimizations forcing the guest to run | |
as generic guest with no PV drivers. Currently support | |
XEN HVM, KVM, HYPER_V and VMWARE guest. | |
nopvspin [X86,XEN,KVM,EARLY] | |
Disables the qspinlock slow path using PV optimizations | |
which allow the hypervisor to 'idle' the guest on lock | |
contention. | |
norandmaps Don't use address space randomization. Equivalent to | |
echo 0 > /proc/sys/kernel/randomize_va_space | |
noreplace-smp [X86-32,SMP] Don't replace SMP instructions | |
with UP alternatives | |
noresume [SWSUSP] Disables resume and restores original swap | |
space. | |
no-scroll [VGA] Disables scrollback. | |
This is required for the Braillex ib80-piezo Braille | |
reader made by F.H. Papenmeier (Germany). | |
nosgx [X86-64,SGX,EARLY] Disables Intel SGX kernel support. | |
nosmap [PPC,EARLY] | |
Disable SMAP (Supervisor Mode Access Prevention) | |
even if it is supported by processor. | |
nosmep [PPC64s,EARLY] | |
Disable SMEP (Supervisor Mode Execution Prevention) | |
even if it is supported by processor. | |
nosmp [SMP,EARLY] Tells an SMP kernel to act as a UP kernel, | |
and disable the IO APIC. legacy for "maxcpus=0". | |
nosmt [KNL,MIPS,PPC,S390,EARLY] Disable symmetric multithreading (SMT). | |
Equivalent to smt=1. | |
[KNL,X86,PPC] Disable symmetric multithreading (SMT). | |
nosmt=force: Force disable SMT, cannot be undone | |
via the sysfs control file. | |
nosoftlockup [KNL] Disable the soft-lockup detector. | |
nospec_store_bypass_disable | |
[HW,EARLY] Disable all mitigations for the Speculative | |
Store Bypass vulnerability | |
nospectre_bhb [ARM64,EARLY] Disable all mitigations for Spectre-BHB (branch | |
history injection) vulnerability. System may allow data leaks | |
with this option. | |
nospectre_v1 [X86,PPC,EARLY] Disable mitigations for Spectre Variant 1 | |
(bounds check bypass). With this option data leaks are | |
possible in the system. | |
nospectre_v2 [X86,PPC_E500,ARM64,EARLY] Disable all mitigations | |
for the Spectre variant 2 (indirect branch | |
prediction) vulnerability. System may allow data | |
leaks with this option. | |
no-steal-acc [X86,PV_OPS,ARM64,PPC/PSERIES,RISCV,LOONGARCH,EARLY] | |
Disable paravirtualized steal time accounting. steal time | |
is computed, but won't influence scheduler behaviour | |
nosync [HW,M68K] Disables sync negotiation for all devices. | |
no_timer_check [X86,APIC] Disables the code which tests for | |
broken timer IRQ sources. | |
no_uaccess_flush | |
[PPC,EARLY] Don't flush the L1-D cache after accessing user data. | |
novmcoredd [KNL,KDUMP] | |
Disable device dump. Device dump allows drivers to | |
append dump data to vmcore so you can collect driver | |
specified debug info. Drivers can append the data | |
without any limit and this data is stored in memory, | |
so this may cause significant memory stress. Disabling | |
device dump can help save memory but the driver debug | |
data will be no longer available. This parameter | |
is only available when CONFIG_PROC_VMCORE_DEVICE_DUMP | |
is set. | |
no-vmw-sched-clock | |
[X86,PV_OPS,EARLY] Disable paravirtualized VMware | |
scheduler clock and use the default one. | |
nowatchdog [KNL] Disable both lockup detectors, i.e. | |
soft-lockup and NMI watchdog (hard-lockup). | |
nowb [ARM,EARLY] | |
nox2apic [X86-64,APIC,EARLY] Do not enable x2APIC mode. | |
NOTE: this parameter will be ignored on systems with the | |
LEGACY_XAPIC_DISABLED bit set in the | |
IA32_XAPIC_DISABLE_STATUS MSR. | |
noxsave [BUGS=X86] Disables x86 extended register state save | |
and restore using xsave. The kernel will fallback to | |
enabling legacy floating-point and sse state. | |
noxsaveopt [X86] Disables xsaveopt used in saving x86 extended | |
register states. The kernel will fall back to use | |
xsave to save the states. By using this parameter, | |
performance of saving the states is degraded because | |
xsave doesn't support modified optimization while | |
xsaveopt supports it on xsaveopt enabled systems. | |
noxsaves [X86] Disables xsaves and xrstors used in saving and | |
restoring x86 extended register state in compacted | |
form of xsave area. The kernel will fall back to use | |
xsaveopt and xrstor to save and restore the states | |
in standard form of xsave area. By using this | |
parameter, xsave area per process might occupy more | |
memory on xsaves enabled systems. | |
nr_cpus= [SMP,EARLY] Maximum number of processors that an SMP kernel | |
could support. nr_cpus=n : n >= 1 limits the kernel to | |
support 'n' processors. It could be larger than the | |
number of already plugged CPU during bootup, later in | |
runtime you can physically add extra cpu until it reaches | |
n. So during boot up some boot time memory for per-cpu | |
variables need be pre-allocated for later physical cpu | |
hot plugging. | |
nr_uarts= [SERIAL] maximum number of UARTs to be registered. | |
numa=off [KNL, ARM64, PPC, RISCV, SPARC, X86, EARLY] | |
Disable NUMA, Only set up a single NUMA node | |
spanning all memory. | |
numa=fake=<size>[MG] | |
[KNL, ARM64, RISCV, X86, EARLY] | |
If given as a memory unit, fills all system RAM with | |
nodes of size interleaved over physical nodes. | |
numa=fake=<N> | |
[KNL, ARM64, RISCV, X86, EARLY] | |
If given as an integer, fills all system RAM with N | |
fake nodes interleaved over physical nodes. | |
numa=fake=<N>U | |
[KNL, ARM64, RISCV, X86, EARLY] | |
If given as an integer followed by 'U', it will | |
divide each physical node into N emulated nodes. | |
numa_balancing= [KNL,ARM64,PPC,RISCV,S390,X86] Enable or disable automatic | |
NUMA balancing. | |
Allowed values are enable and disable | |
numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA. | |
'node', 'default' can be specified | |
This can be set from sysctl after boot. | |
See Documentation/admin-guide/sysctl/vm.rst for details. | |
ohci1394_dma=early [HW,EARLY] enable debugging via the ohci1394 driver. | |
See Documentation/core-api/debugging-via-ohci1394.rst for more | |
info. | |
olpc_ec_timeout= [OLPC] ms delay when issuing EC commands | |
Rather than timing out after 20 ms if an EC | |
command is not properly ACKed, override the length | |
of the timeout. We have interrupts disabled while | |
waiting for the ACK, so if this is set too high | |
interrupts *may* be lost! | |
omap_mux= [OMAP] Override bootloader pin multiplexing. | |
Format: <mux_mode0.mode_name=value>... | |
For example, to override I2C bus2: | |
omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100 | |
onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration | |
Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock] | |
boundary - index of last SLC block on Flex-OneNAND. | |
The remaining blocks are configured as MLC blocks. | |
lock - Configure if Flex-OneNAND boundary should be locked. | |
Once locked, the boundary cannot be changed. | |
1 indicates lock status, 0 indicates unlock status. | |
oops=panic [KNL,EARLY] | |
Always panic on oopses. Default is to just kill the | |
process, but there is a small probability of | |
deadlocking the machine. | |
This will also cause panics on machine check exceptions. | |
Useful together with panic=30 to trigger a reboot. | |
page_alloc.shuffle= | |
[KNL] Boolean flag to control whether the page allocator | |
should randomize its free lists. This parameter can be | |
used to enable/disable page randomization. The state of | |
the flag can be read from sysfs at: | |
/sys/module/page_alloc/parameters/shuffle. | |
This parameter is only available if CONFIG_SHUFFLE_PAGE_ALLOCATOR=y. | |
page_owner= [KNL,EARLY] Boot-time page_owner enabling option. | |
Storage of the information about who allocated | |
each page is disabled in default. With this switch, | |
we can turn it on. | |
on: enable the feature | |
page_poison= [KNL,EARLY] Boot-time parameter changing the state of | |
poisoning on the buddy allocator, available with | |
CONFIG_PAGE_POISONING=y. | |
off: turn off poisoning (default) | |
on: turn on poisoning | |
page_reporting.page_reporting_order= | |
[KNL] Minimal page reporting order | |
Format: <integer> | |
Adjust the minimal page reporting order. The page | |
reporting is disabled when it exceeds MAX_PAGE_ORDER. | |
panic= [KNL] Kernel behaviour on panic: delay <timeout> | |
timeout > 0: seconds before rebooting | |
timeout = 0: wait forever | |
timeout < 0: reboot immediately | |
Format: <timeout> | |
panic_on_taint= [KNL,EARLY] | |
Bitmask for conditionally calling panic() in add_taint() | |
Format: <hex>[,nousertaint] | |
Hexadecimal bitmask representing the set of TAINT flags | |
that will cause the kernel to panic when add_taint() is | |
called with any of the flags in this set. | |
The optional switch "nousertaint" can be utilized to | |
prevent userspace forced crashes by writing to sysctl | |
/proc/sys/kernel/tainted any flagset matching with the | |
bitmask set on panic_on_taint. | |
See Documentation/admin-guide/tainted-kernels.rst for | |
extra details on the taint flags that users can pick | |
to compose the bitmask to assign to panic_on_taint. | |
panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump | |
on a WARN(). | |
panic_print= Bitmask for printing system info when panic happens. | |
User can chose combination of the following bits: | |
bit 0: print all tasks info | |
bit 1: print system memory info | |
bit 2: print timer info | |
bit 3: print locks info if CONFIG_LOCKDEP is on | |
bit 4: print ftrace buffer | |
bit 5: print all printk messages in buffer | |
bit 6: print all CPUs backtrace (if available in the arch) | |
bit 7: print only tasks in uninterruptible (blocked) state | |
*Be aware* that this option may print a _lot_ of lines, | |
so there are risks of losing older messages in the log. | |
Use this option carefully, maybe worth to setup a | |
bigger log buffer with "log_buf_len" along with this. | |
parkbd.port= [HW] Parallel port number the keyboard adapter is | |
connected to, default is 0. | |
Format: <parport#> | |
parkbd.mode= [HW] Parallel port keyboard adapter mode of operation, | |
0 for XT, 1 for AT (default is AT). | |
Format: <mode> | |
parport= [HW,PPT] Specify parallel ports. 0 disables. | |
Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] } | |
Use 'auto' to force the driver to use any | |
IRQ/DMA settings detected (the default is to | |
ignore detected IRQ/DMA settings because of | |
possible conflicts). You can specify the base | |
address, IRQ, and DMA settings; IRQ and DMA | |
should be numbers, or 'auto' (for using detected | |
settings on that particular port), or 'nofifo' | |
(to avoid using a FIFO even if it is detected). | |
Parallel ports are assigned in the order they | |
are specified on the command line, starting | |
with parport0. | |
parport_init_mode= [HW,PPT] | |
Configure VIA parallel port to operate in | |
a specific mode. This is necessary on Pegasos | |
computer where firmware has no options for setting | |
up parallel port mode and sets it to spp. | |
Currently this function knows 686a and 8231 chips. | |
Format: [spp|ps2|epp|ecp|ecpepp] | |
pata_legacy.all= [HW,LIBATA] | |
Format: <int> | |
Set to non-zero to probe primary and secondary ISA | |
port ranges on PCI systems where no PCI PATA device | |
has been found at either range. Disabled by default. | |
pata_legacy.autospeed= [HW,LIBATA] | |
Format: <int> | |
Set to non-zero if a chip is present that snoops speed | |
changes. Disabled by default. | |
pata_legacy.ht6560a= [HW,LIBATA] | |
Format: <int> | |
Set to 1, 2, or 3 for HT 6560A on the primary channel, | |
the secondary channel, or both channels respectively. | |
Disabled by default. | |
pata_legacy.ht6560b= [HW,LIBATA] | |
Format: <int> | |
Set to 1, 2, or 3 for HT 6560B on the primary channel, | |
the secondary channel, or both channels respectively. | |
Disabled by default. | |
pata_legacy.iordy_mask= [HW,LIBATA] | |
Format: <int> | |
IORDY enable mask. Set individual bits to allow IORDY | |
for the respective channel. Bit 0 is for the first | |
legacy channel handled by this driver, bit 1 is for | |
the second channel, and so on. The sequence will often | |
correspond to the primary legacy channel, the secondary | |
legacy channel, and so on, but the handling of a PCI | |
bus and the use of other driver options may interfere | |
with the sequence. By default IORDY is allowed across | |
all channels. | |
pata_legacy.opti82c46x= [HW,LIBATA] | |
Format: <int> | |
Set to 1, 2, or 3 for Opti 82c611A on the primary | |
channel, the secondary channel, or both channels | |
respectively. Disabled by default. | |
pata_legacy.opti82c611a= [HW,LIBATA] | |
Format: <int> | |
Set to 1, 2, or 3 for Opti 82c465MV on the primary | |
channel, the secondary channel, or both channels | |
respectively. Disabled by default. | |
pata_legacy.pio_mask= [HW,LIBATA] | |
Format: <int> | |
PIO mode mask for autospeed devices. Set individual | |
bits to allow the use of the respective PIO modes. | |
Bit 0 is for mode 0, bit 1 is for mode 1, and so on. | |
All modes allowed by default. | |
pata_legacy.probe_all= [HW,LIBATA] | |
Format: <int> | |
Set to non-zero to probe tertiary and further ISA | |
port ranges on PCI systems. Disabled by default. | |
pata_legacy.probe_mask= [HW,LIBATA] | |
Format: <int> | |
Probe mask for legacy ISA PATA ports. Depending on | |
platform configuration and the use of other driver | |
options up to 6 legacy ports are supported: 0x1f0, | |
0x170, 0x1e8, 0x168, 0x1e0, 0x160, however probing | |
of individual ports can be disabled by setting the | |
corresponding bits in the mask to 1. Bit 0 is for | |
the first port in the list above (0x1f0), and so on. | |
By default all supported ports are probed. | |
pata_legacy.qdi= [HW,LIBATA] | |
Format: <int> | |
Set to non-zero to probe QDI controllers. By default | |
set to 1 if CONFIG_PATA_QDI_MODULE, 0 otherwise. | |
pata_legacy.winbond= [HW,LIBATA] | |
Format: <int> | |
Set to non-zero to probe Winbond controllers. Use | |
the standard I/O port (0x130) if 1, otherwise the | |
value given is the I/O port to use (typically 0x1b0). | |
By default set to 1 if CONFIG_PATA_WINBOND_VLB_MODULE, | |
0 otherwise. | |
pata_platform.pio_mask= [HW,LIBATA] | |
Format: <int> | |
Supported PIO mode mask. Set individual bits to allow | |
the use of the respective PIO modes. Bit 0 is for | |
mode 0, bit 1 is for mode 1, and so on. Mode 0 only | |
allowed by default. | |
pause_on_oops=<int> | |
Halt all CPUs after the first oops has been printed for | |
the specified number of seconds. This is to be used if | |
your oopses keep scrolling off the screen. | |
pcbit= [HW,ISDN] | |
pci=option[,option...] [PCI,EARLY] various PCI subsystem options. | |
Some options herein operate on a specific device | |
or a set of devices (<pci_dev>). These are | |
specified in one of the following formats: | |
[<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]* | |
pci:<vendor>:<device>[:<subvendor>:<subdevice>] | |
Note: the first format specifies a PCI | |
bus/device/function address which may change | |
if new hardware is inserted, if motherboard | |
firmware changes, or due to changes caused | |
by other kernel parameters. If the | |
domain is left unspecified, it is | |
taken to be zero. Optionally, a path | |
to a device through multiple device/function | |
addresses can be specified after the base | |
address (this is more robust against | |
renumbering issues). The second format | |
selects devices using IDs from the | |
configuration space which may match multiple | |
devices in the system. | |
earlydump dump PCI config space before the kernel | |
changes anything | |
off [X86] don't probe for the PCI bus | |
bios [X86-32] force use of PCI BIOS, don't access | |
the hardware directly. Use this if your machine | |
has a non-standard PCI host bridge. | |
nobios [X86-32] disallow use of PCI BIOS, only direct | |
hardware access methods are allowed. Use this | |
if you experience crashes upon bootup and you | |
suspect they are caused by the BIOS. | |
conf1 [X86] Force use of PCI Configuration Access | |
Mechanism 1 (config address in IO port 0xCF8, | |
data in IO port 0xCFC, both 32-bit). | |
conf2 [X86] Force use of PCI Configuration Access | |
Mechanism 2 (IO port 0xCF8 is an 8-bit port for | |
the function, IO port 0xCFA, also 8-bit, sets | |
bus number. The config space is then accessed | |
through ports 0xC000-0xCFFF). | |
See http://wiki.osdev.org/PCI for more info | |
on the configuration access mechanisms. | |
noaer [PCIE] If the PCIEAER kernel config parameter is | |
enabled, this kernel boot option can be used to | |
disable the use of PCIE advanced error reporting. | |
nodomains [PCI] Disable support for multiple PCI | |
root domains (aka PCI segments, in ACPI-speak). | |
nommconf [X86] Disable use of MMCONFIG for PCI | |
Configuration | |
check_enable_amd_mmconf [X86] check for and enable | |
properly configured MMIO access to PCI | |
config space on AMD family 10h CPU | |
nomsi [MSI] If the PCI_MSI kernel config parameter is | |
enabled, this kernel boot option can be used to | |
disable the use of MSI interrupts system-wide. | |
noioapicquirk [APIC] Disable all boot interrupt quirks. | |
Safety option to keep boot IRQs enabled. This | |
should never be necessary. | |
ioapicreroute [APIC] Enable rerouting of boot IRQs to the | |
primary IO-APIC for bridges that cannot disable | |
boot IRQs. This fixes a source of spurious IRQs | |
when the system masks IRQs. | |
noioapicreroute [APIC] Disable workaround that uses the | |
boot IRQ equivalent of an IRQ that connects to | |
a chipset where boot IRQs cannot be disabled. | |
The opposite of ioapicreroute. | |
biosirq [X86-32] Use PCI BIOS calls to get the interrupt | |
routing table. These calls are known to be buggy | |
on several machines and they hang the machine | |
when used, but on other computers it's the only | |
way to get the interrupt routing table. Try | |
this option if the kernel is unable to allocate | |
IRQs or discover secondary PCI buses on your | |
motherboard. | |
rom [X86] Assign address space to expansion ROMs. | |
Use with caution as certain devices share | |
address decoders between ROMs and other | |
resources. | |
norom [X86] Do not assign address space to | |
expansion ROMs that do not already have | |
BIOS assigned address ranges. | |
nobar [X86] Do not assign address space to the | |
BARs that weren't assigned by the BIOS. | |
irqmask=0xMMMM [X86] Set a bit mask of IRQs allowed to be | |
assigned automatically to PCI devices. You can | |
make the kernel exclude IRQs of your ISA cards | |
this way. | |
pirqaddr=0xAAAAA [X86] Specify the physical address | |
of the PIRQ table (normally generated | |
by the BIOS) if it is outside the | |
F0000h-100000h range. | |
lastbus=N [X86] Scan all buses thru bus #N. Can be | |
useful if the kernel is unable to find your | |
secondary buses and you want to tell it | |
explicitly which ones they are. | |
assign-busses [X86] Always assign all PCI bus | |
numbers ourselves, overriding | |
whatever the firmware may have done. | |
usepirqmask [X86] Honor the possible IRQ mask stored | |
in the BIOS $PIR table. This is needed on | |
some systems with broken BIOSes, notably | |
some HP Pavilion N5400 and Omnibook XE3 | |
notebooks. This will have no effect if ACPI | |
IRQ routing is enabled. | |
noacpi [X86] Do not use ACPI for IRQ routing | |
or for PCI scanning. | |
use_crs [X86] Use PCI host bridge window information | |
from ACPI. On BIOSes from 2008 or later, this | |
is enabled by default. If you need to use this, | |
please report a bug. | |
nocrs [X86] Ignore PCI host bridge windows from ACPI. | |
If you need to use this, please report a bug. | |
use_e820 [X86] Use E820 reservations to exclude parts of | |
PCI host bridge windows. This is a workaround | |
for BIOS defects in host bridge _CRS methods. | |
If you need to use this, please report a bug to | |
<linux-pci@vger.kernel.org>. | |
no_e820 [X86] Ignore E820 reservations for PCI host | |
bridge windows. This is the default on modern | |
hardware. If you need to use this, please report | |
a bug to <linux-pci@vger.kernel.org>. | |
routeirq Do IRQ routing for all PCI devices. | |
This is normally done in pci_enable_device(), | |
so this option is a temporary workaround | |
for broken drivers that don't call it. | |
skip_isa_align [X86] do not align io start addr, so can | |
handle more pci cards | |
noearly [X86] Don't do any early type 1 scanning. | |
This might help on some broken boards which | |
machine check when some devices' config space | |
is read. But various workarounds are disabled | |
and some IOMMU drivers will not work. | |
bfsort Sort PCI devices into breadth-first order. | |
This sorting is done to get a device | |
order compatible with older (<= 2.4) kernels. | |
nobfsort Don't sort PCI devices into breadth-first order. | |
pcie_bus_tune_off Disable PCIe MPS (Max Payload Size) | |
tuning and use the BIOS-configured MPS defaults. | |
pcie_bus_safe Set every device's MPS to the largest value | |
supported by all devices below the root complex. | |
pcie_bus_perf Set device MPS to the largest allowable MPS | |
based on its parent bus. Also set MRRS (Max | |
Read Request Size) to the largest supported | |
value (no larger than the MPS that the device | |
or bus can support) for best performance. | |
pcie_bus_peer2peer Set every device's MPS to 128B, which | |
every device is guaranteed to support. This | |
configuration allows peer-to-peer DMA between | |
any pair of devices, possibly at the cost of | |
reduced performance. This also guarantees | |
that hot-added devices will work. | |
cbiosize=nn[KMG] The fixed amount of bus space which is | |
reserved for the CardBus bridge's IO window. | |
The default value is 256 bytes. | |
cbmemsize=nn[KMG] The fixed amount of bus space which is | |
reserved for the CardBus bridge's memory | |
window. The default value is 64 megabytes. | |
resource_alignment= | |
Format: | |
[<order of align>@]<pci_dev>[; ...] | |
Specifies alignment and device to reassign | |
aligned memory resources. How to | |
specify the device is described above. | |
If <order of align> is not specified, | |
PAGE_SIZE is used as alignment. | |
A PCI-PCI bridge can be specified if resource | |
windows need to be expanded. | |
To specify the alignment for several | |
instances of a device, the PCI vendor, | |
device, subvendor, and subdevice may be | |
specified, e.g., 12@pci:8086:9c22:103c:198f | |
for 4096-byte alignment. | |
ecrc= Enable/disable PCIe ECRC (transaction layer | |
end-to-end CRC checking). Only effective if | |
OS has native AER control (either granted by | |
ACPI _OSC or forced via "pcie_ports=native") | |
bios: Use BIOS/firmware settings. This is the | |
the default. | |
off: Turn ECRC off | |
on: Turn ECRC on. | |
hpiosize=nn[KMG] The fixed amount of bus space which is | |
reserved for hotplug bridge's IO window. | |
Default size is 256 bytes. | |
hpmmiosize=nn[KMG] The fixed amount of bus space which is | |
reserved for hotplug bridge's MMIO window. | |
Default size is 2 megabytes. | |
hpmmioprefsize=nn[KMG] The fixed amount of bus space which is | |
reserved for hotplug bridge's MMIO_PREF window. | |
Default size is 2 megabytes. | |
hpmemsize=nn[KMG] The fixed amount of bus space which is | |
reserved for hotplug bridge's MMIO and | |
MMIO_PREF window. | |
Default size is 2 megabytes. | |
hpbussize=nn The minimum amount of additional bus numbers | |
reserved for buses below a hotplug bridge. | |
Default is 1. | |
realloc= Enable/disable reallocating PCI bridge resources | |
if allocations done by BIOS are too small to | |
accommodate resources required by all child | |
devices. | |
off: Turn realloc off | |
on: Turn realloc on | |
realloc same as realloc=on | |
noari do not use PCIe ARI. | |
noats [PCIE, Intel-IOMMU, AMD-IOMMU] | |
do not use PCIe ATS (and IOMMU device IOTLB). | |
pcie_scan_all Scan all possible PCIe devices. Otherwise we | |
only look for one device below a PCIe downstream | |
port. | |
big_root_window Try to add a big 64bit memory window to the PCIe | |
root complex on AMD CPUs. Some GFX hardware | |
can resize a BAR to allow access to all VRAM. | |
Adding the window is slightly risky (it may | |
conflict with unreported devices), so this | |
taints the kernel. | |
disable_acs_redir=<pci_dev>[; ...] | |
Specify one or more PCI devices (in the format | |
specified above) separated by semicolons. | |
Each device specified will have the PCI ACS | |
redirect capabilities forced off which will | |
allow P2P traffic between devices through | |
bridges without forcing it upstream. Note: | |
this removes isolation between devices and | |
may put more devices in an IOMMU group. | |
config_acs= | |
Format: | |
<ACS flags>@<pci_dev>[; ...] | |
Specify one or more PCI devices (in the format | |
specified above) optionally prepended with flags | |
and separated by semicolons. The respective | |
capabilities will be enabled, disabled or | |
unchanged based on what is specified in | |
flags. | |
ACS Flags is defined as follows: | |
bit-0 : ACS Source Validation | |
bit-1 : ACS Translation Blocking | |
bit-2 : ACS P2P Request Redirect | |
bit-3 : ACS P2P Completion Redirect | |
bit-4 : ACS Upstream Forwarding | |
bit-5 : ACS P2P Egress Control | |
bit-6 : ACS Direct Translated P2P | |
Each bit can be marked as: | |
'0' – force disabled | |
'1' – force enabled | |
'x' – unchanged | |
For example, | |
pci=config_acs=10x | |
would configure all devices that support | |
ACS to enable P2P Request Redirect, disable | |
Translation Blocking, and leave Source | |
Validation unchanged from whatever power-up | |
or firmware set it to. | |
Note: this may remove isolation between devices | |
and may put more devices in an IOMMU group. | |
force_floating [S390] Force usage of floating interrupts. | |
nomio [S390] Do not use MIO instructions. | |
norid [S390] ignore the RID field and force use of | |
one PCI domain per PCI function | |
pcie_aspm= [PCIE] Forcibly enable or ignore PCIe Active State Power | |
Management. | |
off Don't touch ASPM configuration at all. Leave any | |
configuration done by firmware unchanged. | |
force Enable ASPM even on devices that claim not to support it. | |
WARNING: Forcing ASPM on may cause system lockups. | |
pcie_ports= [PCIE] PCIe port services handling: | |
native Use native PCIe services (PME, AER, DPC, PCIe hotplug) | |
even if the platform doesn't give the OS permission to | |
use them. This may cause conflicts if the platform | |
also tries to use these services. | |
dpc-native Use native PCIe service for DPC only. May | |
cause conflicts if firmware uses AER or DPC. | |
compat Disable native PCIe services (PME, AER, DPC, PCIe | |
hotplug). | |
pcie_port_pm= [PCIE] PCIe port power management handling: | |
off Disable power management of all PCIe ports | |
force Forcibly enable power management of all PCIe ports | |
pcie_pme= [PCIE,PM] Native PCIe PME signaling options: | |
nomsi Do not use MSI for native PCIe PME signaling (this makes | |
all PCIe root ports use INTx for all services). | |
pcmv= [HW,PCMCIA] BadgePAD 4 | |
pd_ignore_unused | |
[PM] | |
Keep all power-domains already enabled by bootloader on, | |
even if no driver has claimed them. This is useful | |
for debug and development, but should not be | |
needed on a platform with proper driver support. | |
pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at | |
boot time. | |
Format: { 0 | 1 } | |
See arch/parisc/kernel/pdc_chassis.c | |
percpu_alloc= [MM,EARLY] | |
Select which percpu first chunk allocator to use. | |
Currently supported values are "embed" and "page". | |
Archs may support subset or none of the selections. | |
See comments in mm/percpu.c for details on each | |
allocator. This parameter is primarily for debugging | |
and performance comparison. | |
pirq= [SMP,APIC] Manual mp-table setup | |
See Documentation/arch/x86/i386/IO-APIC.rst. | |
plip= [PPT,NET] Parallel port network link | |
Format: { parport<nr> | timid | 0 } | |
See also Documentation/admin-guide/parport.rst. | |
pmtmr= [X86] Manual setup of pmtmr I/O Port. | |
Override pmtimer IOPort with a hex value. | |
e.g. pmtmr=0x508 | |
pmu_override= [PPC] Override the PMU. | |
This option takes over the PMU facility, so it is no | |
longer usable by perf. Setting this option starts the | |
PMU counters by setting MMCR0 to 0 (the FC bit is | |
cleared). If a number is given, then MMCR1 is set to | |
that number, otherwise (e.g., 'pmu_override=on'), MMCR1 | |
remains 0. | |
pm_debug_messages [SUSPEND,KNL] | |
Enable suspend/resume debug messages during boot up. | |
pnp.debug=1 [PNP] | |
Enable PNP debug messages (depends on the | |
CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time | |
via /sys/module/pnp/parameters/debug. We always show | |
current resource usage; turning this on also shows | |
possible settings and some assignment information. | |
pnpacpi= [ACPI] | |
{ off } | |
pnpbios= [ISAPNP] | |
{ on | off | curr | res | no-curr | no-res } | |
pnp_reserve_irq= | |
[ISAPNP] Exclude IRQs for the autoconfiguration | |
pnp_reserve_dma= | |
[ISAPNP] Exclude DMAs for the autoconfiguration | |
pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration | |
Ranges are in pairs (I/O port base and size). | |
pnp_reserve_mem= | |
[ISAPNP] Exclude memory regions for the | |
autoconfiguration. | |
Ranges are in pairs (memory base and size). | |
ports= [IP_VS_FTP] IPVS ftp helper module | |
Default is 21. | |
Up to 8 (IP_VS_APP_MAX_PORTS) ports | |
may be specified. | |
Format: <port>,<port>.... | |
possible_cpus= [SMP,S390,X86] | |
Format: <unsigned int> | |
Set the number of possible CPUs, overriding the | |
regular discovery mechanisms (such as ACPI/FW, etc). | |
powersave=off [PPC] This option disables power saving features. | |
It specifically disables cpuidle and sets the | |
platform machine description specific power_save | |
function to NULL. On Idle the CPU just reduces | |
execution priority. | |
ppc_strict_facility_enable | |
[PPC,ENABLE] This option catches any kernel floating point, | |
Altivec, VSX and SPE outside of regions specifically | |
allowed (eg kernel_enable_fpu()/kernel_disable_fpu()). | |
There is some performance impact when enabling this. | |
ppc_tm= [PPC,EARLY] | |
Format: {"off"} | |
Disable Hardware Transactional Memory | |
preempt= [KNL] | |
Select preemption mode if you have CONFIG_PREEMPT_DYNAMIC | |
none - Limited to cond_resched() calls | |
voluntary - Limited to cond_resched() and might_sleep() calls | |
full - Any section that isn't explicitly preempt disabled | |
can be preempted anytime. Tasks will also yield | |
contended spinlocks (if the critical section isn't | |
explicitly preempt disabled beyond the lock itself). | |
print-fatal-signals= | |
[KNL] debug: print fatal signals | |
If enabled, warn about various signal handling | |
related application anomalies: too many signals, | |
too many POSIX.1 timers, fatal signals causing a | |
coredump - etc. | |
If you hit the warning due to signal overflow, | |
you might want to try "ulimit -i unlimited". | |
default: off. | |
printk.always_kmsg_dump= | |
Trigger kmsg_dump for cases other than kernel oops or | |
panics | |
Format: <bool> (1/Y/y=enable, 0/N/n=disable) | |
default: disabled | |
printk.console_no_auto_verbose= | |
Disable console loglevel raise on oops, panic | |
or lockdep-detected issues (only if lock debug is on). | |
With an exception to setups with low baudrate on | |
serial console, keeping this 0 is a good choice | |
in order to provide more debug information. | |
Format: <bool> | |
default: 0 (auto_verbose is enabled) | |
printk.devkmsg={on,off,ratelimit} | |
Control writing to /dev/kmsg. | |
on - unlimited logging to /dev/kmsg from userspace | |
off - logging to /dev/kmsg disabled | |
ratelimit - ratelimit the logging | |
Default: ratelimit | |
printk.time= Show timing data prefixed to each printk message line | |
Format: <bool> (1/Y/y=enable, 0/N/n=disable) | |
proc_mem.force_override= [KNL] | |
Format: {always | ptrace | never} | |
Traditionally /proc/pid/mem allows memory permissions to be | |
overridden without restrictions. This option may be set to | |
restrict that. Can be one of: | |
- 'always': traditional behavior always allows mem overrides. | |
- 'ptrace': only allow mem overrides for active ptracers. | |
- 'never': never allow mem overrides. | |
If not specified, default is the CONFIG_PROC_MEM_* choice. | |
processor.max_cstate= [HW,ACPI] | |
Limit processor to maximum C-state | |
max_cstate=9 overrides any DMI blacklist limit. | |
processor.nocst [HW,ACPI] | |
Ignore the _CST method to determine C-states, | |
instead using the legacy FADT method | |
profile= [KNL] Enable kernel profiling via /proc/profile | |
Format: [<profiletype>,]<number> | |
Param: <profiletype>: "schedule" or "kvm" | |
[defaults to kernel profiling] | |
Param: "schedule" - profile schedule points. | |
Param: "kvm" - profile VM exits. | |
Param: <number> - step/bucket size as a power of 2 for | |
statistical time based profiling. | |
prompt_ramdisk= [RAM] [Deprecated] | |
prot_virt= [S390] enable hosting protected virtual machines | |
isolated from the hypervisor (if hardware supports | |
that). If enabled, the default kernel base address | |
might be overridden even when Kernel Address Space | |
Layout Randomization is disabled. | |
Format: <bool> | |
psi= [KNL] Enable or disable pressure stall information | |
tracking. | |
Format: <bool> | |
psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to | |
probe for; one of (bare|imps|exps|lifebook|any). | |
psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports | |
per second. | |
psmouse.resetafter= [HW,MOUSE] | |
Try to reset the device after so many bad packets | |
(0 = never). | |
psmouse.resolution= | |
[HW,MOUSE] Set desired mouse resolution, in dpi. | |
psmouse.smartscroll= | |
[HW,MOUSE] Controls Logitech smartscroll autorepeat. | |
0 = disabled, 1 = enabled (default). | |
pstore.backend= Specify the name of the pstore backend to use | |
pti= [X86-64] Control Page Table Isolation of user and | |
kernel address spaces. Disabling this feature | |
removes hardening, but improves performance of | |
system calls and interrupts. | |
on - unconditionally enable | |
off - unconditionally disable | |
auto - kernel detects whether your CPU model is | |
vulnerable to issues that PTI mitigates | |
Not specifying this option is equivalent to pti=auto. | |
pty.legacy_count= | |
[KNL] Number of legacy pty's. Overwrites compiled-in | |
default number. | |
quiet [KNL,EARLY] Disable most log messages | |
r128= [HW,DRM] | |
radix_hcall_invalidate=on [PPC/PSERIES] | |
Disable RADIX GTSE feature and use hcall for TLB | |
invalidate. | |
raid= [HW,RAID] | |
See Documentation/admin-guide/md.rst. | |
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes | |
See Documentation/admin-guide/blockdev/ramdisk.rst. | |
ramdisk_start= [RAM] RAM disk image start address | |
random.trust_cpu=off | |
[KNL,EARLY] Disable trusting the use of the CPU's | |
random number generator (if available) to | |
initialize the kernel's RNG. | |
random.trust_bootloader=off | |
[KNL,EARLY] Disable trusting the use of the a seed | |
passed by the bootloader (if available) to | |
initialize the kernel's RNG. | |
randomize_kstack_offset= | |
[KNL,EARLY] Enable or disable kernel stack offset | |
randomization, which provides roughly 5 bits of | |
entropy, frustrating memory corruption attacks | |
that depend on stack address determinism or | |
cross-syscall address exposures. This is only | |
available on architectures that have defined | |
CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET. | |
Format: <bool> (1/Y/y=enable, 0/N/n=disable) | |
Default is CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. | |
ras=option[,option,...] [KNL] RAS-specific options | |
cec_disable [X86] | |
Disable the Correctable Errors Collector, | |
see CONFIG_RAS_CEC help text. | |
rcu_nocbs[=cpu-list] | |
[KNL] The optional argument is a cpu list, | |
as described above. | |
In kernels built with CONFIG_RCU_NOCB_CPU=y, | |
enable the no-callback CPU mode, which prevents | |
such CPUs' callbacks from being invoked in | |
softirq context. Invocation of such CPUs' RCU | |
callbacks will instead be offloaded to "rcuox/N" | |
kthreads created for that purpose, where "x" is | |
"p" for RCU-preempt, "s" for RCU-sched, and "g" | |
for the kthreads that mediate grace periods; and | |
"N" is the CPU number. This reduces OS jitter on | |
the offloaded CPUs, which can be useful for HPC | |
and real-time workloads. It can also improve | |
energy efficiency for asymmetric multiprocessors. | |
If a cpulist is passed as an argument, the specified | |
list of CPUs is set to no-callback mode from boot. | |
Otherwise, if the '=' sign and the cpulist | |
arguments are omitted, no CPU will be set to | |
no-callback mode from boot but the mode may be | |
toggled at runtime via cpusets. | |
Note that this argument takes precedence over | |
the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option. | |
rcu_nocb_poll [KNL] | |
Rather than requiring that offloaded CPUs | |
(specified by rcu_nocbs= above) explicitly | |
awaken the corresponding "rcuoN" kthreads, | |
make these kthreads poll for callbacks. | |
This improves the real-time response for the | |
offloaded CPUs by relieving them of the need to | |
wake up the corresponding kthread, but degrades | |
energy efficiency by requiring that the kthreads | |
periodically wake up to do the polling. | |
rcutree.blimit= [KNL] | |
Set maximum number of finished RCU callbacks to | |
process in one batch. | |
rcutree.csd_lock_suppress_rcu_stall= [KNL] | |
Do only a one-line RCU CPU stall warning when | |
there is an ongoing too-long CSD-lock wait. | |
rcutree.do_rcu_barrier= [KNL] | |
Request a call to rcu_barrier(). This is | |
throttled so that userspace tests can safely | |
hammer on the sysfs variable if they so choose. | |
If triggered before the RCU grace-period machinery | |
is fully active, this will error out with EAGAIN. | |
rcutree.dump_tree= [KNL] | |
Dump the structure of the rcu_node combining tree | |
out at early boot. This is used for diagnostic | |
purposes, to verify correct tree setup. | |
rcutree.gp_cleanup_delay= [KNL] | |
Set the number of jiffies to delay each step of | |
RCU grace-period cleanup. | |
rcutree.gp_init_delay= [KNL] | |
Set the number of jiffies to delay each step of | |
RCU grace-period initialization. | |
rcutree.gp_preinit_delay= [KNL] | |
Set the number of jiffies to delay each step of | |
RCU grace-period pre-initialization, that is, | |
the propagation of recent CPU-hotplug changes up | |
the rcu_node combining tree. | |
rcutree.jiffies_till_first_fqs= [KNL] | |
Set delay from grace-period initialization to | |
first attempt to force quiescent states. | |
Units are jiffies, minimum value is zero, | |
and maximum value is HZ. | |
rcutree.jiffies_till_next_fqs= [KNL] | |
Set delay between subsequent attempts to force | |
quiescent states. Units are jiffies, minimum | |
value is one, and maximum value is HZ. | |
rcutree.jiffies_till_sched_qs= [KNL] | |
Set required age in jiffies for a | |
given grace period before RCU starts | |
soliciting quiescent-state help from | |
rcu_note_context_switch() and cond_resched(). | |
If not specified, the kernel will calculate | |
a value based on the most recent settings | |
of rcutree.jiffies_till_first_fqs | |
and rcutree.jiffies_till_next_fqs. | |
This calculated value may be viewed in | |
rcutree.jiffies_to_sched_qs. Any attempt to set | |
rcutree.jiffies_to_sched_qs will be cheerfully | |
overwritten. | |
rcutree.kthread_prio= [KNL,BOOT] | |
Set the SCHED_FIFO priority of the RCU per-CPU | |
kthreads (rcuc/N). This value is also used for | |
the priority of the RCU boost threads (rcub/N) | |
and for the RCU grace-period kthreads (rcu_bh, | |
rcu_preempt, and rcu_sched). If RCU_BOOST is | |
set, valid values are 1-99 and the default is 1 | |
(the least-favored priority). Otherwise, when | |
RCU_BOOST is not set, valid values are 0-99 and | |
the default is zero (non-realtime operation). | |
When RCU_NOCB_CPU is set, also adjust the | |
priority of NOCB callback kthreads. | |
rcutree.nocb_nobypass_lim_per_jiffy= [KNL] | |
On callback-offloaded (rcu_nocbs) CPUs, | |
RCU reduces the lock contention that would | |
otherwise be caused by callback floods through | |
use of the ->nocb_bypass list. However, in the | |
common non-flooded case, RCU queues directly to | |
the main ->cblist in order to avoid the extra | |
overhead of the ->nocb_bypass list and its lock. | |
But if there are too many callbacks queued during | |
a single jiffy, RCU pre-queues the callbacks into | |
the ->nocb_bypass queue. The definition of "too | |
many" is supplied by this kernel boot parameter. | |
rcutree.nohz_full_patience_delay= [KNL] | |
On callback-offloaded (rcu_nocbs) CPUs, avoid | |
disturbing RCU unless the grace period has | |
reached the specified age in milliseconds. | |
Defaults to zero. Large values will be capped | |
at five seconds. All values will be rounded down | |
to the nearest value representable by jiffies. | |
rcutree.qhimark= [KNL] | |
Set threshold of queued RCU callbacks beyond which | |
batch limiting is disabled. | |
rcutree.qlowmark= [KNL] | |
Set threshold of queued RCU callbacks below which | |
batch limiting is re-enabled. | |
rcutree.qovld= [KNL] | |
Set threshold of queued RCU callbacks beyond which | |
RCU's force-quiescent-state scan will aggressively | |
enlist help from cond_resched() and sched IPIs to | |
help CPUs more quickly reach quiescent states. | |
Set to less than zero to make this be set based | |
on rcutree.qhimark at boot time and to zero to | |
disable more aggressive help enlistment. | |
rcutree.rcu_delay_page_cache_fill_msec= [KNL] | |
Set the page-cache refill delay (in milliseconds) | |
in response to low-memory conditions. The range | |
of permitted values is in the range 0:100000. | |
rcutree.rcu_divisor= [KNL] | |
Set the shift-right count to use to compute | |
the callback-invocation batch limit bl from | |
the number of callbacks queued on this CPU. | |
The result will be bounded below by the value of | |
the rcutree.blimit kernel parameter. Every bl | |
callbacks, the softirq handler will exit in | |
order to allow the CPU to do other work. | |
Please note that this callback-invocation batch | |
limit applies only to non-offloaded callback | |
invocation. Offloaded callbacks are instead | |
invoked in the context of an rcuoc kthread, which | |
scheduler will preempt as it does any other task. | |
rcutree.rcu_fanout_exact= [KNL] | |
Disable autobalancing of the rcu_node combining | |
tree. This is used by rcutorture, and might | |
possibly be useful for architectures having high | |
cache-to-cache transfer latencies. | |
rcutree.rcu_fanout_leaf= [KNL] | |
Change the number of CPUs assigned to each | |
leaf rcu_node structure. Useful for very | |
large systems, which will choose the value 64, | |
and for NUMA systems with large remote-access | |
latencies, which will choose a value aligned | |
with the appropriate hardware boundaries. | |
rcutree.rcu_min_cached_objs= [KNL] | |
Minimum number of objects which are cached and | |
maintained per one CPU. Object size is equal | |
to PAGE_SIZE. The cache allows to reduce the | |
pressure to page allocator, also it makes the | |
whole algorithm to behave better in low memory | |
condition. | |
rcutree.rcu_nocb_gp_stride= [KNL] | |
Set the number of NOCB callback kthreads in | |
each group, which defaults to the square root | |
of the number of CPUs. Larger numbers reduce | |
the wakeup overhead on the global grace-period | |
kthread, but increases that same overhead on | |
each group's NOCB grace-period kthread. | |
rcutree.rcu_kick_kthreads= [KNL] | |
Cause the grace-period kthread to get an extra | |
wake_up() if it sleeps three times longer than | |
it should at force-quiescent-state time. | |
This wake_up() will be accompanied by a | |
WARN_ONCE() splat and an ftrace_dump(). | |
rcutree.rcu_resched_ns= [KNL] | |
Limit the time spend invoking a batch of RCU | |
callbacks to the specified number of nanoseconds. | |
By default, this limit is checked only once | |
every 32 callbacks in order to limit the pain | |
inflicted by local_clock() overhead. | |
rcutree.rcu_unlock_delay= [KNL] | |
In CONFIG_RCU_STRICT_GRACE_PERIOD=y kernels, | |
this specifies an rcu_read_unlock()-time delay | |
in microseconds. This defaults to zero. | |
Larger delays increase the probability of | |
catching RCU pointer leaks, that is, buggy use | |
of RCU-protected pointers after the relevant | |
rcu_read_unlock() has completed. | |
rcutree.sysrq_rcu= [KNL] | |
Commandeer a sysrq key to dump out Tree RCU's | |
rcu_node tree with an eye towards determining | |
why a new grace period has not yet started. | |
rcutree.use_softirq= [KNL] | |
If set to zero, move all RCU_SOFTIRQ processing to | |
per-CPU rcuc kthreads. Defaults to a non-zero | |
value, meaning that RCU_SOFTIRQ is used by default. | |
Specify rcutree.use_softirq=0 to use rcuc kthreads. | |
But note that CONFIG_PREEMPT_RT=y kernels disable | |
this kernel boot parameter, forcibly setting it | |
to zero. | |
rcutree.enable_rcu_lazy= [KNL] | |
To save power, batch RCU callbacks and flush after | |
delay, memory pressure or callback list growing too | |
big. | |
rcutree.rcu_normal_wake_from_gp= [KNL] | |
Reduces a latency of synchronize_rcu() call. This approach | |
maintains its own track of synchronize_rcu() callers, so it | |
does not interact with regular callbacks because it does not | |
use a call_rcu[_hurry]() path. Please note, this is for a | |
normal grace period. | |
How to enable it: | |
echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp | |
or pass a boot parameter "rcutree.rcu_normal_wake_from_gp=1" | |
Default is 0. | |
rcuscale.gp_async= [KNL] | |
Measure performance of asynchronous | |
grace-period primitives such as call_rcu(). | |
rcuscale.gp_async_max= [KNL] | |
Specify the maximum number of outstanding | |
callbacks per writer thread. When a writer | |
thread exceeds this limit, it invokes the | |
corresponding flavor of rcu_barrier() to allow | |
previously posted callbacks to drain. | |
rcuscale.gp_exp= [KNL] | |
Measure performance of expedited synchronous | |
grace-period primitives. | |
rcuscale.holdoff= [KNL] | |
Set test-start holdoff period. The purpose of | |
this parameter is to delay the start of the | |
test until boot completes in order to avoid | |
interference. | |
rcuscale.kfree_by_call_rcu= [KNL] | |
In kernels built with CONFIG_RCU_LAZY=y, test | |
call_rcu() instead of kfree_rcu(). | |
rcuscale.kfree_mult= [KNL] | |
Instead of allocating an object of size kfree_obj, | |
allocate one of kfree_mult * sizeof(kfree_obj). | |
Defaults to 1. | |
rcuscale.kfree_rcu_test= [KNL] | |
Set to measure performance of kfree_rcu() flooding. | |
rcuscale.kfree_rcu_test_double= [KNL] | |
Test the double-argument variant of kfree_rcu(). | |
If this parameter has the same value as | |
rcuscale.kfree_rcu_test_single, both the single- | |
and double-argument variants are tested. | |
rcuscale.kfree_rcu_test_single= [KNL] | |
Test the single-argument variant of kfree_rcu(). | |
If this parameter has the same value as | |
rcuscale.kfree_rcu_test_double, both the single- | |
and double-argument variants are tested. | |
rcuscale.kfree_nthreads= [KNL] | |
The number of threads running loops of kfree_rcu(). | |
rcuscale.kfree_alloc_num= [KNL] | |
Number of allocations and frees done in an iteration. | |
rcuscale.kfree_loops= [KNL] | |
Number of loops doing rcuscale.kfree_alloc_num number | |
of allocations and frees. | |
rcuscale.minruntime= [KNL] | |
Set the minimum test run time in seconds. This | |
does not affect the data-collection interval, | |
but instead allows better measurement of things | |
like CPU consumption. | |
rcuscale.nreaders= [KNL] | |
Set number of RCU readers. The value -1 selects | |
N, where N is the number of CPUs. A value | |
"n" less than -1 selects N-n+1, where N is again | |
the number of CPUs. For example, -2 selects N | |
(the number of CPUs), -3 selects N+1, and so on. | |
A value of "n" less than or equal to -N selects | |
a single reader. | |
rcuscale.nwriters= [KNL] | |
Set number of RCU writers. The values operate | |
the same as for rcuscale.nreaders. | |
N, where N is the number of CPUs | |
rcuscale.scale_type= [KNL] | |
Specify the RCU implementation to test. | |
rcuscale.shutdown= [KNL] | |
Shut the system down after performance tests | |
complete. This is useful for hands-off automated | |
testing. | |
rcuscale.verbose= [KNL] | |
Enable additional printk() statements. | |
rcuscale.writer_holdoff= [KNL] | |
Write-side holdoff between grace periods, | |
in microseconds. The default of zero says | |
no holdoff. | |
rcuscale.writer_holdoff_jiffies= [KNL] | |
Additional write-side holdoff between grace | |
periods, but in jiffies. The default of zero | |
says no holdoff. | |
rcutorture.fqs_duration= [KNL] | |
Set duration of force_quiescent_state bursts | |
in microseconds. | |
rcutorture.fqs_holdoff= [KNL] | |
Set holdoff time within force_quiescent_state bursts | |
in microseconds. | |
rcutorture.fqs_stutter= [KNL] | |
Set wait time between force_quiescent_state bursts | |
in seconds. | |
rcutorture.fwd_progress= [KNL] | |
Specifies the number of kthreads to be used | |
for RCU grace-period forward-progress testing | |
for the types of RCU supporting this notion. | |
Defaults to 1 kthread, values less than zero or | |
greater than the number of CPUs cause the number | |
of CPUs to be used. | |
rcutorture.fwd_progress_div= [KNL] | |
Specify the fraction of a CPU-stall-warning | |
period to do tight-loop forward-progress testing. | |
rcutorture.fwd_progress_holdoff= [KNL] | |
Number of seconds to wait between successive | |
forward-progress tests. | |
rcutorture.fwd_progress_need_resched= [KNL] | |
Enclose cond_resched() calls within checks for | |
need_resched() during tight-loop forward-progress | |
testing. | |
rcutorture.gp_cond= [KNL] | |
Use conditional/asynchronous update-side | |
primitives, if available. | |
rcutorture.gp_exp= [KNL] | |
Use expedited update-side primitives, if available. | |
rcutorture.gp_normal= [KNL] | |
Use normal (non-expedited) asynchronous | |
update-side primitives, if available. | |
rcutorture.gp_sync= [KNL] | |
Use normal (non-expedited) synchronous | |
update-side primitives, if available. If all | |
of rcutorture.gp_cond=, rcutorture.gp_exp=, | |
rcutorture.gp_normal=, and rcutorture.gp_sync= | |
are zero, rcutorture acts as if is interpreted | |
they are all non-zero. | |
rcutorture.irqreader= [KNL] | |
Run RCU readers from irq handlers, or, more | |
accurately, from a timer handler. Not all RCU | |
flavors take kindly to this sort of thing. | |
rcutorture.leakpointer= [KNL] | |
Leak an RCU-protected pointer out of the reader. | |
This can of course result in splats, and is | |
intended to test the ability of things like | |
CONFIG_RCU_STRICT_GRACE_PERIOD=y to detect | |
such leaks. | |
rcutorture.n_barrier_cbs= [KNL] | |
Set callbacks/threads for rcu_barrier() testing. | |
rcutorture.nfakewriters= [KNL] | |
Set number of concurrent RCU writers. These just | |
stress RCU, they don't participate in the actual | |
test, hence the "fake". | |
rcutorture.nocbs_nthreads= [KNL] | |
Set number of RCU callback-offload togglers. | |
Zero (the default) disables toggling. | |
rcutorture.nocbs_toggle= [KNL] | |
Set the delay in milliseconds between successive | |
callback-offload toggling attempts. | |
rcutorture.nreaders= [KNL] | |
Set number of RCU readers. The value -1 selects | |
N-1, where N is the number of CPUs. A value | |
"n" less than -1 selects N-n-2, where N is again | |
the number of CPUs. For example, -2 selects N | |
(the number of CPUs), -3 selects N+1, and so on. | |
rcutorture.object_debug= [KNL] | |
Enable debug-object double-call_rcu() testing. | |
rcutorture.onoff_holdoff= [KNL] | |
Set time (s) after boot for CPU-hotplug testing. | |
rcutorture.onoff_interval= [KNL] | |
Set time (jiffies) between CPU-hotplug operations, | |
or zero to disable CPU-hotplug testing. | |
rcutorture.read_exit_burst= [KNL] | |
The number of times in a given read-then-exit | |
episode that a set of read-then-exit kthreads | |
is spawned. | |
rcutorture.read_exit_delay= [KNL] | |
The delay, in seconds, between successive | |
read-then-exit testing episodes. | |
rcutorture.reader_flavor= [KNL] | |
A bit mask indicating which readers to use. | |
If there is more than one bit set, the readers | |
are entered from low-order bit up, and are | |
exited in the opposite order. For SRCU, the | |
0x1 bit is normal readers, 0x2 NMI-safe readers, | |
and 0x4 light-weight readers. | |
rcutorture.shuffle_interval= [KNL] | |
Set task-shuffle interval (s). Shuffling tasks | |
allows some CPUs to go into dyntick-idle mode | |
during the rcutorture test. | |
rcutorture.shutdown_secs= [KNL] | |
Set time (s) after boot system shutdown. This | |
is useful for hands-off automated testing. | |
rcutorture.stall_cpu= [KNL] | |
Duration of CPU stall (s) to test RCU CPU stall | |
warnings, zero to disable. | |
rcutorture.stall_cpu_block= [KNL] | |
Sleep while stalling if set. This will result | |
in warnings from preemptible RCU in addition to | |
any other stall-related activity. Note that | |
in kernels built with CONFIG_PREEMPTION=n and | |
CONFIG_PREEMPT_COUNT=y, this parameter will | |
cause the CPU to pass through a quiescent state. | |
Given CONFIG_PREEMPTION=n, this will suppress | |
RCU CPU stall warnings, but will instead result | |
in scheduling-while-atomic splats. | |
Use of this module parameter results in splats. | |
rcutorture.stall_cpu_holdoff= [KNL] | |
Time to wait (s) after boot before inducing stall. | |
rcutorture.stall_cpu_irqsoff= [KNL] | |
Disable interrupts while stalling if set, but only | |
on the first stall in the set. | |
rcutorture.stall_cpu_repeat= [KNL] | |
Number of times to repeat the stall sequence, | |
so that rcutorture.stall_cpu_repeat=3 will result | |
in four stall sequences. | |
rcutorture.stall_gp_kthread= [KNL] | |
Duration (s) of forced sleep within RCU | |
grace-period kthread to test RCU CPU stall | |
warnings, zero to disable. If both stall_cpu | |
and stall_gp_kthread are specified, the | |
kthread is starved first, then the CPU. | |
rcutorture.stat_interval= [KNL] | |
Time (s) between statistics printk()s. | |
rcutorture.stutter= [KNL] | |
Time (s) to stutter testing, for example, specifying | |
five seconds causes the test to run for five seconds, | |
wait for five seconds, and so on. This tests RCU's | |
ability to transition abruptly to and from idle. | |
rcutorture.test_boost= [KNL] | |
Test RCU priority boosting? 0=no, 1=maybe, 2=yes. | |
"Maybe" means test if the RCU implementation | |
under test support RCU priority boosting. | |
rcutorture.test_boost_duration= [KNL] | |
Duration (s) of each individual boost test. | |
rcutorture.test_boost_interval= [KNL] | |
Interval (s) between each boost test. | |
rcutorture.test_no_idle_hz= [KNL] | |
Test RCU's dyntick-idle handling. See also the | |
rcutorture.shuffle_interval parameter. | |
rcutorture.torture_type= [KNL] | |
Specify the RCU implementation to test. | |
rcutorture.verbose= [KNL] | |
Enable additional printk() statements. | |
rcupdate.rcu_cpu_stall_ftrace_dump= [KNL] | |
Dump ftrace buffer after reporting RCU CPU | |
stall warning. | |
rcupdate.rcu_cpu_stall_notifiers= [KNL] | |
Provide RCU CPU stall notifiers, but see the | |
warnings in the RCU_CPU_STALL_NOTIFIER Kconfig | |
option's help text. TL;DR: You almost certainly | |
do not want rcupdate.rcu_cpu_stall_notifiers. | |
rcupdate.rcu_cpu_stall_suppress= [KNL] | |
Suppress RCU CPU stall warning messages. | |
rcupdate.rcu_cpu_stall_suppress_at_boot= [KNL] | |
Suppress RCU CPU stall warning messages and | |
rcutorture writer stall warnings that occur | |
during early boot, that is, during the time | |
before the init task is spawned. | |
rcupdate.rcu_cpu_stall_timeout= [KNL] | |
Set timeout for RCU CPU stall warning messages. | |
The value is in seconds and the maximum allowed | |
value is 300 seconds. | |
rcupdate.rcu_exp_cpu_stall_timeout= [KNL] | |
Set timeout for expedited RCU CPU stall warning | |
messages. The value is in milliseconds | |
and the maximum allowed value is 21000 | |
milliseconds. Please note that this value is | |
adjusted to an arch timer tick resolution. | |
Setting this to zero causes the value from | |
rcupdate.rcu_cpu_stall_timeout to be used (after | |
conversion from seconds to milliseconds). | |
rcupdate.rcu_cpu_stall_cputime= [KNL] | |
Provide statistics on the cputime and count of | |
interrupts and tasks during the sampling period. For | |
multiple continuous RCU stalls, all sampling periods | |
begin at half of the first RCU stall timeout. | |
rcupdate.rcu_exp_stall_task_details= [KNL] | |
Print stack dumps of any tasks blocking the | |
current expedited RCU grace period during an | |
expedited RCU CPU stall warning. | |
rcupdate.rcu_expedited= [KNL] | |
Use expedited grace-period primitives, for | |
example, synchronize_rcu_expedited() instead | |
of synchronize_rcu(). This reduces latency, | |
but can increase CPU utilization, degrade | |
real-time latency, and degrade energy efficiency. | |
No effect on CONFIG_TINY_RCU kernels. | |
rcupdate.rcu_normal= [KNL] | |
Use only normal grace-period primitives, | |
for example, synchronize_rcu() instead of | |
synchronize_rcu_expedited(). This improves | |
real-time latency, CPU utilization, and | |
energy efficiency, but can expose users to | |
increased grace-period latency. This parameter | |
overrides rcupdate.rcu_expedited. No effect on | |
CONFIG_TINY_RCU kernels. | |
rcupdate.rcu_normal_after_boot= [KNL] | |
Once boot has completed (that is, after | |
rcu_end_inkernel_boot() has been invoked), use | |
only normal grace-period primitives. No effect | |
on CONFIG_TINY_RCU kernels. | |
But note that CONFIG_PREEMPT_RT=y kernels enables | |
this kernel boot parameter, forcibly setting | |
it to the value one, that is, converting any | |
post-boot attempt at an expedited RCU grace | |
period to instead use normal non-expedited | |
grace-period processing. | |
rcupdate.rcu_task_collapse_lim= [KNL] | |
Set the maximum number of callbacks present | |
at the beginning of a grace period that allows | |
the RCU Tasks flavors to collapse back to using | |
a single callback queue. This switching only | |
occurs when rcupdate.rcu_task_enqueue_lim is | |
set to the default value of -1. | |
rcupdate.rcu_task_contend_lim= [KNL] | |
Set the minimum number of callback-queuing-time | |
lock-contention events per jiffy required to | |
cause the RCU Tasks flavors to switch to per-CPU | |
callback queuing. This switching only occurs | |
when rcupdate.rcu_task_enqueue_lim is set to | |
the default value of -1. | |
rcupdate.rcu_task_enqueue_lim= [KNL] | |
Set the number of callback queues to use for the | |
RCU Tasks family of RCU flavors. The default | |
of -1 allows this to be automatically (and | |
dynamically) adjusted. This parameter is intended | |
for use in testing. | |
rcupdate.rcu_task_ipi_delay= [KNL] | |
Set time in jiffies during which RCU tasks will | |
avoid sending IPIs, starting with the beginning | |
of a given grace period. Setting a large | |
number avoids disturbing real-time workloads, | |
but lengthens grace periods. | |
rcupdate.rcu_task_lazy_lim= [KNL] | |
Number of callbacks on a given CPU that will | |
cancel laziness on that CPU. Use -1 to disable | |
cancellation of laziness, but be advised that | |
doing so increases the danger of OOM due to | |
callback flooding. | |
rcupdate.rcu_task_stall_info= [KNL] | |
Set initial timeout in jiffies for RCU task stall | |
informational messages, which give some indication | |
of the problem for those not patient enough to | |
wait for ten minutes. Informational messages are | |
only printed prior to the stall-warning message | |
for a given grace period. Disable with a value | |
less than or equal to zero. Defaults to ten | |
seconds. A change in value does not take effect | |
until the beginning of the next grace period. | |
rcupdate.rcu_task_stall_info_mult= [KNL] | |
Multiplier for time interval between successive | |
RCU task stall informational messages for a given | |
RCU tasks grace period. This value is clamped | |
to one through ten, inclusive. It defaults to | |
the value three, so that the first informational | |
message is printed 10 seconds into the grace | |
period, the second at 40 seconds, the third at | |
160 seconds, and then the stall warning at 600 | |
seconds would prevent a fourth at 640 seconds. | |
rcupdate.rcu_task_stall_timeout= [KNL] | |
Set timeout in jiffies for RCU task stall | |
warning messages. Disable with a value less | |
than or equal to zero. Defaults to ten minutes. | |
A change in value does not take effect until | |
the beginning of the next grace period. | |
rcupdate.rcu_tasks_lazy_ms= [KNL] | |
Set timeout in milliseconds RCU Tasks asynchronous | |
callback batching for call_rcu_tasks(). | |
A negative value will take the default. A value | |
of zero will disable batching. Batching is | |
always disabled for synchronize_rcu_tasks(). | |
rcupdate.rcu_tasks_trace_lazy_ms= [KNL] | |
Set timeout in milliseconds RCU Tasks | |
Trace asynchronous callback batching for | |
call_rcu_tasks_trace(). A negative value | |
will take the default. A value of zero will | |
disable batching. Batching is always disabled | |
for synchronize_rcu_tasks_trace(). | |
rcupdate.rcu_self_test= [KNL] | |
Run the RCU early boot self tests | |
rdinit= [KNL] | |
Format: <full_path> | |
Run specified binary instead of /init from the ramdisk, | |
used for early userspace startup. See initrd. | |
rdrand= [X86,EARLY] | |
force - Override the decision by the kernel to hide the | |
advertisement of RDRAND support (this affects | |
certain AMD processors because of buggy BIOS | |
support, specifically around the suspend/resume | |
path). | |
rdt= [HW,X86,RDT] | |
Turn on/off individual RDT features. List is: | |
cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, | |
mba, smba, bmec. | |
E.g. to turn on cmt and turn off mba use: | |
rdt=cmt,!mba | |
reboot= [KNL] | |
Format (x86 or x86_64): | |
[w[arm] | c[old] | h[ard] | s[oft] | g[pio]] | d[efault] \ | |
[[,]s[mp]#### \ | |
[[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \ | |
[[,]f[orce] | |
Where reboot_mode is one of warm (soft) or cold (hard) or gpio | |
(prefix with 'panic_' to set mode for panic | |
reboot only), | |
reboot_type is one of bios, acpi, kbd, triple, efi, or pci, | |
reboot_force is either force or not specified, | |
reboot_cpu is s[mp]#### with #### being the processor | |
to be used for rebooting. | |
refscale.holdoff= [KNL] | |
Set test-start holdoff period. The purpose of | |
this parameter is to delay the start of the | |
test until boot completes in order to avoid | |
interference. | |
refscale.lookup_instances= [KNL] | |
Number of data elements to use for the forms of | |
SLAB_TYPESAFE_BY_RCU testing. A negative number | |
is negated and multiplied by nr_cpu_ids, while | |
zero specifies nr_cpu_ids. | |
refscale.loops= [KNL] | |
Set the number of loops over the synchronization | |
primitive under test. Increasing this number | |
reduces noise due to loop start/end overhead, | |
but the default has already reduced the per-pass | |
noise to a handful of picoseconds on ca. 2020 | |
x86 laptops. | |
refscale.nreaders= [KNL] | |
Set number of readers. The default value of -1 | |
selects N, where N is roughly 75% of the number | |
of CPUs. A value of zero is an interesting choice. | |
refscale.nruns= [KNL] | |
Set number of runs, each of which is dumped onto | |
the console log. | |
refscale.readdelay= [KNL] | |
Set the read-side critical-section duration, | |
measured in microseconds. | |
refscale.scale_type= [KNL] | |
Specify the read-protection implementation to test. | |
refscale.shutdown= [KNL] | |
Shut down the system at the end of the performance | |
test. This defaults to 1 (shut it down) when | |
refscale is built into the kernel and to 0 (leave | |
it running) when refscale is built as a module. | |
refscale.verbose= [KNL] | |
Enable additional printk() statements. | |
refscale.verbose_batched= [KNL] | |
Batch the additional printk() statements. If zero | |
(the default) or negative, print everything. Otherwise, | |
print every Nth verbose statement, where N is the value | |
specified. | |
regulator_ignore_unused | |
[REGULATOR] | |
Prevents regulator framework from disabling regulators | |
that are unused, due no driver claiming them. This may | |
be useful for debug and development, but should not be | |
needed on a platform with proper driver support. | |
relax_domain_level= | |
[KNL, SMP] Set scheduler's default relax_domain_level. | |
See Documentation/admin-guide/cgroup-v1/cpusets.rst. | |
reserve= [KNL,BUGS] Force kernel to ignore I/O ports or memory | |
Format: <base1>,<size1>[,<base2>,<size2>,...] | |
Reserve I/O ports or memory so the kernel won't use | |
them. If <base> is less than 0x10000, the region | |
is assumed to be I/O ports; otherwise it is memory. | |
reserve_mem= [RAM] | |
Format: nn[KNG]:<align>:<label> | |
Reserve physical memory and label it with a name that | |
other subsystems can use to access it. This is typically | |
used for systems that do not wipe the RAM, and this command | |
line will try to reserve the same physical memory on | |
soft reboots. Note, it is not guaranteed to be the same | |
location. For example, if anything about the system changes | |
or if booting a different kernel. It can also fail if KASLR | |
places the kernel at the location of where the RAM reservation | |
was from a previous boot, the new reservation will be at a | |
different location. | |
Any subsystem using this feature must add a way to verify | |
that the contents of the physical memory is from a previous | |
boot, as there may be cases where the memory will not be | |
located at the same location. | |
The format is size:align:label for example, to request | |
12 megabytes of 4096 alignment for ramoops: | |
reserve_mem=12M:4096:oops ramoops.mem_name=oops | |
reservetop= [X86-32,EARLY] | |
Format: nn[KMG] | |
Reserves a hole at the top of the kernel virtual | |
address space. | |
reset_devices [KNL] Force drivers to reset the underlying device | |
during initialization. | |
resume= [SWSUSP] | |
Specify the partition device for software suspend | |
Format: | |
{/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>} | |
resume_offset= [SWSUSP] | |
Specify the offset from the beginning of the partition | |
given by "resume=" at which the swap header is located, | |
in <PAGE_SIZE> units (needed only for swap files). | |
See Documentation/power/swsusp-and-swap-files.rst | |
resumedelay= [HIBERNATION] Delay (in seconds) to pause before attempting to | |
read the resume files | |
resumewait [HIBERNATION] Wait (indefinitely) for resume device to show up. | |
Useful for devices that are detected asynchronously | |
(e.g. USB and MMC devices). | |
retain_initrd [RAM] Keep initrd memory after extraction. After boot, it will | |
be accessible via /sys/firmware/initrd. | |
retbleed= [X86] Control mitigation of RETBleed (Arbitrary | |
Speculative Code Execution with Return Instructions) | |
vulnerability. | |
AMD-based UNRET and IBPB mitigations alone do not stop | |
sibling threads from influencing the predictions of other | |
sibling threads. For that reason, STIBP is used on pro- | |
cessors that support it, and mitigate SMT on processors | |
that don't. | |
off - no mitigation | |
auto - automatically select a migitation | |
auto,nosmt - automatically select a mitigation, | |
disabling SMT if necessary for | |
the full mitigation (only on Zen1 | |
and older without STIBP). | |
ibpb - On AMD, mitigate short speculation | |
windows on basic block boundaries too. | |
Safe, highest perf impact. It also | |
enables STIBP if present. Not suitable | |
on Intel. | |
ibpb,nosmt - Like "ibpb" above but will disable SMT | |
when STIBP is not available. This is | |
the alternative for systems which do not | |
have STIBP. | |
unret - Force enable untrained return thunks, | |
only effective on AMD f15h-f17h based | |
systems. | |
unret,nosmt - Like unret, but will disable SMT when STIBP | |
is not available. This is the alternative for | |
systems which do not have STIBP. | |
Selecting 'auto' will choose a mitigation method at run | |
time according to the CPU. | |
Not specifying this option is equivalent to retbleed=auto. | |
rfkill.default_state= | |
0 "airplane mode". All wifi, bluetooth, wimax, gps, fm, | |
etc. communication is blocked by default. | |
1 Unblocked. | |
rfkill.master_switch_mode= | |
0 The "airplane mode" button does nothing. | |
1 The "airplane mode" button toggles between everything | |
blocked and the previous configuration. | |
2 The "airplane mode" button toggles between everything | |
blocked and everything unblocked. | |
ring3mwait=disable | |
[KNL] Disable ring 3 MONITOR/MWAIT feature on supported | |
CPUs. | |
riscv_isa_fallback [RISCV,EARLY] | |
When CONFIG_RISCV_ISA_FALLBACK is not enabled, permit | |
falling back to detecting extension support by parsing | |
"riscv,isa" property on devicetree systems when the | |
replacement properties are not found. See the Kconfig | |
entry for RISCV_ISA_FALLBACK. | |
ro [KNL] Mount root device read-only on boot | |
rodata= [KNL,EARLY] | |
on Mark read-only kernel memory as read-only (default). | |
off Leave read-only kernel memory writable for debugging. | |
full Mark read-only kernel memory and aliases as read-only | |
[arm64] | |
rockchip.usb_uart | |
[EARLY] | |
Enable the uart passthrough on the designated usb port | |
on Rockchip SoCs. When active, the signals of the | |
debug-uart get routed to the D+ and D- pins of the usb | |
port and the regular usb controller gets disabled. | |
root= [KNL] Root filesystem | |
Usually this a a block device specifier of some kind, | |
see the early_lookup_bdev comment in | |
block/early-lookup.c for details. | |
Alternatively this can be "ram" for the legacy initial | |
ramdisk, "nfs" and "cifs" for root on a network file | |
system, or "mtd" and "ubi" for mounting from raw flash. | |
rootdelay= [KNL] Delay (in seconds) to pause before attempting to | |
mount the root filesystem | |
rootflags= [KNL] Set root filesystem mount option string | |
rootfstype= [KNL] Set root filesystem type | |
rootwait [KNL] Wait (indefinitely) for root device to show up. | |
Useful for devices that are detected asynchronously | |
(e.g. USB and MMC devices). | |
rootwait= [KNL] Maximum time (in seconds) to wait for root device | |
to show up before attempting to mount the root | |
filesystem. | |
rproc_mem=nn[KMG][@address] | |
[KNL,ARM,CMA] Remoteproc physical memory block. | |
Memory area to be used by remote processor image, | |
managed by CMA. | |
rw [KNL] Mount root device read-write on boot | |
S [KNL] Run init in single mode | |
s390_iommu= [HW,S390] | |
Set s390 IOTLB flushing mode | |
strict | |
With strict flushing every unmap operation will result | |
in an IOTLB flush. Default is lazy flushing before | |
reuse, which is faster. Deprecated, equivalent to | |
iommu.strict=1. | |
s390_iommu_aperture= [KNL,S390] | |
Specifies the size of the per device DMA address space | |
accessible through the DMA and IOMMU APIs as a decimal | |
factor of the size of main memory. | |
The default is 1 meaning that one can concurrently use | |
as many DMA addresses as physical memory is installed, | |
if supported by hardware, and thus map all of memory | |
once. With a value of 2 one can map all of memory twice | |
and so on. As a special case a factor of 0 imposes no | |
restrictions other than those given by hardware at the | |
cost of significant additional memory use for tables. | |
sa1100ir [NET] | |
See drivers/net/irda/sa1100_ir.c. | |
sched_verbose [KNL,EARLY] Enables verbose scheduler debug messages. | |
schedstats= [KNL,X86] Enable or disable scheduled statistics. | |
Allowed values are enable and disable. This feature | |
incurs a small amount of overhead in the scheduler | |
but is useful for debugging and performance tuning. | |
sched_thermal_decay_shift= | |
[Deprecated] | |
[KNL, SMP] Set a decay shift for scheduler thermal | |
pressure signal. Thermal pressure signal follows the | |
default decay period of other scheduler pelt | |
signals(usually 32 ms but configurable). Setting | |
sched_thermal_decay_shift will left shift the decay | |
period for the thermal pressure signal by the shift | |
value. | |
i.e. with the default pelt decay period of 32 ms | |
sched_thermal_decay_shift thermal pressure decay pr | |
1 64 ms | |
2 128 ms | |
and so on. | |
Format: integer between 0 and 10 | |
Default is 0. | |
scftorture.holdoff= [KNL] | |
Number of seconds to hold off before starting | |
test. Defaults to zero for module insertion and | |
to 10 seconds for built-in smp_call_function() | |
tests. | |
scftorture.longwait= [KNL] | |
Request ridiculously long waits randomly selected | |
up to the chosen limit in seconds. Zero (the | |
default) disables this feature. Please note | |
that requesting even small non-zero numbers of | |
seconds can result in RCU CPU stall warnings, | |
softlockup complaints, and so on. | |
scftorture.nthreads= [KNL] | |
Number of kthreads to spawn to invoke the | |
smp_call_function() family of functions. | |
The default of -1 specifies a number of kthreads | |
equal to the number of CPUs. | |
scftorture.onoff_holdoff= [KNL] | |
Number seconds to wait after the start of the | |
test before initiating CPU-hotplug operations. | |
scftorture.onoff_interval= [KNL] | |
Number seconds to wait between successive | |
CPU-hotplug operations. Specifying zero (which | |
is the default) disables CPU-hotplug operations. | |
scftorture.shutdown_secs= [KNL] | |
The number of seconds following the start of the | |
test after which to shut down the system. The | |
default of zero avoids shutting down the system. | |
Non-zero values are useful for automated tests. | |
scftorture.stat_interval= [KNL] | |
The number of seconds between outputting the | |
current test statistics to the console. A value | |
of zero disables statistics output. | |
scftorture.stutter_cpus= [KNL] | |
The number of jiffies to wait between each change | |
to the set of CPUs under test. | |
scftorture.use_cpus_read_lock= [KNL] | |
Use use_cpus_read_lock() instead of the default | |
preempt_disable() to disable CPU hotplug | |
while invoking one of the smp_call_function*() | |
functions. | |
scftorture.verbose= [KNL] | |
Enable additional printk() statements. | |
scftorture.weight_single= [KNL] | |
The probability weighting to use for the | |
smp_call_function_single() function with a zero | |
"wait" parameter. A value of -1 selects the | |
default if all other weights are -1. However, | |
if at least one weight has some other value, a | |
value of -1 will instead select a weight of zero. | |
scftorture.weight_single_wait= [KNL] | |
The probability weighting to use for the | |
smp_call_function_single() function with a | |
non-zero "wait" parameter. See weight_single. | |
scftorture.weight_many= [KNL] | |
The probability weighting to use for the | |
smp_call_function_many() function with a zero | |
"wait" parameter. See weight_single. | |
Note well that setting a high probability for | |
this weighting can place serious IPI load | |
on the system. | |
scftorture.weight_many_wait= [KNL] | |
The probability weighting to use for the | |
smp_call_function_many() function with a | |
non-zero "wait" parameter. See weight_single | |
and weight_many. | |
scftorture.weight_all= [KNL] | |
The probability weighting to use for the | |
smp_call_function_all() function with a zero | |
"wait" parameter. See weight_single and | |
weight_many. | |
scftorture.weight_all_wait= [KNL] | |
The probability weighting to use for the | |
smp_call_function_all() function with a | |
non-zero "wait" parameter. See weight_single | |
and weight_many. | |
skew_tick= [KNL,EARLY] Offset the periodic timer tick per cpu to mitigate | |
xtime_lock contention on larger systems, and/or RCU lock | |
contention on all systems with CONFIG_MAXSMP set. | |
Format: { "0" | "1" } | |
0 -- disable. (may be 1 via CONFIG_CMDLINE="skew_tick=1" | |
1 -- enable. | |
Note: increases power consumption, thus should only be | |
enabled if running jitter sensitive (HPC/RT) workloads. | |
security= [SECURITY] Choose a legacy "major" security module to | |
enable at boot. This has been deprecated by the | |
"lsm=" parameter. | |
selinux= [SELINUX] Disable or enable SELinux at boot time. | |
Format: { "0" | "1" } | |
See security/selinux/Kconfig help text. | |
0 -- disable. | |
1 -- enable. | |
Default value is 1. | |
serialnumber [BUGS=X86-32] | |
sev=option[,option...] [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst | |
shapers= [NET] | |
Maximal number of shapers. | |
show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller | |
Limit apic dumping. The parameter defines the maximal | |
number of local apics being dumped. Also it is possible | |
to set it to "all" by meaning -- no limit here. | |
Format: { 1 (default) | 2 | ... | all }. | |
The parameter valid if only apic=debug or | |
apic=verbose is specified. | |
Example: apic=debug show_lapic=all | |
slab_debug[=options[,slabs][;[options[,slabs]]...] [MM] | |
Enabling slab_debug allows one to determine the | |
culprit if slab objects become corrupted. Enabling | |
slab_debug can create guard zones around objects and | |
may poison objects when not in use. Also tracks the | |
last alloc / free. For more information see | |
Documentation/mm/slub.rst. | |
(slub_debug legacy name also accepted for now) | |
slab_max_order= [MM] | |
Determines the maximum allowed order for slabs. | |
A high setting may cause OOMs due to memory | |
fragmentation. For more information see | |
Documentation/mm/slub.rst. | |
(slub_max_order legacy name also accepted for now) | |
slab_merge [MM] | |
Enable merging of slabs with similar size when the | |
kernel is built without CONFIG_SLAB_MERGE_DEFAULT. | |
(slub_merge legacy name also accepted for now) | |
slab_min_objects= [MM] | |
The minimum number of objects per slab. SLUB will | |
increase the slab order up to slab_max_order to | |
generate a sufficiently large slab able to contain | |
the number of objects indicated. The higher the number | |
of objects the smaller the overhead of tracking slabs | |
and the less frequently locks need to be acquired. | |
For more information see Documentation/mm/slub.rst. | |
(slub_min_objects legacy name also accepted for now) | |
slab_min_order= [MM] | |
Determines the minimum page order for slabs. Must be | |
lower or equal to slab_max_order. For more information see | |
Documentation/mm/slub.rst. | |
(slub_min_order legacy name also accepted for now) | |
slab_nomerge [MM] | |
Disable merging of slabs with similar size. May be | |
necessary if there is some reason to distinguish | |
allocs to different slabs, especially in hardened | |
environments where the risk of heap overflows and | |
layout control by attackers can usually be | |
frustrated by disabling merging. This will reduce | |
most of the exposure of a heap attack to a single | |
cache (risks via metadata attacks are mostly | |
unchanged). Debug options disable merging on their | |
own. | |
For more information see Documentation/mm/slub.rst. | |
(slub_nomerge legacy name also accepted for now) | |
slram= [HW,MTD] | |
smart2= [HW] | |
Format: <io1>[,<io2>[,...,<io8>]] | |
smp.csd_lock_timeout= [KNL] | |
Specify the period of time in milliseconds | |
that smp_call_function() and friends will wait | |
for a CPU to release the CSD lock. This is | |
useful when diagnosing bugs involving CPUs | |
disabling interrupts for extended periods | |
of time. Defaults to 5,000 milliseconds, and | |
setting a value of zero disables this feature. | |
This feature may be more efficiently disabled | |
using the csdlock_debug- kernel parameter. | |
smp.panic_on_ipistall= [KNL] | |
If a csd_lock_timeout extends for more than | |
the specified number of milliseconds, panic the | |
system. By default, let CSD-lock acquisition | |
take as long as they take. Specifying 300,000 | |
for this value provides a 5-minute timeout. | |
smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices | |
smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port | |
smsc-ircc2.ircc_sir= [HW] SIR base I/O port | |
smsc-ircc2.ircc_fir= [HW] FIR base I/O port | |
smsc-ircc2.ircc_irq= [HW] IRQ line | |
smsc-ircc2.ircc_dma= [HW] DMA channel | |
smsc-ircc2.ircc_transceiver= [HW] Transceiver type: | |
0: Toshiba Satellite 1800 (GP data pin select) | |
1: Fast pin select (default) | |
2: ATC IRMode | |
smt= [KNL,MIPS,S390,EARLY] Set the maximum number of threads | |
(logical CPUs) to use per physical CPU on systems | |
capable of symmetric multithreading (SMT). Will | |
be capped to the actual hardware limit. | |
Format: <integer> | |
Default: -1 (no limit) | |
softlockup_panic= | |
[KNL] Should the soft-lockup detector generate panics. | |
Format: 0 | 1 | |
A value of 1 instructs the soft-lockup detector | |
to panic the machine when a soft-lockup occurs. It is | |
also controlled by the kernel.softlockup_panic sysctl | |
and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the | |
respective build-time switch to that functionality. | |
softlockup_all_cpu_backtrace= | |
[KNL] Should the soft-lockup detector generate | |
backtraces on all cpus. | |
Format: 0 | 1 | |
sonypi.*= [HW] Sony Programmable I/O Control Device driver | |
See Documentation/admin-guide/laptops/sonypi.rst | |
spectre_bhi= [X86] Control mitigation of Branch History Injection | |
(BHI) vulnerability. This setting affects the | |
deployment of the HW BHI control and the SW BHB | |
clearing sequence. | |
on - (default) Enable the HW or SW mitigation as | |
needed. This protects the kernel from | |
both syscalls and VMs. | |
vmexit - On systems which don't have the HW mitigation | |
available, enable the SW mitigation on vmexit | |
ONLY. On such systems, the host kernel is | |
protected from VM-originated BHI attacks, but | |
may still be vulnerable to syscall attacks. | |
off - Disable the mitigation. | |
spectre_v2= [X86,EARLY] Control mitigation of Spectre variant 2 | |
(indirect branch speculation) vulnerability. | |
The default operation protects the kernel from | |
user space attacks. | |
on - unconditionally enable, implies | |
spectre_v2_user=on | |
off - unconditionally disable, implies | |
spectre_v2_user=off | |
auto - kernel detects whether your CPU model is | |
vulnerable | |
Selecting 'on' will, and 'auto' may, choose a | |
mitigation method at run time according to the | |
CPU, the available microcode, the setting of the | |
CONFIG_MITIGATION_RETPOLINE configuration option, | |
and the compiler with which the kernel was built. | |
Selecting 'on' will also enable the mitigation | |
against user space to user space task attacks. | |
Selecting 'off' will disable both the kernel and | |
the user space protections. | |
Specific mitigations can also be selected manually: | |
retpoline - replace indirect branches | |
retpoline,generic - Retpolines | |
retpoline,lfence - LFENCE; indirect branch | |
retpoline,amd - alias for retpoline,lfence | |
eibrs - Enhanced/Auto IBRS | |
eibrs,retpoline - Enhanced/Auto IBRS + Retpolines | |
eibrs,lfence - Enhanced/Auto IBRS + LFENCE | |
ibrs - use IBRS to protect kernel | |
Not specifying this option is equivalent to | |
spectre_v2=auto. | |
spectre_v2_user= | |
[X86] Control mitigation of Spectre variant 2 | |
(indirect branch speculation) vulnerability between | |
user space tasks | |
on - Unconditionally enable mitigations. Is | |
enforced by spectre_v2=on | |
off - Unconditionally disable mitigations. Is | |
enforced by spectre_v2=off | |
prctl - Indirect branch speculation is enabled, | |
but mitigation can be enabled via prctl | |
per thread. The mitigation control state | |
is inherited on fork. | |
prctl,ibpb | |
- Like "prctl" above, but only STIBP is | |
controlled per thread. IBPB is issued | |
always when switching between different user | |
space processes. | |
seccomp | |
- Same as "prctl" above, but all seccomp | |
threads will enable the mitigation unless | |
they explicitly opt out. | |
seccomp,ibpb | |
- Like "seccomp" above, but only STIBP is | |
controlled per thread. IBPB is issued | |
always when switching between different | |
user space processes. | |
auto - Kernel selects the mitigation depending on | |
the available CPU features and vulnerability. | |
Default mitigation: "prctl" | |
Not specifying this option is equivalent to | |
spectre_v2_user=auto. | |
spec_rstack_overflow= | |
[X86,EARLY] Control RAS overflow mitigation on AMD Zen CPUs | |
off - Disable mitigation | |
microcode - Enable microcode mitigation only | |
safe-ret - Enable sw-only safe RET mitigation (default) | |
ibpb - Enable mitigation by issuing IBPB on | |
kernel entry | |
ibpb-vmexit - Issue IBPB only on VMEXIT | |
(cloud-specific mitigation) | |
spec_store_bypass_disable= | |
[HW,EARLY] Control Speculative Store Bypass (SSB) Disable mitigation | |
(Speculative Store Bypass vulnerability) | |
Certain CPUs are vulnerable to an exploit against a | |
a common industry wide performance optimization known | |
as "Speculative Store Bypass" in which recent stores | |
to the same memory location may not be observed by | |
later loads during speculative execution. The idea | |
is that such stores are unlikely and that they can | |
be detected prior to instruction retirement at the | |
end of a particular speculation execution window. | |
In vulnerable processors, the speculatively forwarded | |
store can be used in a cache side channel attack, for | |
example to read memory to which the attacker does not | |
directly have access (e.g. inside sandboxed code). | |
This parameter controls whether the Speculative Store | |
Bypass optimization is used. | |
On x86 the options are: | |
on - Unconditionally disable Speculative Store Bypass | |
off - Unconditionally enable Speculative Store Bypass | |
auto - Kernel detects whether the CPU model contains an | |
implementation of Speculative Store Bypass and | |
picks the most appropriate mitigation. If the | |
CPU is not vulnerable, "off" is selected. If the | |
CPU is vulnerable the default mitigation is | |
architecture and Kconfig dependent. See below. | |
prctl - Control Speculative Store Bypass per thread | |
via prctl. Speculative Store Bypass is enabled | |
for a process by default. The state of the control | |
is inherited on fork. | |
seccomp - Same as "prctl" above, but all seccomp threads | |
will disable SSB unless they explicitly opt out. | |
Default mitigations: | |
X86: "prctl" | |
On powerpc the options are: | |
on,auto - On Power8 and Power9 insert a store-forwarding | |
barrier on kernel entry and exit. On Power7 | |
perform a software flush on kernel entry and | |
exit. | |
off - No action. | |
Not specifying this option is equivalent to | |
spec_store_bypass_disable=auto. | |
split_lock_detect= | |
[X86] Enable split lock detection or bus lock detection | |
When enabled (and if hardware support is present), atomic | |
instructions that access data across cache line | |
boundaries will result in an alignment check exception | |
for split lock detection or a debug exception for | |
bus lock detection. | |
off - not enabled | |
warn - the kernel will emit rate-limited warnings | |
about applications triggering the #AC | |
exception or the #DB exception. This mode is | |
the default on CPUs that support split lock | |
detection or bus lock detection. Default | |
behavior is by #AC if both features are | |
enabled in hardware. | |
fatal - the kernel will send SIGBUS to applications | |
that trigger the #AC exception or the #DB | |
exception. Default behavior is by #AC if | |
both features are enabled in hardware. | |
ratelimit:N - | |
Set system wide rate limit to N bus locks | |
per second for bus lock detection. | |
0 < N <= 1000. | |
N/A for split lock detection. | |
If an #AC exception is hit in the kernel or in | |
firmware (i.e. not while executing in user mode) | |
the kernel will oops in either "warn" or "fatal" | |
mode. | |
#DB exception for bus lock is triggered only when | |
CPL > 0. | |
srbds= [X86,INTEL,EARLY] | |
Control the Special Register Buffer Data Sampling | |
(SRBDS) mitigation. | |
Certain CPUs are vulnerable to an MDS-like | |
exploit which can leak bits from the random | |
number generator. | |
By default, this issue is mitigated by | |
microcode. However, the microcode fix can cause | |
the RDRAND and RDSEED instructions to become | |
much slower. Among other effects, this will | |
result in reduced throughput from /dev/urandom. | |
The microcode mitigation can be disabled with | |
the following option: | |
off: Disable mitigation and remove | |
performance impact to RDRAND and RDSEED | |
srcutree.big_cpu_lim [KNL] | |
Specifies the number of CPUs constituting a | |
large system, such that srcu_struct structures | |
should immediately allocate an srcu_node array. | |
This kernel-boot parameter defaults to 128, | |
but takes effect only when the low-order four | |
bits of srcutree.convert_to_big is equal to 3 | |
(decide at boot). | |
srcutree.convert_to_big [KNL] | |
Specifies under what conditions an SRCU tree | |
srcu_struct structure will be converted to big | |
form, that is, with an rcu_node tree: | |
0: Never. | |
1: At init_srcu_struct() time. | |
2: When rcutorture decides to. | |
3: Decide at boot time (default). | |
0x1X: Above plus if high contention. | |
Either way, the srcu_node tree will be sized based | |
on the actual runtime number of CPUs (nr_cpu_ids) | |
instead of the compile-time CONFIG_NR_CPUS. | |
srcutree.counter_wrap_check [KNL] | |
Specifies how frequently to check for | |
grace-period sequence counter wrap for the | |
srcu_data structure's ->srcu_gp_seq_needed field. | |
The greater the number of bits set in this kernel | |
parameter, the less frequently counter wrap will | |
be checked for. Note that the bottom two bits | |
are ignored. | |
srcutree.exp_holdoff [KNL] | |
Specifies how many nanoseconds must elapse | |
since the end of the last SRCU grace period for | |
a given srcu_struct until the next normal SRCU | |
grace period will be considered for automatic | |
expediting. Set to zero to disable automatic | |
expediting. | |
srcutree.srcu_max_nodelay [KNL] | |
Specifies the number of no-delay instances | |
per jiffy for which the SRCU grace period | |
worker thread will be rescheduled with zero | |
delay. Beyond this limit, worker thread will | |
be rescheduled with a sleep delay of one jiffy. | |
srcutree.srcu_max_nodelay_phase [KNL] | |
Specifies the per-grace-period phase, number of | |
non-sleeping polls of readers. Beyond this limit, | |
grace period worker thread will be rescheduled | |
with a sleep delay of one jiffy, between each | |
rescan of the readers, for a grace period phase. | |
srcutree.srcu_retry_check_delay [KNL] | |
Specifies number of microseconds of non-sleeping | |
delay between each non-sleeping poll of readers. | |
srcutree.small_contention_lim [KNL] | |
Specifies the number of update-side contention | |
events per jiffy will be tolerated before | |
initiating a conversion of an srcu_struct | |
structure to big form. Note that the value of | |
srcutree.convert_to_big must have the 0x10 bit | |
set for contention-based conversions to occur. | |
ssbd= [ARM64,HW,EARLY] | |
Speculative Store Bypass Disable control | |
On CPUs that are vulnerable to the Speculative | |
Store Bypass vulnerability and offer a | |
firmware based mitigation, this parameter | |
indicates how the mitigation should be used: | |
force-on: Unconditionally enable mitigation for | |
for both kernel and userspace | |
force-off: Unconditionally disable mitigation for | |
for both kernel and userspace | |
kernel: Always enable mitigation in the | |
kernel, and offer a prctl interface | |
to allow userspace to register its | |
interest in being mitigated too. | |
stack_guard_gap= [MM] | |
override the default stack gap protection. The value | |
is in page units and it defines how many pages prior | |
to (for stacks growing down) resp. after (for stacks | |
growing up) the main stack are reserved for no other | |
mapping. Default value is 256 pages. | |
stack_depot_disable= [KNL,EARLY] | |
Setting this to true through kernel command line will | |
disable the stack depot thereby saving the static memory | |
consumed by the stack hash table. By default this is set | |
to false. | |
stacktrace [FTRACE] | |
Enabled the stack tracer on boot up. | |
stacktrace_filter=[function-list] | |
[FTRACE] Limit the functions that the stack tracer | |
will trace at boot up. function-list is a comma-separated | |
list of functions. This list can be changed at run | |
time by the stack_trace_filter file in the debugfs | |
tracing directory. Note, this enables stack tracing | |
and the stacktrace above is not needed. | |
sti= [PARISC,HW] | |
Format: <num> | |
Set the STI (builtin display/keyboard on the HP-PARISC | |
machines) console (graphic card) which should be used | |
as the initial boot-console. | |
See also comment in drivers/video/console/sticore.c. | |
sti_font= [HW] | |
See comment in drivers/video/console/sticore.c. | |
stifb= [HW] | |
Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]] | |
strict_sas_size= | |
[X86] | |
Format: <bool> | |
Enable or disable strict sigaltstack size checks | |
against the required signal frame size which | |
depends on the supported FPU features. This can | |
be used to filter out binaries which have | |
not yet been made aware of AT_MINSIGSTKSZ. | |
stress_hpt [PPC,EARLY] | |
Limits the number of kernel HPT entries in the hash | |
page table to increase the rate of hash page table | |
faults on kernel addresses. | |
stress_slb [PPC,EARLY] | |
Limits the number of kernel SLB entries, and flushes | |
them frequently to increase the rate of SLB faults | |
on kernel addresses. | |
sunrpc.min_resvport= | |
sunrpc.max_resvport= | |
[NFS,SUNRPC] | |
SunRPC servers often require that client requests | |
originate from a privileged port (i.e. a port in the | |
range 0 < portnr < 1024). | |
An administrator who wishes to reserve some of these | |
ports for other uses may adjust the range that the | |
kernel's sunrpc client considers to be privileged | |
using these two parameters to set the minimum and | |
maximum port values. | |
sunrpc.svc_rpc_per_connection_limit= | |
[NFS,SUNRPC] | |
Limit the number of requests that the server will | |
process in parallel from a single connection. | |
The default value is 0 (no limit). | |
sunrpc.pool_mode= | |
[NFS] | |
Control how the NFS server code allocates CPUs to | |
service thread pools. Depending on how many NICs | |
you have and where their interrupts are bound, this | |
option will affect which CPUs will do NFS serving. | |
Note: this parameter cannot be changed while the | |
NFS server is running. | |
auto the server chooses an appropriate mode | |
automatically using heuristics | |
global a single global pool contains all CPUs | |
percpu one pool for each CPU | |
pernode one pool for each NUMA node (equivalent | |
to global on non-NUMA machines) | |
sunrpc.tcp_slot_table_entries= | |
sunrpc.udp_slot_table_entries= | |
[NFS,SUNRPC] | |
Sets the upper limit on the number of simultaneous | |
RPC calls that can be sent from the client to a | |
server. Increasing these values may allow you to | |
improve throughput, but will also increase the | |
amount of memory reserved for use by the client. | |
suspend.pm_test_delay= | |
[SUSPEND] | |
Sets the number of seconds to remain in a suspend test | |
mode before resuming the system (see | |
/sys/power/pm_test). Only available when CONFIG_PM_DEBUG | |
is set. Default value is 5. | |
svm= [PPC] | |
Format: { on | off | y | n | 1 | 0 } | |
This parameter controls use of the Protected | |
Execution Facility on pSeries. | |
swiotlb= [ARM,PPC,MIPS,X86,S390,EARLY] | |
Format: { <int> [,<int>] | force | noforce } | |
<int> -- Number of I/O TLB slabs | |
<int> -- Second integer after comma. Number of swiotlb | |
areas with their own lock. Will be rounded up | |
to a power of 2. | |
force -- force using of bounce buffers even if they | |
wouldn't be automatically used by the kernel | |
noforce -- Never use bounce buffers (for debugging) | |
switches= [HW,M68k,EARLY] | |
sysctl.*= [KNL] | |
Set a sysctl parameter, right before loading the init | |
process, as if the value was written to the respective | |
/proc/sys/... file. Both '.' and '/' are recognized as | |
separators. Unrecognized parameters and invalid values | |
are reported in the kernel log. Sysctls registered | |
later by a loaded module cannot be set this way. | |
Example: sysctl.vm.swappiness=40 | |
sysrq_always_enabled | |
[KNL] | |
Ignore sysrq setting - this boot parameter will | |
neutralize any effect of /proc/sys/kernel/sysrq. | |
Useful for debugging. | |
tcpmhash_entries= [KNL,NET] | |
Set the number of tcp_metrics_hash slots. | |
Default value is 8192 or 16384 depending on total | |
ram pages. This is used to specify the TCP metrics | |
cache size. See Documentation/networking/ip-sysctl.rst | |
"tcp_no_metrics_save" section for more details. | |
tdfx= [HW,DRM] | |
test_suspend= [SUSPEND] | |
Format: { "mem" | "standby" | "freeze" }[,N] | |
Specify "mem" (for Suspend-to-RAM) or "standby" (for | |
standby suspend) or "freeze" (for suspend type freeze) | |
as the system sleep state during system startup with | |
the optional capability to repeat N number of times. | |
The system is woken from this state using a | |
wakeup-capable RTC alarm. | |
thash_entries= [KNL,NET] | |
Set number of hash buckets for TCP connection | |
thermal.act= [HW,ACPI] | |
-1: disable all active trip points in all thermal zones | |
<degrees C>: override all lowest active trip points | |
thermal.crt= [HW,ACPI] | |
-1: disable all critical trip points in all thermal zones | |
<degrees C>: override all critical trip points | |
thermal.off= [HW,ACPI] | |
1: disable ACPI thermal control | |
thermal.psv= [HW,ACPI] | |
-1: disable all passive trip points | |
<degrees C>: override all passive trip points to this | |
value | |
thermal.tzp= [HW,ACPI] | |
Specify global default ACPI thermal zone polling rate | |
<deci-seconds>: poll all this frequency | |
0: no polling (default) | |
thp_anon= [KNL] | |
Format: <size>[KMG],<size>[KMG]:<state>;<size>[KMG]-<size>[KMG]:<state> | |
state is one of "always", "madvise", "never" or "inherit". | |
Control the default behavior of the system with respect | |
to anonymous transparent hugepages. | |
Can be used multiple times for multiple anon THP sizes. | |
See Documentation/admin-guide/mm/transhuge.rst for more | |
details. | |
threadirqs [KNL,EARLY] | |
Force threading of all interrupt handlers except those | |
marked explicitly IRQF_NO_THREAD. | |
topology= [S390,EARLY] | |
Format: {off | on} | |
Specify if the kernel should make use of the cpu | |
topology information if the hardware supports this. | |
The scheduler will make use of this information and | |
e.g. base its process migration decisions on it. | |
Default is on. | |
torture.disable_onoff_at_boot= [KNL] | |
Prevent the CPU-hotplug component of torturing | |
until after init has spawned. | |
torture.ftrace_dump_at_shutdown= [KNL] | |
Dump the ftrace buffer at torture-test shutdown, | |
even if there were no errors. This can be a | |
very costly operation when many torture tests | |
are running concurrently, especially on systems | |
with rotating-rust storage. | |
torture.verbose_sleep_frequency= [KNL] | |
Specifies how many verbose printk()s should be | |
emitted between each sleep. The default of zero | |
disables verbose-printk() sleeping. | |
torture.verbose_sleep_duration= [KNL] | |
Duration of each verbose-printk() sleep in jiffies. | |
tpm.disable_pcr_integrity= [HW,TPM] | |
Do not protect PCR registers from unintended physical | |
access, or interposers in the bus by the means of | |
having an integrity protected session wrapped around | |
TPM2_PCR_Extend command. Consider this in a situation | |
where TPM is heavily utilized by IMA, thus protection | |
causing a major performance hit, and the space where | |
machines are deployed is by other means guarded. | |
tpm_suspend_pcr=[HW,TPM] | |
Format: integer pcr id | |
Specify that at suspend time, the tpm driver | |
should extend the specified pcr with zeros, | |
as a workaround for some chips which fail to | |
flush the last written pcr on TPM_SaveState. | |
This will guarantee that all the other pcrs | |
are saved. | |
tpm_tis.interrupts= [HW,TPM] | |
Enable interrupts for the MMIO based physical layer | |
for the FIFO interface. By default it is set to false | |
(0). For more information about TPM hardware interfaces | |
defined by Trusted Computing Group (TCG) see | |
https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ | |
tp_printk [FTRACE] | |
Have the tracepoints sent to printk as well as the | |
tracing ring buffer. This is useful for early boot up | |
where the system hangs or reboots and does not give the | |
option for reading the tracing buffer or performing a | |
ftrace_dump_on_oops. | |
To turn off having tracepoints sent to printk, | |
echo 0 > /proc/sys/kernel/tracepoint_printk | |
Note, echoing 1 into this file without the | |
tp_printk kernel cmdline option has no effect. | |
The tp_printk_stop_on_boot (see below) can also be used | |
to stop the printing of events to console at | |
late_initcall_sync. | |
** CAUTION ** | |
Having tracepoints sent to printk() and activating high | |
frequency tracepoints such as irq or sched, can cause | |
the system to live lock. | |
tp_printk_stop_on_boot [FTRACE] | |
When tp_printk (above) is set, it can cause a lot of noise | |
on the console. It may be useful to only include the | |
printing of events during boot up, as user space may | |
make the system inoperable. | |
This command line option will stop the printing of events | |
to console at the late_initcall_sync() time frame. | |
trace_buf_size=nn[KMG] | |
[FTRACE] will set tracing buffer size on each cpu. | |
trace_clock= [FTRACE] Set the clock used for tracing events | |
at boot up. | |
local - Use the per CPU time stamp counter | |
(converted into nanoseconds). Fast, but | |
depending on the architecture, may not be | |
in sync between CPUs. | |
global - Event time stamps are synchronize across | |
CPUs. May be slower than the local clock, | |
but better for some race conditions. | |
counter - Simple counting of events (1, 2, ..) | |
note, some counts may be skipped due to the | |
infrastructure grabbing the clock more than | |
once per event. | |
uptime - Use jiffies as the time stamp. | |
perf - Use the same clock that perf uses. | |
mono - Use ktime_get_mono_fast_ns() for time stamps. | |
mono_raw - Use ktime_get_raw_fast_ns() for time | |
stamps. | |
boot - Use ktime_get_boot_fast_ns() for time stamps. | |
Architectures may add more clocks. See | |
Documentation/trace/ftrace.rst for more details. | |
trace_event=[event-list] | |
[FTRACE] Set and start specified trace events in order | |
to facilitate early boot debugging. The event-list is a | |
comma-separated list of trace events to enable. See | |
also Documentation/trace/events.rst | |
trace_instance=[instance-info] | |
[FTRACE] Create a ring buffer instance early in boot up. | |
This will be listed in: | |
/sys/kernel/tracing/instances | |
Events can be enabled at the time the instance is created | |
via: | |
trace_instance=<name>,<system1>:<event1>,<system2>:<event2> | |
Note, the "<system*>:" portion is optional if the event is | |
unique. | |
trace_instance=foo,sched:sched_switch,irq_handler_entry,initcall | |
will enable the "sched_switch" event (note, the "sched:" is optional, and | |
the same thing would happen if it was left off). The irq_handler_entry | |
event, and all events under the "initcall" system. | |
Flags can be added to the instance to modify its behavior when it is | |
created. The flags are separated by '^'. | |
The available flags are: | |
traceoff - Have the tracing instance tracing disabled after it is created. | |
traceprintk - Have trace_printk() write into this trace instance | |
(note, "printk" and "trace_printk" can also be used) | |
trace_instance=foo^traceoff^traceprintk,sched,irq | |
The flags must come before the defined events. | |
If memory has been reserved (see memmap for x86), the instance | |
can use that memory: | |
memmap=12M$0x284500000 trace_instance=boot_map@0x284500000:12M | |
The above will create a "boot_map" instance that uses the physical | |
memory at 0x284500000 that is 12Megs. The per CPU buffers of that | |
instance will be split up accordingly. | |
Alternatively, the memory can be reserved by the reserve_mem option: | |
reserve_mem=12M:4096:trace trace_instance=boot_map@trace | |
This will reserve 12 megabytes at boot up with a 4096 byte alignment | |
and place the ring buffer in this memory. Note that due to KASLR, the | |
memory may not be the same location each time, which will not preserve | |
the buffer content. | |
Also note that the layout of the ring buffer data may change between | |
kernel versions where the validator will fail and reset the ring buffer | |
if the layout is not the same as the previous kernel. | |
If the ring buffer is used for persistent bootups and has events enabled, | |
it is recommend to disable tracing so that events from a previous boot do not | |
mix with events of the current boot (unless you are debugging a random crash | |
at boot up). | |
reserve_mem=12M:4096:trace trace_instance=boot_map^traceoff^traceprintk@trace,sched,irq | |
Note, saving the trace buffer across reboots does require that the system | |
is set up to not wipe memory. For instance, CONFIG_RESET_ATTACK_MITIGATION | |
can force a memory reset on boot which will clear any trace that was stored. | |
This is just one of many ways that can clear memory. Make sure your system | |
keeps the content of memory across reboots before relying on this option. | |
See also Documentation/trace/debugging.rst | |
trace_options=[option-list] | |
[FTRACE] Enable or disable tracer options at boot. | |
The option-list is a comma delimited list of options | |
that can be enabled or disabled just as if you were | |
to echo the option name into | |
/sys/kernel/tracing/trace_options | |
For example, to enable stacktrace option (to dump the | |
stack trace of each event), add to the command line: | |
trace_options=stacktrace | |
See also Documentation/trace/ftrace.rst "trace options" | |
section. | |
trace_trigger=[trigger-list] | |
[FTRACE] Add a event trigger on specific events. | |
Set a trigger on top of a specific event, with an optional | |
filter. | |
The format is is "trace_trigger=<event>.<trigger>[ if <filter>],..." | |
Where more than one trigger may be specified that are comma deliminated. | |
For example: | |
trace_trigger="sched_switch.stacktrace if prev_state == 2" | |
The above will enable the "stacktrace" trigger on the "sched_switch" | |
event but only trigger it if the "prev_state" of the "sched_switch" | |
event is "2" (TASK_UNINTERUPTIBLE). | |
See also "Event triggers" in Documentation/trace/events.rst | |
traceoff_on_warning | |
[FTRACE] enable this option to disable tracing when a | |
warning is hit. This turns off "tracing_on". Tracing can | |
be enabled again by echoing '1' into the "tracing_on" | |
file located in /sys/kernel/tracing/ | |
This option is useful, as it disables the trace before | |
the WARNING dump is called, which prevents the trace to | |
be filled with content caused by the warning output. | |
This option can also be set at run time via the sysctl | |
option: kernel/traceoff_on_warning | |
transparent_hugepage= | |
[KNL] | |
Format: [always|madvise|never] | |
Can be used to control the default behavior of the system | |
with respect to transparent hugepages. | |
See Documentation/admin-guide/mm/transhuge.rst | |
for more details. | |
trusted.source= [KEYS] | |
Format: <string> | |
This parameter identifies the trust source as a backend | |
for trusted keys implementation. Supported trust | |
sources: | |
- "tpm" | |
- "tee" | |
- "caam" | |
- "dcp" | |
If not specified then it defaults to iterating through | |
the trust source list starting with TPM and assigns the | |
first trust source as a backend which is initialized | |
successfully during iteration. | |
trusted.rng= [KEYS] | |
Format: <string> | |
The RNG used to generate key material for trusted keys. | |
Can be one of: | |
- "kernel" | |
- the same value as trusted.source: "tpm" or "tee" | |
- "default" | |
If not specified, "default" is used. In this case, | |
the RNG's choice is left to each individual trust source. | |
trusted.dcp_use_otp_key | |
This is intended to be used in combination with | |
trusted.source=dcp and will select the DCP OTP key | |
instead of the DCP UNIQUE key blob encryption. | |
trusted.dcp_skip_zk_test | |
This is intended to be used in combination with | |
trusted.source=dcp and will disable the check if the | |
blob key is all zeros. This is helpful for situations where | |
having this key zero'ed is acceptable. E.g. in testing | |
scenarios. | |
tsc= Disable clocksource stability checks for TSC. | |
Format: <string> | |
[x86] reliable: mark tsc clocksource as reliable, this | |
disables clocksource verification at runtime, as well | |
as the stability checks done at bootup. Used to enable | |
high-resolution timer mode on older hardware, and in | |
virtualized environment. | |
[x86] noirqtime: Do not use TSC to do irq accounting. | |
Used to run time disable IRQ_TIME_ACCOUNTING on any | |
platforms where RDTSC is slow and this accounting | |
can add overhead. | |
[x86] unstable: mark the TSC clocksource as unstable, this | |
marks the TSC unconditionally unstable at bootup and | |
avoids any further wobbles once the TSC watchdog notices. | |
[x86] nowatchdog: disable clocksource watchdog. Used | |
in situations with strict latency requirements (where | |
interruptions from clocksource watchdog are not | |
acceptable). | |
[x86] recalibrate: force recalibration against a HW timer | |
(HPET or PM timer) on systems whose TSC frequency was | |
obtained from HW or FW using either an MSR or CPUID(0x15). | |
Warn if the difference is more than 500 ppm. | |
[x86] watchdog: Use TSC as the watchdog clocksource with | |
which to check other HW timers (HPET or PM timer), but | |
only on systems where TSC has been deemed trustworthy. | |
This will be suppressed by an earlier tsc=nowatchdog and | |
can be overridden by a later tsc=nowatchdog. A console | |
message will flag any such suppression or overriding. | |
tsc_early_khz= [X86,EARLY] Skip early TSC calibration and use the given | |
value instead. Useful when the early TSC frequency discovery | |
procedure is not reliable, such as on overclocked systems | |
with CPUID.16h support and partial CPUID.15h support. | |
Format: <unsigned int> | |
tsx= [X86] Control Transactional Synchronization | |
Extensions (TSX) feature in Intel processors that | |
support TSX control. | |
This parameter controls the TSX feature. The options are: | |
on - Enable TSX on the system. Although there are | |
mitigations for all known security vulnerabilities, | |
TSX has been known to be an accelerator for | |
several previous speculation-related CVEs, and | |
so there may be unknown security risks associated | |
with leaving it enabled. | |
off - Disable TSX on the system. (Note that this | |
option takes effect only on newer CPUs which are | |
not vulnerable to MDS, i.e., have | |
MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1 and which get | |
the new IA32_TSX_CTRL MSR through a microcode | |
update. This new MSR allows for the reliable | |
deactivation of the TSX functionality.) | |
auto - Disable TSX if X86_BUG_TAA is present, | |
otherwise enable TSX on the system. | |
Not specifying this option is equivalent to tsx=off. | |
See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst | |
for more details. | |
tsx_async_abort= [X86,INTEL,EARLY] Control mitigation for the TSX Async | |
Abort (TAA) vulnerability. | |
Similar to Micro-architectural Data Sampling (MDS) | |
certain CPUs that support Transactional | |
Synchronization Extensions (TSX) are vulnerable to an | |
exploit against CPU internal buffers which can forward | |
information to a disclosure gadget under certain | |
conditions. | |
In vulnerable processors, the speculatively forwarded | |
data can be used in a cache side channel attack, to | |
access data to which the attacker does not have direct | |
access. | |
This parameter controls the TAA mitigation. The | |
options are: | |
full - Enable TAA mitigation on vulnerable CPUs | |
if TSX is enabled. | |
full,nosmt - Enable TAA mitigation and disable SMT on | |
vulnerable CPUs. If TSX is disabled, SMT | |
is not disabled because CPU is not | |
vulnerable to cross-thread TAA attacks. | |
off - Unconditionally disable TAA mitigation | |
On MDS-affected machines, tsx_async_abort=off can be | |
prevented by an active MDS mitigation as both vulnerabilities | |
are mitigated with the same mechanism so in order to disable | |
this mitigation, you need to specify mds=off too. | |
Not specifying this option is equivalent to | |
tsx_async_abort=full. On CPUs which are MDS affected | |
and deploy MDS mitigation, TAA mitigation is not | |
required and doesn't provide any additional | |
mitigation. | |
For details see: | |
Documentation/admin-guide/hw-vuln/tsx_async_abort.rst | |
turbografx.map[2|3]= [HW,JOY] | |
TurboGraFX parallel port interface | |
Format: | |
<port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7> | |
See also Documentation/input/devices/joystick-parport.rst | |
udbg-immortal [PPC] When debugging early kernel crashes that | |
happen after console_init() and before a proper | |
console driver takes over, this boot options might | |
help "seeing" what's going on. | |
uhash_entries= [KNL,NET] | |
Set number of hash buckets for UDP/UDP-Lite connections | |
uhci-hcd.ignore_oc= | |
[USB] Ignore overcurrent events (default N). | |
Some badly-designed motherboards generate lots of | |
bogus events, for ports that aren't wired to | |
anything. Set this parameter to avoid log spamming. | |
Note that genuine overcurrent events won't be | |
reported either. | |
unknown_nmi_panic | |
[X86] Cause panic on unknown NMI. | |
unwind_debug [X86-64,EARLY] | |
Enable unwinder debug output. This can be | |
useful for debugging certain unwinder error | |
conditions, including corrupt stacks and | |
bad/missing unwinder metadata. | |
usbcore.authorized_default= | |
[USB] Default USB device authorization: | |
(default -1 = authorized (same as 1), | |
0 = not authorized, 1 = authorized, 2 = authorized | |
if device connected to internal port) | |
usbcore.autosuspend= | |
[USB] The autosuspend time delay (in seconds) used | |
for newly-detected USB devices (default 2). This | |
is the time required before an idle device will be | |
autosuspended. Devices for which the delay is set | |
to a negative value won't be autosuspended at all. | |
usbcore.usbfs_snoop= | |
[USB] Set to log all usbfs traffic (default 0 = off). | |
usbcore.usbfs_snoop_max= | |
[USB] Maximum number of bytes to snoop in each URB | |
(default = 65536). | |
usbcore.blinkenlights= | |
[USB] Set to cycle leds on hubs (default 0 = off). | |
usbcore.old_scheme_first= | |
[USB] Start with the old device initialization | |
scheme (default 0 = off). | |
usbcore.usbfs_memory_mb= | |
[USB] Memory limit (in MB) for buffers allocated by | |
usbfs (default = 16, 0 = max = 2047). | |
usbcore.use_both_schemes= | |
[USB] Try the other device initialization scheme | |
if the first one fails (default 1 = enabled). | |
usbcore.initial_descriptor_timeout= | |
[USB] Specifies timeout for the initial 64-byte | |
USB_REQ_GET_DESCRIPTOR request in milliseconds | |
(default 5000 = 5.0 seconds). | |
usbcore.nousb [USB] Disable the USB subsystem | |
usbcore.quirks= | |
[USB] A list of quirk entries to augment the built-in | |
usb core quirk list. List entries are separated by | |
commas. Each entry has the form | |
VendorID:ProductID:Flags. The IDs are 4-digit hex | |
numbers and Flags is a set of letters. Each letter | |
will change the built-in quirk; setting it if it is | |
clear and clearing it if it is set. The letters have | |
the following meanings: | |
a = USB_QUIRK_STRING_FETCH_255 (string | |
descriptors must not be fetched using | |
a 255-byte read); | |
b = USB_QUIRK_RESET_RESUME (device can't resume | |
correctly so reset it instead); | |
c = USB_QUIRK_NO_SET_INTF (device can't handle | |
Set-Interface requests); | |
d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't | |
handle its Configuration or Interface | |
strings); | |
e = USB_QUIRK_RESET (device can't be reset | |
(e.g morph devices), don't use reset); | |
f = USB_QUIRK_HONOR_BNUMINTERFACES (device has | |
more interface descriptions than the | |
bNumInterfaces count, and can't handle | |
talking to these interfaces); | |
g = USB_QUIRK_DELAY_INIT (device needs a pause | |
during initialization, after we read | |
the device descriptor); | |
h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For | |
high speed and super speed interrupt | |
endpoints, the USB 2.0 and USB 3.0 spec | |
require the interval in microframes (1 | |
microframe = 125 microseconds) to be | |
calculated as interval = 2 ^ | |
(bInterval-1). | |
Devices with this quirk report their | |
bInterval as the result of this | |
calculation instead of the exponent | |
variable used in the calculation); | |
i = USB_QUIRK_DEVICE_QUALIFIER (device can't | |
handle device_qualifier descriptor | |
requests); | |
j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device | |
generates spurious wakeup, ignore | |
remote wakeup capability); | |
k = USB_QUIRK_NO_LPM (device can't handle Link | |
Power Management); | |
l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL | |
(Device reports its bInterval as linear | |
frames instead of the USB 2.0 | |
calculation); | |
m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs | |
to be disconnected before suspend to | |
prevent spurious wakeup); | |
n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a | |
pause after every control message); | |
o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra | |
delay after resetting its port); | |
p = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT | |
(Reduce timeout of the SET_ADDRESS | |
request from 5000 ms to 500 ms); | |
Example: quirks=0781:5580:bk,0a5c:5834:gij | |
usbhid.mousepoll= | |
[USBHID] The interval which mice are to be polled at. | |
usbhid.jspoll= | |
[USBHID] The interval which joysticks are to be polled at. | |
usbhid.kbpoll= | |
[USBHID] The interval which keyboards are to be polled at. | |
usb-storage.delay_use= | |
[UMS] The delay in seconds before a new device is | |
scanned for Logical Units (default 1). | |
Optionally the delay in milliseconds if the value has | |
suffix with "ms". | |
Example: delay_use=2567ms | |
usb-storage.quirks= | |
[UMS] A list of quirks entries to supplement or | |
override the built-in unusual_devs list. List | |
entries are separated by commas. Each entry has | |
the form VID:PID:Flags where VID and PID are Vendor | |
and Product ID values (4-digit hex numbers) and | |
Flags is a set of characters, each corresponding | |
to a common usb-storage quirk flag as follows: | |
a = SANE_SENSE (collect more than 18 bytes | |
of sense data, not on uas); | |
b = BAD_SENSE (don't collect more than 18 | |
bytes of sense data, not on uas); | |
c = FIX_CAPACITY (decrease the reported | |
device capacity by one sector); | |
d = NO_READ_DISC_INFO (don't use | |
READ_DISC_INFO command, not on uas); | |
e = NO_READ_CAPACITY_16 (don't use | |
READ_CAPACITY_16 command); | |
f = NO_REPORT_OPCODES (don't use report opcodes | |
command, uas only); | |
g = MAX_SECTORS_240 (don't transfer more than | |
240 sectors at a time, uas only); | |
h = CAPACITY_HEURISTICS (decrease the | |
reported device capacity by one | |
sector if the number is odd); | |
i = IGNORE_DEVICE (don't bind to this | |
device); | |
j = NO_REPORT_LUNS (don't use report luns | |
command, uas only); | |
k = NO_SAME (do not use WRITE_SAME, uas only) | |
l = NOT_LOCKABLE (don't try to lock and | |
unlock ejectable media, not on uas); | |
m = MAX_SECTORS_64 (don't transfer more | |
than 64 sectors = 32 KB at a time, | |
not on uas); | |
n = INITIAL_READ10 (force a retry of the | |
initial READ(10) command, not on uas); | |
o = CAPACITY_OK (accept the capacity | |
reported by the device, not on uas); | |
p = WRITE_CACHE (the device cache is ON | |
by default, not on uas); | |
r = IGNORE_RESIDUE (the device reports | |
bogus residue values, not on uas); | |
s = SINGLE_LUN (the device has only one | |
Logical Unit); | |
t = NO_ATA_1X (don't allow ATA(12) and ATA(16) | |
commands, uas only); | |
u = IGNORE_UAS (don't bind to the uas driver); | |
w = NO_WP_DETECT (don't test whether the | |
medium is write-protected). | |
y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE | |
even if the device claims no cache, | |
not on uas) | |
Example: quirks=0419:aaf5:rl,0421:0433:rc | |
user_debug= [KNL,ARM] | |
Format: <int> | |
See arch/arm/Kconfig.debug help text. | |
1 - undefined instruction events | |
2 - system calls | |
4 - invalid data aborts | |
8 - SIGSEGV faults | |
16 - SIGBUS faults | |
Example: user_debug=31 | |
userpte= | |
[X86,EARLY] Flags controlling user PTE allocations. | |
nohigh = do not allocate PTE pages in | |
HIGHMEM regardless of setting | |
of CONFIG_HIGHPTE. | |
vdso= [X86,SH,SPARC] | |
On X86_32, this is an alias for vdso32=. Otherwise: | |
vdso=1: enable VDSO (the default) | |
vdso=0: disable VDSO mapping | |
vdso32= [X86] Control the 32-bit vDSO | |
vdso32=1: enable 32-bit VDSO | |
vdso32=0 or vdso32=2: disable 32-bit VDSO | |
See the help text for CONFIG_COMPAT_VDSO for more | |
details. If CONFIG_COMPAT_VDSO is set, the default is | |
vdso32=0; otherwise, the default is vdso32=1. | |
For compatibility with older kernels, vdso32=2 is an | |
alias for vdso32=0. | |
Try vdso32=0 if you encounter an error that says: | |
dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed! | |
video= [FB,EARLY] Frame buffer configuration | |
See Documentation/fb/modedb.rst. | |
video.brightness_switch_enabled= [ACPI] | |
Format: [0|1] | |
If set to 1, on receiving an ACPI notify event | |
generated by hotkey, video driver will adjust brightness | |
level and then send out the event to user space through | |
the allocated input device. If set to 0, video driver | |
will only send out the event without touching backlight | |
brightness level. | |
default: 1 | |
virtio_mmio.device= | |
[VMMIO] Memory mapped virtio (platform) device. | |
<size>@<baseaddr>:<irq>[:<id>] | |
where: | |
<size> := size (can use standard suffixes | |
like K, M and G) | |
<baseaddr> := physical base address | |
<irq> := interrupt number (as passed to | |
request_irq()) | |
<id> := (optional) platform device id | |
example: | |
virtio_mmio.device=1K@0x100b0000:48:7 | |
Can be used multiple times for multiple devices. | |
vga= [BOOT,X86-32] Select a particular video mode | |
See Documentation/arch/x86/boot.rst and | |
Documentation/admin-guide/svga.rst. | |
Use vga=ask for menu. | |
This is actually a boot loader parameter; the value is | |
passed to the kernel using a special protocol. | |
vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y. | |
May slow down system boot speed, especially when | |
enabled on systems with a large amount of memory. | |
All options are enabled by default, and this | |
interface is meant to allow for selectively | |
enabling or disabling specific virtual memory | |
debugging features. | |
Available options are: | |
P Enable page structure init time poisoning | |
- Disable all of the above options | |
vmalloc=nn[KMG] [KNL,BOOT,EARLY] Forces the vmalloc area to have an | |
exact size of <nn>. This can be used to increase | |
the minimum size (128MB on x86, arm32 platforms). | |
It can also be used to decrease the size and leave more room | |
for directly mapped kernel RAM. Note that this parameter does | |
not exist on many other platforms (including arm64, alpha, | |
loongarch, arc, csky, hexagon, microblaze, mips, nios2, openrisc, | |
parisc, m64k, powerpc, riscv, sh, um, xtensa, s390, sparc). | |
vmcp_cma=nn[MG] [KNL,S390,EARLY] | |
Sets the memory size reserved for contiguous memory | |
allocations for the vmcp device driver. | |
vmhalt= [KNL,S390] Perform z/VM CP command after system halt. | |
Format: <command> | |
vmpanic= [KNL,S390] Perform z/VM CP command after kernel panic. | |
Format: <command> | |
vmpoff= [KNL,S390] Perform z/VM CP command after power off. | |
Format: <command> | |
vsyscall= [X86-64,EARLY] | |
Controls the behavior of vsyscalls (i.e. calls to | |
fixed addresses of 0xffffffffff600x00 from legacy | |
code). Most statically-linked binaries and older | |
versions of glibc use these calls. Because these | |
functions are at fixed addresses, they make nice | |
targets for exploits that can control RIP. | |
emulate Vsyscalls turn into traps and are emulated | |
reasonably safely. The vsyscall page is | |
readable. | |
xonly [default] Vsyscalls turn into traps and are | |
emulated reasonably safely. The vsyscall | |
page is not readable. | |
none Vsyscalls don't work at all. This makes | |
them quite hard to use for exploits but | |
might break your system. | |
vt.color= [VT] Default text color. | |
Format: 0xYX, X = foreground, Y = background. | |
Default: 0x07 = light gray on black. | |
vt.cur_default= [VT] Default cursor shape. | |
Format: 0xCCBBAA, where AA, BB, and CC are the same as | |
the parameters of the <Esc>[?A;B;Cc escape sequence; | |
see VGA-softcursor.txt. Default: 2 = underline. | |
vt.default_blu= [VT] | |
Format: <blue0>,<blue1>,<blue2>,...,<blue15> | |
Change the default blue palette of the console. | |
This is a 16-member array composed of values | |
ranging from 0-255. | |
vt.default_grn= [VT] | |
Format: <green0>,<green1>,<green2>,...,<green15> | |
Change the default green palette of the console. | |
This is a 16-member array composed of values | |
ranging from 0-255. | |
vt.default_red= [VT] | |
Format: <red0>,<red1>,<red2>,...,<red15> | |
Change the default red palette of the console. | |
This is a 16-member array composed of values | |
ranging from 0-255. | |
vt.default_utf8= | |
[VT] | |
Format=<0|1> | |
Set system-wide default UTF-8 mode for all tty's. | |
Default is 1, i.e. UTF-8 mode is enabled for all | |
newly opened terminals. | |
vt.global_cursor_default= | |
[VT] | |
Format=<-1|0|1> | |
Set system-wide default for whether a cursor | |
is shown on new VTs. Default is -1, | |
i.e. cursors will be created by default unless | |
overridden by individual drivers. 0 will hide | |
cursors, 1 will display them. | |
vt.italic= [VT] Default color for italic text; 0-15. | |
Default: 2 = green. | |
vt.underline= [VT] Default color for underlined text; 0-15. | |
Default: 3 = cyan. | |
watchdog timers [HW,WDT] For information on watchdog timers, | |
see Documentation/watchdog/watchdog-parameters.rst | |
or other driver-specific files in the | |
Documentation/watchdog/ directory. | |
watchdog_thresh= | |
[KNL] | |
Set the hard lockup detector stall duration | |
threshold in seconds. The soft lockup detector | |
threshold is set to twice the value. A value of 0 | |
disables both lockup detectors. Default is 10 | |
seconds. | |
workqueue.unbound_cpus= | |
[KNL,SMP] Specify to constrain one or some CPUs | |
to use in unbound workqueues. | |
Format: <cpu-list> | |
By default, all online CPUs are available for | |
unbound workqueues. | |
workqueue.watchdog_thresh= | |
If CONFIG_WQ_WATCHDOG is configured, workqueue can | |
warn stall conditions and dump internal state to | |
help debugging. 0 disables workqueue stall | |
detection; otherwise, it's the stall threshold | |
duration in seconds. The default value is 30 and | |
it can be updated at runtime by writing to the | |
corresponding sysfs file. | |
workqueue.panic_on_stall=<uint> | |
Panic when workqueue stall is detected by | |
CONFIG_WQ_WATCHDOG. It sets the number times of the | |
stall to trigger panic. | |
The default is 0, which disables the panic on stall. | |
workqueue.cpu_intensive_thresh_us= | |
Per-cpu work items which run for longer than this | |
threshold are automatically considered CPU intensive | |
and excluded from concurrency management to prevent | |
them from noticeably delaying other per-cpu work | |
items. Default is 10000 (10ms). | |
If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel | |
will report the work functions which violate this | |
threshold repeatedly. They are likely good | |
candidates for using WQ_UNBOUND workqueues instead. | |
workqueue.cpu_intensive_warning_thresh=<uint> | |
If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel | |
will report the work functions which violate the | |
intensive_threshold_us repeatedly. In order to prevent | |
spurious warnings, start printing only after a work | |
function has violated this threshold number of times. | |
The default is 4 times. 0 disables the warning. | |
workqueue.power_efficient | |
Per-cpu workqueues are generally preferred because | |
they show better performance thanks to cache | |
locality; unfortunately, per-cpu workqueues tend to | |
be more power hungry than unbound workqueues. | |
Enabling this makes the per-cpu workqueues which | |
were observed to contribute significantly to power | |
consumption unbound, leading to measurably lower | |
power usage at the cost of small performance | |
overhead. | |
The default value of this parameter is determined by | |
the config option CONFIG_WQ_POWER_EFFICIENT_DEFAULT. | |
workqueue.default_affinity_scope= | |
Select the default affinity scope to use for unbound | |
workqueues. Can be one of "cpu", "smt", "cache", | |
"numa" and "system". Default is "cache". For more | |
information, see the Affinity Scopes section in | |
Documentation/core-api/workqueue.rst. | |
This can be changed after boot by writing to the | |
matching /sys/module/workqueue/parameters file. All | |
workqueues with the "default" affinity scope will be | |
updated accordingly. | |
workqueue.debug_force_rr_cpu | |
Workqueue used to implicitly guarantee that work | |
items queued without explicit CPU specified are put | |
on the local CPU. This guarantee is no longer true | |
and while local CPU is still preferred work items | |
may be put on foreign CPUs. This debug option | |
forces round-robin CPU selection to flush out | |
usages which depend on the now broken guarantee. | |
When enabled, memory and cache locality will be | |
impacted. | |
writecombine= [LOONGARCH,EARLY] Control the MAT (Memory Access | |
Type) of ioremap_wc(). | |
on - Enable writecombine, use WUC for ioremap_wc() | |
off - Disable writecombine, use SUC for ioremap_wc() | |
x2apic_phys [X86-64,APIC,EARLY] Use x2apic physical mode instead of | |
default x2apic cluster mode on platforms | |
supporting x2apic. | |
xen_512gb_limit [KNL,X86-64,XEN] | |
Restricts the kernel running paravirtualized under Xen | |
to use only up to 512 GB of RAM. The reason to do so is | |
crash analysis tools and Xen tools for doing domain | |
save/restore/migration must be enabled to handle larger | |
domains. | |
xen_emul_unplug= [HW,X86,XEN,EARLY] | |
Unplug Xen emulated devices | |
Format: [unplug0,][unplug1] | |
ide-disks -- unplug primary master IDE devices | |
aux-ide-disks -- unplug non-primary-master IDE devices | |
nics -- unplug network devices | |
all -- unplug all emulated devices (NICs and IDE disks) | |
unnecessary -- unplugging emulated devices is | |
unnecessary even if the host did not respond to | |
the unplug protocol | |
never -- do not unplug even if version check succeeds | |
xen_legacy_crash [X86,XEN,EARLY] | |
Crash from Xen panic notifier, without executing late | |
panic() code such as dumping handler. | |
xen_mc_debug [X86,XEN,EARLY] | |
Enable multicall debugging when running as a Xen PV guest. | |
Enabling this feature will reduce performance a little | |
bit, so it should only be enabled for obtaining extended | |
debug data in case of multicall errors. | |
xen_msr_safe= [X86,XEN,EARLY] | |
Format: <bool> | |
Select whether to always use non-faulting (safe) MSR | |
access functions when running as Xen PV guest. The | |
default value is controlled by CONFIG_XEN_PV_MSR_SAFE. | |
xen_nopv [X86] | |
Disables the PV optimizations forcing the HVM guest to | |
run as generic HVM guest with no PV drivers. | |
This option is obsoleted by the "nopv" option, which | |
has equivalent effect for XEN platform. | |
xen_no_vector_callback | |
[KNL,X86,XEN,EARLY] Disable the vector callback for Xen | |
event channel interrupts. | |
xen_scrub_pages= [XEN] | |
Boolean option to control scrubbing pages before giving them back | |
to Xen, for use by other domains. Can be also changed at runtime | |
with /sys/devices/system/xen_memory/xen_memory0/scrub_pages. | |
Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT. | |
xen_timer_slop= [X86-64,XEN,EARLY] | |
Set the timer slop (in nanoseconds) for the virtual Xen | |
timers (default is 100000). This adjusts the minimum | |
delta of virtualized Xen timers, where lower values | |
improve timer resolution at the expense of processing | |
more timer interrupts. | |
xen.balloon_boot_timeout= [XEN] | |
The time (in seconds) to wait before giving up to boot | |
in case initial ballooning fails to free enough memory. | |
Applies only when running as HVM or PVH guest and | |
started with less memory configured than allowed at | |
max. Default is 180. | |
xen.event_eoi_delay= [XEN] | |
How long to delay EOI handling in case of event | |
storms (jiffies). Default is 10. | |
xen.event_loop_timeout= [XEN] | |
After which time (jiffies) the event handling loop | |
should start to delay EOI handling. Default is 2. | |
xen.fifo_events= [XEN] | |
Boolean parameter to disable using fifo event handling | |
even if available. Normally fifo event handling is | |
preferred over the 2-level event handling, as it is | |
fairer and the number of possible event channels is | |
much higher. Default is on (use fifo events). | |
xirc2ps_cs= [NET,PCMCIA] | |
Format: | |
<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] | |
xive= [PPC] | |
By default on POWER9 and above, the kernel will | |
natively use the XIVE interrupt controller. This option | |
allows the fallback firmware mode to be used: | |
off Fallback to firmware control of XIVE interrupt | |
controller on both pseries and powernv | |
platforms. Only useful on POWER9 and above. | |
xive.store-eoi=off [PPC] | |
By default on POWER10 and above, the kernel will use | |
stores for EOI handling when the XIVE interrupt mode | |
is active. This option allows the XIVE driver to use | |
loads instead, as on POWER9. | |
xhci-hcd.quirks [USB,KNL] | |
A hex value specifying bitmask with supplemental xhci | |
host controller quirks. Meaning of each bit can be | |
consulted in header drivers/usb/host/xhci.h. | |
xmon [PPC,EARLY] | |
Format: { early | on | rw | ro | off } | |
Controls if xmon debugger is enabled. Default is off. | |
Passing only "xmon" is equivalent to "xmon=early". | |
early Call xmon as early as possible on boot; xmon | |
debugger is called from setup_arch(). | |
on xmon debugger hooks will be installed so xmon | |
is only called on a kernel crash. Default mode, | |
i.e. either "ro" or "rw" mode, is controlled | |
with CONFIG_XMON_DEFAULT_RO_MODE. | |
rw xmon debugger hooks will be installed so xmon | |
is called only on a kernel crash, mode is write, | |
meaning SPR registers, memory and, other data | |
can be written using xmon commands. | |
ro same as "rw" option above but SPR registers, | |
memory, and other data can't be written using | |
xmon commands. | |
off xmon is disabled. |