1 ACPI ACPI support is enabled. 2 AGP AGP (Accelerated Graphics Port) is enabled. 3 ALSA ALSA sound support is enabled. 4 APIC APIC support is enabled. 5 APM Advanced Power Management support is enabled. 6 APPARMOR AppArmor support is enabled. 7 ARM ARM architecture is enabled. 8 ARM64 ARM64 architecture is enabled. 9 CLK Common clock infrastructure is enabled. 10 CMA Contiguous Memory Area support is enabled. 11 DRM Direct Rendering Management support is enabled. 12 DYNAMIC_DEBUG Build in debug messages and enable them at runtime 13 EARLY Parameter processed too early to be embedded in initrd. 14 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled 15 EFI EFI Partitioning (GPT) is enabled 16 EVM Extended Verification Module 17 FB The frame buffer device is enabled. 18 FTRACE Function tracing enabled. 19 GCOV GCOV profiling is enabled. 20 HIBERNATION HIBERNATION is enabled. 21 HW Appropriate hardware is enabled. 22 HYPER_V HYPERV support is enabled. 23 IMA Integrity measurement architecture is enabled. 24 IP_PNP IP DHCP, BOOTP, or RARP is enabled. 25 IPV6 IPv6 support is enabled. 26 ISAPNP ISA PnP code is enabled. 27 ISDN Appropriate ISDN support is enabled. 28 ISOL CPU Isolation is enabled. 29 JOY Appropriate joystick support is enabled. 30 KGDB Kernel debugger support is enabled. 31 KVM Kernel Virtual Machine support is enabled. 32 LIBATA Libata driver is enabled 33 LOONGARCH LoongArch architecture is enabled. 34 LOOP Loopback device support is enabled. 35 LP Printer support is enabled. 36 M68k M68k architecture is enabled. 37 These options have more detailed description inside of 38 Documentation/arch/m68k/kernel-options.rst. 39 MIPS MIPS architecture is enabled. 40 MOUSE Appropriate mouse support is enabled. 41 MSI Message Signaled Interrupts (PCI). 42 MTD MTD (Memory Technology Device) support is enabled. 43 NET Appropriate network support is enabled. 44 NFS Appropriate NFS support is enabled. 45 NUMA NUMA support is enabled. 46 OF Devicetree is enabled. 47 PARISC The PA-RISC architecture is enabled. 48 PCI PCI bus support is enabled. 49 PCIE PCI Express support is enabled. 50 PCMCIA The PCMCIA subsystem is enabled. 51 PNP Plug & Play support is enabled. 52 PPC PowerPC architecture is enabled. 53 PPT Parallel port support is enabled. 54 PS2 Appropriate PS/2 support is enabled. 55 PV_OPS A paravirtualized kernel is enabled. 56 RAM RAM disk support is enabled. 57 RDT Intel Resource Director Technology. 58 RISCV RISCV architecture is enabled. 59 S390 S390 architecture is enabled. 60 SCSI Appropriate SCSI support is enabled. 61 A lot of drivers have their options described inside 62 the Documentation/scsi/ sub-directory. 63 SDW SoundWire support is enabled. 64 SECURITY Different security models are enabled. 65 SELINUX SELinux support is enabled. 66 SERIAL Serial support is enabled. 67 SH SuperH architecture is enabled. 68 SMP The kernel is an SMP kernel. 69 SPARC Sparc architecture is enabled. 70 SUSPEND System suspend states are enabled. 71 SWSUSP Software suspend (hibernation) is enabled. 72 TPM TPM drivers are enabled. 73 UMS USB Mass Storage support is enabled. 74 USB USB support is enabled. 75 NVME NVMe support is enabled 76 USBHID USB Human Interface Device support is enabled. 77 V4L Video For Linux support is enabled. 78 VGA The VGA console has been enabled. 79 VMMIO Driver for memory mapped virtio devices is enabled. 80 VT Virtual terminal support is enabled. 81 WDT Watchdog support is enabled. 82 X86-32 X86-32, aka i386 architecture is enabled. 83 X86-64 X86-64 architecture is enabled. 84 X86 Either 32-bit or 64-bit x86 (same as X86-32+X86-64) 85 X86_UV SGI UV support is enabled. 86 XEN Xen support is enabled 87 XTENSA xtensa architecture is enabled. 88 89In addition, the following text indicates that the option 90 91 BOOT Is a boot loader parameter. 92 BUGS= Relates to possible processor bugs on the said processor. 93 KNL Is a kernel start-up parameter. 94 95 96Kernel parameters 97 98 accept_memory= [MM] 99 Format: { eager | lazy } 100 default: lazy 101 By default, unaccepted memory is accepted lazily to 102 avoid prolonged boot times. The lazy option will add 103 some runtime overhead until all memory is eventually 104 accepted. In most cases the overhead is negligible. 105 For some workloads or for debugging purposes 106 accept_memory=eager can be used to accept all memory 107 at once during boot. 108 109 acpi= [HW,ACPI,X86,ARM64,RISCV64,EARLY] 110 Advanced Configuration and Power Interface 111 Format: { force | on | off | strict | noirq | rsdt | 112 copy_dsdt | nospcr } 113 force -- enable ACPI if default was off 114 on -- enable ACPI but allow fallback to DT [arm64,riscv64] 115 off -- disable ACPI if default was on 116 noirq -- do not use ACPI for IRQ routing 117 strict -- Be less tolerant of platforms that are not 118 strictly ACPI specification compliant. 119 rsdt -- prefer RSDT over (default) XSDT 120 copy_dsdt -- copy DSDT to memory 121 nocmcff -- Disable firmware first mode for corrected 122 errors. This disables parsing the HEST CMC error 123 source to check if firmware has set the FF flag. This 124 may result in duplicate corrected error reports. 125 nospcr -- disable console in ACPI SPCR table as 126 default _serial_ console on ARM64 127 spcr -- enable console in ACPI SPCR table as 128 default _serial_ console on x86 129 For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or 130 "acpi=nospcr" are available 131 For RISCV64, ONLY "acpi=off", "acpi=on" or "acpi=force" 132 are available 133 134 See also Documentation/power/runtime_pm.rst, pci=noacpi 135 136 acpi_apic_instance= [ACPI,IOAPIC,EARLY] 137 Format: <int> 138 2: use 2nd APIC table, if available 139 1,0: use 1st APIC table 140 default: 0 141 142 acpi_backlight= [HW,ACPI] 143 { vendor | video | native | none } 144 If set to vendor, prefer vendor-specific driver 145 (e.g. thinkpad_acpi, sony_acpi, etc.) instead 146 of the ACPI video.ko driver. 147 If set to video, use the ACPI video.ko driver. 148 If set to native, use the device's native backlight mode. 149 If set to none, disable the ACPI backlight interface. 150 151 acpi_force_32bit_fadt_addr [ACPI,EARLY] 152 force FADT to use 32 bit addresses rather than the 153 64 bit X_* addresses. Some firmware have broken 64 154 bit addresses for force ACPI ignore these and use 155 the older legacy 32 bit addresses. 156 157 acpica_no_return_repair [HW, ACPI] 158 Disable AML predefined validation mechanism 159 This mechanism can repair the evaluation result to make 160 the return objects more ACPI specification compliant. 161 This option is useful for developers to identify the 162 root cause of an AML interpreter issue when the issue 163 has something to do with the repair mechanism. 164 165 acpi.debug_layer= [HW,ACPI,ACPI_DEBUG] 166 acpi.debug_level= [HW,ACPI,ACPI_DEBUG] 167 Format: <int> 168 CONFIG_ACPI_DEBUG must be enabled to produce any ACPI 169 debug output. Bits in debug_layer correspond to a 170 _COMPONENT in an ACPI source file, e.g., 171 #define _COMPONENT ACPI_EVENTS 172 Bits in debug_level correspond to a level in 173 ACPI_DEBUG_PRINT statements, e.g., 174 ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... 175 The debug_level mask defaults to "info". See 176 Documentation/firmware-guide/acpi/debug.rst for more information about 177 debug layers and levels. 178 179 Enable processor driver info messages: 180 acpi.debug_layer=0x20000000 181 Enable AML "Debug" output, i.e., stores to the Debug 182 object while interpreting AML: 183 acpi.debug_layer=0xffffffff acpi.debug_level=0x2 184 Enable all messages related to ACPI hardware: 185 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff 186 187 Some values produce so much output that the system is 188 unusable. The "log_buf_len" parameter may be useful 189 if you need to capture more output. 190 191 acpi.poweroff_on_fatal= [ACPI] 192 {0 | 1} 193 Causes the system to poweroff when the ACPI bytecode signals 194 a fatal error. The default value of this setting is 1. 195 Overriding this value should only be done for diagnosing 196 ACPI firmware problems, as the system might behave erratically 197 after having encountered a fatal ACPI error. 198 199 acpi_enforce_resources= [ACPI] 200 { strict | lax | no } 201 Check for resource conflicts between native drivers 202 and ACPI OperationRegions (SystemIO and SystemMemory 203 only). IO ports and memory declared in ACPI might be 204 used by the ACPI subsystem in arbitrary AML code and 205 can interfere with legacy drivers. 206 strict (default): access to resources claimed by ACPI 207 is denied; legacy drivers trying to access reserved 208 resources will fail to bind to device using them. 209 lax: access to resources claimed by ACPI is allowed; 210 legacy drivers trying to access reserved resources 211 will bind successfully but a warning message is logged. 212 no: ACPI OperationRegions are not marked as reserved, 213 no further checks are performed. 214 215 acpi_force_table_verification [HW,ACPI,EARLY] 216 Enable table checksum verification during early stage. 217 By default, this is disabled due to x86 early mapping 218 size limitation. 219 220 acpi_irq_balance [HW,ACPI] 221 ACPI will balance active IRQs 222 default in APIC mode 223 224 acpi_irq_nobalance [HW,ACPI] 225 ACPI will not move active IRQs (default) 226 default in PIC mode 227 228 acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA 229 Format: <irq>,<irq>... 230 231 acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for 232 use by PCI 233 Format: <irq>,<irq>... 234 235 acpi_mask_gpe= [HW,ACPI] 236 Due to the existence of _Lxx/_Exx, some GPEs triggered 237 by unsupported hardware/firmware features can result in 238 GPE floodings that cannot be automatically disabled by 239 the GPE dispatcher. 240 This facility can be used to prevent such uncontrolled 241 GPE floodings. 242 Format: <byte> or <bitmap-list> 243 244 acpi_no_auto_serialize [HW,ACPI] 245 Disable auto-serialization of AML methods 246 AML control methods that contain the opcodes to create 247 named objects will be marked as "Serialized" by the 248 auto-serialization feature. 249 This feature is enabled by default. 250 This option allows to turn off the feature. 251 252 acpi_no_memhotplug [ACPI] Disable memory hotplug. Useful for kdump 253 kernels. 254 255 acpi_no_static_ssdt [HW,ACPI,EARLY] 256 Disable installation of static SSDTs at early boot time 257 By default, SSDTs contained in the RSDT/XSDT will be 258 installed automatically and they will appear under 259 /sys/firmware/acpi/tables. 260 This option turns off this feature. 261 Note that specifying this option does not affect 262 dynamic table installation which will install SSDT 263 tables to /sys/firmware/acpi/tables/dynamic. 264 265 acpi_no_watchdog [HW,ACPI,WDT] 266 Ignore the ACPI-based watchdog interface (WDAT) and let 267 a native driver control the watchdog device instead. 268 269 acpi_rsdp= [ACPI,EFI,KEXEC,EARLY] 270 Pass the RSDP address to the kernel, mostly used 271 on machines running EFI runtime service to boot the 272 second kernel for kdump. 273 274 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS 275 Format: To spoof as Windows 98: ="Microsoft Windows" 276 277 acpi_rev_override [ACPI] Override the _REV object to return 5 (instead 278 of 2 which is mandated by ACPI 6) as the supported ACPI 279 specification revision (when using this switch, it may 280 be necessary to carry out a cold reboot _twice_ in a 281 row to make it take effect on the platform firmware). 282 283 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings 284 acpi_osi="string1" # add string1 285 acpi_osi="!string2" # remove string2 286 acpi_osi=!* # remove all strings 287 acpi_osi=! # disable all built-in OS vendor 288 strings 289 acpi_osi=!! # enable all built-in OS vendor 290 strings 291 acpi_osi= # disable all strings 292 293 'acpi_osi=!' can be used in combination with single or 294 multiple 'acpi_osi="string1"' to support specific OS 295 vendor string(s). Note that such command can only 296 affect the default state of the OS vendor strings, thus 297 it cannot affect the default state of the feature group 298 strings and the current state of the OS vendor strings, 299 specifying it multiple times through kernel command line 300 is meaningless. This command is useful when one do not 301 care about the state of the feature group strings which 302 should be controlled by the OSPM. 303 Examples: 304 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent 305 to 'acpi_osi="Windows 2000" acpi_osi=!', they all 306 can make '_OSI("Windows 2000")' TRUE. 307 308 'acpi_osi=' cannot be used in combination with other 309 'acpi_osi=' command lines, the _OSI method will not 310 exist in the ACPI namespace. NOTE that such command can 311 only affect the _OSI support state, thus specifying it 312 multiple times through kernel command line is also 313 meaningless. 314 Examples: 315 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)' 316 FALSE. 317 318 'acpi_osi=!*' can be used in combination with single or 319 multiple 'acpi_osi="string1"' to support specific 320 string(s). Note that such command can affect the 321 current state of both the OS vendor strings and the 322 feature group strings, thus specifying it multiple times 323 through kernel command line is meaningful. But it may 324 still not able to affect the final state of a string if 325 there are quirks related to this string. This command 326 is useful when one want to control the state of the 327 feature group strings to debug BIOS issues related to 328 the OSPM features. 329 Examples: 330 1. 'acpi_osi="Module Device" acpi_osi=!*' can make 331 '_OSI("Module Device")' FALSE. 332 2. 'acpi_osi=!* acpi_osi="Module Device"' can make 333 '_OSI("Module Device")' TRUE. 334 3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is 335 equivalent to 336 'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"' 337 and 338 'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!', 339 they all will make '_OSI("Windows 2000")' TRUE. 340 341 acpi_pm_good [X86] 342 Override the pmtimer bug detection: force the kernel 343 to assume that this machine's pmtimer latches its value 344 and always returns good values. 345 346 acpi_sci= [HW,ACPI,EARLY] ACPI System Control Interrupt trigger mode 347 Format: { level | edge | high | low } 348 349 acpi_skip_timer_override [HW,ACPI,EARLY] 350 Recognize and ignore IRQ0/pin2 Interrupt Override. 351 For broken nForce2 BIOS resulting in XT-PIC timer. 352 353 acpi_sleep= [HW,ACPI] Sleep options 354 Format: { s3_bios, s3_mode, s3_beep, s4_hwsig, 355 s4_nohwsig, old_ordering, nonvs, 356 sci_force_enable, nobl } 357 See Documentation/power/video.rst for information on 358 s3_bios and s3_mode. 359 s3_beep is for debugging; it makes the PC's speaker beep 360 as soon as the kernel's real-mode entry point is called. 361 s4_hwsig causes the kernel to check the ACPI hardware 362 signature during resume from hibernation, and gracefully 363 refuse to resume if it has changed. This complies with 364 the ACPI specification but not with reality, since 365 Windows does not do this and many laptops do change it 366 on docking. So the default behaviour is to allow resume 367 and simply warn when the signature changes, unless the 368 s4_hwsig option is enabled. 369 s4_nohwsig prevents ACPI hardware signature from being 370 used (or even warned about) during resume. 371 old_ordering causes the ACPI 1.0 ordering of the _PTS 372 control method, with respect to putting devices into 373 low power states, to be enforced (the ACPI 2.0 ordering 374 of _PTS is used by default). 375 nonvs prevents the kernel from saving/restoring the 376 ACPI NVS memory during suspend/hibernation and resume. 377 sci_force_enable causes the kernel to set SCI_EN directly 378 on resume from S1/S3 (which is against the ACPI spec, 379 but some broken systems don't work without it). 380 nobl causes the internal blacklist of systems known to 381 behave incorrectly in some ways with respect to system 382 suspend and resume to be ignored (use wisely). 383 384 acpi_use_timer_override [HW,ACPI,EARLY] 385 Use timer override. For some broken Nvidia NF5 boards 386 that require a timer override, but don't have HPET 387 388 add_efi_memmap [EFI,X86,EARLY] Include EFI memory map in 389 kernel's map of available physical RAM. 390 391 agp= [AGP] 392 { off | try_unsupported } 393 off: disable AGP support 394 try_unsupported: try to drive unsupported chipsets 395 (may crash computer or cause data corruption) 396 397 ALSA [HW,ALSA] 398 See Documentation/sound/alsa-configuration.rst 399 400 alignment= [KNL,ARM] 401 Allow the default userspace alignment fault handler 402 behaviour to be specified. Bit 0 enables warnings, 403 bit 1 enables fixups, and bit 2 sends a segfault. 404 405 align_va_addr= [X86-64] 406 Align virtual addresses by clearing slice [14:12] when 407 allocating a VMA at process creation time. This option 408 gives you up to 3% performance improvement on AMD F15h 409 machines (where it is enabled by default) for a 410 CPU-intensive style benchmark, and it can vary highly in 411 a microbenchmark depending on workload and compiler. 412 413 32: only for 32-bit processes 414 64: only for 64-bit processes 415 on: enable for both 32- and 64-bit processes 416 off: disable for both 32- and 64-bit processes 417 418 alloc_snapshot [FTRACE] 419 Allocate the ftrace snapshot buffer on boot up when the 420 main buffer is allocated. This is handy if debugging 421 and you need to use tracing_snapshot() on boot up, and 422 do not want to use tracing_snapshot_alloc() as it needs 423 to be done where GFP_KERNEL allocations are allowed. 424 425 allow_mismatched_32bit_el0 [ARM64,EARLY] 426 Allow execve() of 32-bit applications and setting of the 427 PER_LINUX32 personality on systems where only a strict 428 subset of the CPUs support 32-bit EL0. When this 429 parameter is present, the set of CPUs supporting 32-bit 430 EL0 is indicated by /sys/devices/system/cpu/aarch32_el0 431 and hot-unplug operations may be restricted. 432 433 See Documentation/arch/arm64/asymmetric-32bit.rst for more 434 information. 435 436 amd_iommu= [HW,X86-64] 437 Pass parameters to the AMD IOMMU driver in the system. 438 Possible values are: 439 fullflush - Deprecated, equivalent to iommu.strict=1 440 off - do not initialize any AMD IOMMU found in 441 the system 442 force_isolation - Force device isolation for all 443 devices. The IOMMU driver is not 444 allowed anymore to lift isolation 445 requirements as needed. This option 446 does not override iommu=pt 447 force_enable - Force enable the IOMMU on platforms known 448 to be buggy with IOMMU enabled. Use this 449 option with care. 450 pgtbl_v1 - Use v1 page table for DMA-API (Default). 451 pgtbl_v2 - Use v2 page table for DMA-API. 452 irtcachedis - Disable Interrupt Remapping Table (IRT) caching. 453 nohugepages - Limit page-sizes used for v1 page-tables 454 to 4 KiB. 455 v2_pgsizes_only - Limit page-sizes used for v1 page-tables 456 to 4KiB/2Mib/1GiB. 457 458 459 amd_iommu_dump= [HW,X86-64] 460 Enable AMD IOMMU driver option to dump the ACPI table 461 for AMD IOMMU. With this option enabled, AMD IOMMU 462 driver will print ACPI tables for AMD IOMMU during 463 IOMMU initialization. 464 465 amd_iommu_intr= [HW,X86-64] 466 Specifies one of the following AMD IOMMU interrupt 467 remapping modes: 468 legacy - Use legacy interrupt remapping mode. 469 vapic - Use virtual APIC mode, which allows IOMMU 470 to inject interrupts directly into guest. 471 This mode requires kvm-amd.avic=1. 472 (Default when IOMMU HW support is present.) 473 474 amd_pstate= [X86,EARLY] 475 disable 476 Do not enable amd_pstate as the default 477 scaling driver for the supported processors 478 passive 479 Use amd_pstate with passive mode as a scaling driver. 480 In this mode autonomous selection is disabled. 481 Driver requests a desired performance level and platform 482 tries to match the same performance level if it is 483 satisfied by guaranteed performance level. 484 active 485 Use amd_pstate_epp driver instance as the scaling driver, 486 driver provides a hint to the hardware if software wants 487 to bias toward performance (0x0) or energy efficiency (0xff) 488 to the CPPC firmware. then CPPC power algorithm will 489 calculate the runtime workload and adjust the realtime cores 490 frequency. 491 guided 492 Activate guided autonomous mode. Driver requests minimum and 493 maximum performance level and the platform autonomously 494 selects a performance level in this range and appropriate 495 to the current workload. 496 497 amd_prefcore= 498 [X86] 499 disable 500 Disable amd-pstate preferred core. 501 502 amd_dynamic_epp= 503 [X86] 504 disable 505 Disable amd-pstate dynamic EPP. 506 enable 507 Enable amd-pstate dynamic EPP. 508 509 amijoy.map= [HW,JOY] Amiga joystick support 510 Map of devices attached to JOY0DAT and JOY1DAT 511 Format: <a>,<b> 512 See also Documentation/input/joydev/joystick.rst 513 514 analog.map= [HW,JOY] Analog joystick and gamepad support 515 Specifies type or capabilities of an analog joystick 516 connected to one of 16 gameports 517 Format: <type1>,<type2>,..<type16> 518 519 apc= [HW,SPARC] 520 Power management functions (SPARCstation-4/5 + deriv.) 521 Format: noidle 522 Disable APC CPU standby support. SPARCstation-Fox does 523 not play well with APC CPU idle - disable it if you have 524 APC and your system crashes randomly. 525 526 apic [APIC,X86-64] Use IO-APIC. Default. 527 528 apic= [APIC,X86,EARLY] Advanced Programmable Interrupt Controller 529 Change the output verbosity while booting 530 Format: { quiet (default) | verbose | debug } 531 Change the amount of debugging information output 532 when initialising the APIC and IO-APIC components. 533 534 apic_extnmi= [APIC,X86,EARLY] External NMI delivery setting 535 Format: { bsp (default) | all | none } 536 bsp: External NMI is delivered only to CPU 0 537 all: External NMIs are broadcast to all CPUs as a 538 backup of CPU 0 539 none: External NMI is masked for all CPUs. This is 540 useful so that a dump capture kernel won't be 541 shot down by NMI 542 543 apicpmtimer Do APIC timer calibration using the pmtimer. Implies 544 apicmaintimer. Useful when your PIT timer is totally 545 broken. 546 547 autoconf= [IPV6] 548 See Documentation/networking/ipv6.rst. 549 550 apm= [APM] Advanced Power Management 551 See header of arch/x86/kernel/apm_32.c. 552 553 apparmor= [APPARMOR] Disable or enable AppArmor at boot time 554 Format: { "0" | "1" } 555 See security/apparmor/Kconfig help text 556 0 -- disable. 557 1 -- enable. 558 Default value is set via kernel config option. 559 560 arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards 561 Format: <io>,<irq>,<nodeID> 562 563 arm64.no32bit_el0 [ARM64] Unconditionally disable the execution of 564 32 bit applications. 565 566 arm64.nobti [ARM64] Unconditionally disable Branch Target 567 Identification support 568 569 arm64.nogcs [ARM64] Unconditionally disable Guarded Control Stack 570 support 571 572 arm64.nomops [ARM64] Unconditionally disable Memory Copy and Memory 573 Set instructions support 574 575 arm64.nompam [ARM64] Unconditionally disable Memory Partitioning And 576 Monitoring support 577 578 arm64.nomte [ARM64] Unconditionally disable Memory Tagging Extension 579 support 580 581 arm64.nopauth [ARM64] Unconditionally disable Pointer Authentication 582 support 583 584 arm64.nosme [ARM64] Unconditionally disable Scalable Matrix 585 Extension support 586 587 arm64.nosve [ARM64] Unconditionally disable Scalable Vector 588 Extension support 589 590 ataflop= [HW,M68k] 591 592 atarimouse= [HW,MOUSE] Atari Mouse 593 594 atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess, 595 EzKey and similar keyboards 596 597 atkbd.reset= [HW] Reset keyboard during initialization 598 599 atkbd.set= [HW] Select keyboard code set 600 Format: <int> (2 = AT (default), 3 = PS/2) 601 602 atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar 603 keyboards 604 605 atkbd.softraw= [HW] Choose between synthetic and real raw mode 606 Format: <bool> (0 = real, 1 = synthetic (default)) 607 608 atkbd.softrepeat= [HW] 609 Use software keyboard repeat 610 611 audit= [KNL] Enable the audit sub-system 612 Format: { "0" | "1" | "off" | "on" } 613 0 | off - kernel audit is disabled and can not be 614 enabled until the next reboot 615 unset - kernel audit is initialized but disabled and 616 will be fully enabled by the userspace auditd. 617 1 | on - kernel audit is initialized and partially 618 enabled, storing at most audit_backlog_limit 619 messages in RAM until it is fully enabled by the 620 userspace auditd. 621 Default: unset 622 623 audit_backlog_limit= [KNL] Set the audit queue size limit. 624 Format: <int> (must be >=0) 625 Default: 64 626 627 bau= [X86_UV] Enable the BAU on SGI UV. The default 628 behavior is to disable the BAU (i.e. bau=0). 629 Format: { "0" | "1" } 630 0 - Disable the BAU. 631 1 - Enable the BAU. 632 unset - Disable the BAU. 633 634 bdev_allow_write_mounted= 635 Format: <bool> 636 Control the ability to open a mounted block device 637 for writing, i.e., allow / disallow writes that bypass 638 the FS. This was implemented as a means to prevent 639 fuzzers from crashing the kernel by overwriting the 640 metadata underneath a mounted FS without its awareness. 641 This also prevents destructive formatting of mounted 642 filesystems by naive storage tooling that don't use 643 O_EXCL. Default is Y and can be changed through the 644 Kconfig option CONFIG_BLK_DEV_WRITE_MOUNTED. 645 646 bert_disable [ACPI] 647 Disable BERT OS support on buggy BIOSes. 648 649 bgrt_disable [ACPI,X86,EARLY] 650 Disable BGRT to avoid flickering OEM logo. 651 652 blkdevparts= Manual partition parsing of block device(s) for 653 embedded devices based on command line input. 654 See Documentation/block/cmdline-partition.rst 655 656 boot_delay= [KNL,EARLY] 657 Milliseconds to delay each printk during boot. 658 Only works if CONFIG_BOOT_PRINTK_DELAY is enabled, 659 and you may also have to specify "lpj=". Boot_delay 660 values larger than 10 seconds (10000) are assumed 661 erroneous and ignored. 662 Format: integer 663 664 bootconfig [KNL,EARLY] 665 Extended command line options can be added to an initrd 666 and this will cause the kernel to look for it. 667 668 See Documentation/admin-guide/bootconfig.rst 669 670 bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards) 671 bttv.radio= Most important insmod options are available as 672 kernel args too. 673 bttv.pll= See Documentation/admin-guide/media/bttv.rst 674 bttv.tuner= 675 676 bulk_remove=off [PPC] This parameter disables the use of the pSeries 677 firmware feature for flushing multiple hpte entries 678 at a time. 679 680 c101= [NET] Moxa C101 synchronous serial card 681 682 cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection. 683 Sometimes CPU hardware bugs make them report the cache 684 size incorrectly. The kernel will attempt work arounds 685 to fix known problems, but for some CPUs it is not 686 possible to determine what the correct size should be. 687 This option provides an override for these situations. 688 689 carrier_timeout= 690 [NET] Specifies amount of time (in seconds) that 691 the kernel should wait for a network carrier. By default 692 it waits 120 seconds. 693 694 ca_keys= [KEYS] This parameter identifies a specific key(s) on 695 the system trusted keyring to be used for certificate 696 trust validation. 697 format: { id:<keyid> | builtin } 698 699 cca= [MIPS,EARLY] Override the kernel pages' cache coherency 700 algorithm. Accepted values range from 0 to 7 701 inclusive. See arch/mips/include/asm/pgtable-bits.h 702 for platform specific values (SB1, Loongson3 and 703 others). 704 705 ccw_timeout_log [S390] 706 See Documentation/arch/s390/common_io.rst for details. 707 708 cfi= [X86-64] Set Control Flow Integrity checking features 709 when CONFIG_FINEIBT is enabled. 710 Format: feature[,feature...] 711 Default: auto 712 713 auto: Use FineIBT if IBT available, otherwise kCFI. 714 Under FineIBT, enable "paranoid" mode when 715 FRED is not available. 716 off: Turn off CFI checking. 717 kcfi: Use kCFI (disable FineIBT). 718 fineibt: Use FineIBT (even if IBT not available). 719 norand: Do not re-randomize CFI hashes. 720 paranoid: Add caller hash checking under FineIBT. 721 bhi: Enable register poisoning to stop speculation 722 across FineIBT. (Disabled by default.) 723 warn: Do not enforce CFI checking: warn only. 724 debug: Report CFI initialization details. 725 726 cgroup_disable= [KNL] Disable a particular controller or optional feature 727 Format: {name of the controller(s) or feature(s) to disable} 728 The effects of cgroup_disable=foo are: 729 - foo isn't auto-mounted if you mount all cgroups in 730 a single hierarchy 731 - foo isn't visible as an individually mountable 732 subsystem 733 - if foo is an optional feature then the feature is 734 disabled and corresponding cgroup files are not 735 created 736 {Currently only "memory" controller deal with this and 737 cut the overhead, others just disable the usage. So 738 only cgroup_disable=memory is actually worthy} 739 Specifying "pressure" disables per-cgroup pressure 740 stall information accounting feature 741 742 cgroup_no_v1= [KNL] Disable cgroup controllers and named hierarchies in v1 743 Format: { { controller | "all" | "named" } 744 [,{ controller | "all" | "named" }...] } 745 Like cgroup_disable, but only applies to cgroup v1; 746 the blacklisted controllers remain available in cgroup2. 747 "all" blacklists all controllers and "named" disables 748 named mounts. Specifying both "all" and "named" disables 749 all v1 hierarchies. 750 751 cgroup_v1_proc= [KNL] Show also missing controllers in /proc/cgroups 752 Format: { "true" | "false" } 753 /proc/cgroups lists only v1 controllers by default. 754 This compatibility option enables listing also v2 755 controllers (whose v1 code is not compiled!), so that 756 semi-legacy software can check this file to decide 757 about usage of v2 (sic) controllers. 758 759 cgroup_favordynmods= [KNL] Enable or Disable favordynmods. 760 Format: { "true" | "false" } 761 Defaults to the value of CONFIG_CGROUP_FAVOR_DYNMODS. 762 763 cgroup.memory= [KNL] Pass options to the cgroup memory controller. 764 Format: <string> 765 nosocket -- Disable socket memory accounting. 766 nokmem -- Disable kernel memory accounting. 767 nobpf -- Disable BPF memory accounting. 768 769 check_pages= [MM,EARLY] Enable sanity checking of pages after 770 allocations / before freeing. This adds checks to catch 771 double-frees, use-after-frees, and other sources of 772 page corruption by inspecting page internals (flags, 773 mapcount/refcount, memcg_data, etc.). 774 Format: { "0" | "1" } 775 Default: 0 (1 if CONFIG_DEBUG_VM is set) 776 777 checkreqprot= [SELINUX] Set initial checkreqprot flag value. 778 Format: { "0" | "1" } 779 See security/selinux/Kconfig help text. 780 0 -- check protection applied by kernel (includes 781 any implied execute protection). 782 1 -- check protection requested by application. 783 Default value is set via a kernel config option. 784 Value can be changed at runtime via 785 /sys/fs/selinux/checkreqprot. 786 Setting checkreqprot to 1 is deprecated. 787 788 cio_ignore= [S390] 789 See Documentation/arch/s390/common_io.rst for details. 790 791 clearcpuid=X[,X...] [X86] 792 Disable CPUID feature X for the kernel. See 793 arch/x86/include/asm/cpufeatures.h for the valid bit 794 numbers X. Note the Linux-specific bits are not necessarily 795 stable over kernel options, but the vendor-specific 796 ones should be. 797 X can also be a string as appearing in the flags: line 798 in /proc/cpuinfo which does not have the above 799 instability issue. However, not all features have names 800 in /proc/cpuinfo. 801 Note that using this option will taint your kernel. 802 Also note that user programs calling CPUID directly 803 or using the feature without checking anything 804 will still see it. This just prevents it from 805 being used by the kernel or shown in /proc/cpuinfo. 806 Also note the kernel might malfunction if you disable 807 some critical bits. 808 809 clk_ignore_unused 810 [CLK] 811 Prevents the clock framework from automatically gating 812 clocks that have not been explicitly enabled by a Linux 813 device driver but are enabled in hardware at reset or 814 by the bootloader/firmware. Note that this does not 815 force such clocks to be always-on nor does it reserve 816 those clocks in any way. This parameter is useful for 817 debug and development, but should not be needed on a 818 platform with proper driver support. For more 819 information, see Documentation/driver-api/clk.rst. 820 821 clock= [BUGS=X86-32, HW] gettimeofday clocksource override. 822 [Deprecated] 823 Forces specified clocksource (if available) to be used 824 when calculating gettimeofday(). If specified 825 clocksource is not available, it defaults to PIT. 826 Format: { pit | tsc | cyclone | pmtmr } 827 828 clocksource= Override the default clocksource 829 Format: <string> 830 Override the default clocksource and use the clocksource 831 with the name specified. 832 Some clocksource names to choose from, depending on 833 the platform: 834 [all] jiffies (this is the base, fallback clocksource) 835 [ACPI] acpi_pm 836 [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, 837 pxa_timer,timer3,32k_counter,timer0_1 838 [X86-32] pit,hpet,tsc; 839 scx200_hrt on Geode; cyclone on IBM x440 840 [MIPS] MIPS 841 [PARISC] cr16 842 [S390] tod 843 [SH] SuperH 844 [SPARC64] tick 845 [X86-64] hpet,tsc 846 847 clocksource.arm_arch_timer.evtstrm= 848 [ARM,ARM64,EARLY] 849 Format: <bool> 850 Enable/disable the eventstream feature of the ARM 851 architected timer so that code using WFE-based polling 852 loops can be debugged more effectively on production 853 systems. 854 855 clocksource.verify_n_cpus= [KNL] 856 Limit the number of CPUs checked for clocksources 857 marked with CLOCK_SOURCE_VERIFY_PERCPU that 858 are marked unstable due to excessive skew. 859 A negative value says to check all CPUs, while 860 zero says not to check any. Values larger than 861 nr_cpu_ids are silently truncated to nr_cpu_ids. 862 The actual CPUs are chosen randomly, with 863 no replacement if the same CPU is chosen twice. 864 865 clocksource-wdtest.holdoff= [KNL] 866 Set the time in seconds that the clocksource 867 watchdog test waits before commencing its tests. 868 Defaults to zero when built as a module and to 869 10 seconds when built into the kernel. 870 871 cma=nn[MG]@[start[MG][-end[MG]]] 872 [KNL,CMA,EARLY] 873 Sets the size of kernel global memory area for 874 contiguous memory allocations and optionally the 875 placement constraint by the physical address range of 876 memory allocations. A value of 0 disables CMA 877 altogether. For more information, see 878 kernel/dma/contiguous.c 879 880 cma_pernuma=nn[MG] 881 [KNL,CMA,EARLY] 882 Sets the size of kernel per-numa memory area for 883 contiguous memory allocations. A value of 0 disables 884 per-numa CMA altogether. And If this option is not 885 specified, the default value is 0. 886 With per-numa CMA enabled, DMA users on node nid will 887 first try to allocate buffer from the pernuma area 888 which is located in node nid, if the allocation fails, 889 they will fallback to the global default memory area. 890 891 numa_cma=<node>:nn[MG][,<node>:nn[MG]] 892 [KNL,CMA,EARLY] 893 Sets the size of kernel numa memory area for 894 contiguous memory allocations. It will reserve CMA 895 area for the specified node. 896 897 With numa CMA enabled, DMA users on node nid will 898 first try to allocate buffer from the numa area 899 which is located in node nid, if the allocation fails, 900 they will fallback to the global default memory area. 901 902 cmo_free_hint= [PPC] Format: { yes | no } 903 Specify whether pages are marked as being inactive 904 when they are freed. This is used in CMO environments 905 to determine OS memory pressure for page stealing by 906 a hypervisor. 907 Default: yes 908 909 coherent_pool=nn[KMG] [ARM,KNL,EARLY] 910 Sets the size of memory pool for coherent, atomic dma 911 allocations, by default set to 256K. 912 913 com20020= [HW,NET] ARCnet - COM20020 chipset 914 Format: 915 <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]] 916 917 com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers) 918 Format: <io>[,<irq>] 919 920 com90xx= [HW,NET] 921 ARCnet - COM90xx chipset (memory-mapped buffers) 922 Format: <io>[,<irq>[,<memstart>]] 923 924 condev= [HW,S390] console device 925 conmode= 926 927 con3215_drop= [S390,EARLY] 3215 console drop mode. 928 Format: y|n|Y|N|1|0 929 When set to true, drop data on the 3215 console when 930 the console buffer is full. In this case the 931 operator using a 3270 terminal emulator (for example 932 x3270) does not have to enter the clear key for the 933 console output to advance and the kernel to continue. 934 This leads to a much faster boot time when a 3270 935 terminal emulator is active. If no 3270 terminal 936 emulator is used, this parameter has no effect. 937 938 console= [KNL] Output console device and options. 939 940 tty<n> Use the virtual console device <n>. 941 942 ttyS<n>[,options] 943 ttyUSB0[,options] 944 Use the specified serial port. The options are of 945 the form "bbbbpnf", where "bbbb" is the baud rate, 946 "p" is parity ("n", "o", or "e"), "n" is number of 947 bits, and "f" is flow control ("r" for RTS or 948 omit it). Default is "9600n8". 949 950 See Documentation/admin-guide/serial-console.rst for more 951 information. See 952 Documentation/networking/netconsole.rst for an 953 alternative. 954 955 <DEVNAME>:<n>.<n>[,options] 956 Use the specified serial port on the serial core bus. 957 The addressing uses DEVNAME of the physical serial port 958 device, followed by the serial core controller instance, 959 and the serial port instance. The options are the same 960 as documented for the ttyS addressing above. 961 962 The mapping of the serial ports to the tty instances 963 can be viewed with: 964 965 $ ls -d /sys/bus/serial-base/devices/*:*.*/tty/* 966 /sys/bus/serial-base/devices/00:04:0.0/tty/ttyS0 967 968 In the above example, the console can be addressed with 969 console=00:04:0.0. Note that a console addressed this 970 way will only get added when the related device driver 971 is ready. The use of an earlycon parameter in addition to 972 the console may be desired for console output early on. 973 974 uart[8250],io,<addr>[,options] 975 uart[8250],mmio,<addr>[,options] 976 uart[8250],mmio16,<addr>[,options] 977 uart[8250],mmio32,<addr>[,options] 978 uart[8250],0x<addr>[,options] 979 Start an early, polled-mode console on the 8250/16550 980 UART at the specified I/O port or MMIO address, 981 switching to the matching ttyS device later. 982 MMIO inter-register address stride is either 8-bit 983 (mmio), 16-bit (mmio16), or 32-bit (mmio32). 984 If none of [io|mmio|mmio16|mmio32], <addr> is assumed 985 to be equivalent to 'mmio'. 'options' are specified in 986 the same format described for ttyS above; if unspecified, 987 the h/w is not re-initialized. 988 989 hvc<n> Use the hypervisor console device <n>. This is for 990 both Xen and PowerPC hypervisors. 991 992 { null | "" } 993 Use to disable console output, i.e., to have kernel 994 console messages discarded. 995 This must be the only console= parameter used on the 996 kernel command line. 997 998 If the device connected to the port is not a TTY but a braille 999 device, prepend "brl," before the device type, for instance 1000 console=brl,ttyS0 1001 For now, only VisioBraille is supported. 1002 1003 console_msg_format= 1004 [KNL] Change console messages format 1005 default 1006 By default we print messages on consoles in 1007 "[time stamp] text\n" format (time stamp may not be 1008 printed, depending on CONFIG_PRINTK_TIME or 1009 `printk_time' param). 1010 syslog 1011 Switch to syslog format: "<%u>[time stamp] text\n" 1012 IOW, each message will have a facility and loglevel 1013 prefix. The format is similar to one used by syslog() 1014 syscall, or to executing "dmesg -S --raw" or to reading 1015 from /proc/kmsg. 1016 1017 consoleblank= [KNL] The console blank (screen saver) timeout in 1018 seconds. A value of 0 disables the blank timer. 1019 Defaults to 0. 1020 1021 coredump_filter= 1022 [KNL] Change the default value for 1023 /proc/<pid>/coredump_filter. 1024 See also Documentation/filesystems/proc.rst. 1025 1026 coresight_cpu_debug.enable 1027 [ARM,ARM64] 1028 Format: <bool> 1029 Enable/disable the CPU sampling based debugging. 1030 0: default value, disable debugging 1031 1: enable debugging at boot time 1032 1033 cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver 1034 Format: 1035 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] 1036 1037 cpuidle.off=1 [CPU_IDLE] 1038 disable the cpuidle sub-system 1039 1040 cpuidle.governor= 1041 [CPU_IDLE] Name of the cpuidle governor to use. 1042 1043 cpufreq.off=1 [CPU_FREQ] 1044 disable the cpufreq sub-system 1045 1046 cpufreq.default_governor= 1047 [CPU_FREQ] Name of the default cpufreq governor or 1048 policy to use. This governor must be registered in the 1049 kernel before the cpufreq driver probes. 1050 1051 cpu_init_udelay=N 1052 [X86,EARLY] Delay for N microsec between assert and de-assert 1053 of APIC INIT to start processors. This delay occurs 1054 on every CPU online, such as boot, and resume from suspend. 1055 Default: 10000 1056 1057 cpuhp.parallel= 1058 [SMP] Enable/disable parallel bringup of secondary CPUs 1059 Format: <bool> 1060 Default is enabled if CONFIG_HOTPLUG_PARALLEL=y. Otherwise 1061 the parameter has no effect. 1062 1063 crash_kexec_post_notifiers 1064 Only jump to kdump kernel after running the panic 1065 notifiers and dumping kmsg. This option increases 1066 the risks of a kdump failure, since some panic 1067 notifiers can make the crashed kernel more unstable. 1068 In configurations where kdump may not be reliable, 1069 running the panic notifiers could allow collecting 1070 more data on dmesg, like stack traces from other CPUS 1071 or extra data dumped by panic_print. Note that some 1072 configurations enable this option unconditionally, 1073 like Hyper-V, PowerPC (fadump) and AMD SEV-SNP. 1074 1075 crashkernel=size[KMG][@offset[KMG]] 1076 [KNL,EARLY] Using kexec, Linux can switch to a 'crash kernel' 1077 upon panic. This parameter reserves the physical 1078 memory region [offset, offset + size] for that kernel 1079 image. If '@offset' is omitted, then a suitable offset 1080 is selected automatically. 1081 [KNL, X86-64, ARM64, RISCV, LoongArch] Select a region 1082 under 4G first, and fall back to reserve region above 1083 4G when '@offset' hasn't been specified. 1084 See Documentation/admin-guide/kdump/kdump.rst for further details. 1085 1086 crashkernel=range1:size1[,range2:size2,...][@offset] 1087 [KNL] Same as above, but depends on the memory 1088 in the running system. The syntax of range is 1089 start-[end] where start and end are both 1090 a memory unit (amount[KMG]). See also 1091 Documentation/admin-guide/kdump/kdump.rst for an example. 1092 1093 crashkernel=size[KMG],high 1094 [KNL, X86-64, ARM64, RISCV, LoongArch] range could be 1095 above 4G. 1096 Allow kernel to allocate physical memory region from top, 1097 so could be above 4G if system have more than 4G ram 1098 installed. Otherwise memory region will be allocated 1099 below 4G, if available. 1100 It will be ignored if crashkernel=X is specified. 1101 crashkernel=size[KMG],low 1102 [KNL, X86-64, ARM64, RISCV, LoongArch] range under 4G. 1103 When crashkernel=X,high is passed, kernel could allocate 1104 physical memory region above 4G, that cause second kernel 1105 crash on system that require some amount of low memory, 1106 e.g. swiotlb requires at least 64M+32K low memory, also 1107 enough extra low memory is needed to make sure DMA buffers 1108 for 32-bit devices won't run out. Kernel would try to allocate 1109 default size of memory below 4G automatically. The default 1110 size is platform dependent. 1111 --> x86: max(swiotlb_size_or_default() + 8MiB, 256MiB) 1112 --> arm64: 128MiB 1113 --> riscv: 128MiB 1114 --> loongarch: 128MiB 1115 This one lets the user specify own low range under 4G 1116 for second kernel instead. 1117 0: to disable low allocation. 1118 It will be ignored when crashkernel=X,high is not used 1119 or memory reserved is below 4G. 1120 crashkernel=size[KMG],cma 1121 [KNL, X86, ppc] Reserve additional crash kernel memory from 1122 CMA. This reservation is usable by the first system's 1123 userspace memory and kernel movable allocations (memory 1124 balloon, zswap). Pages allocated from this memory range 1125 will not be included in the vmcore so this should not 1126 be used if dumping of userspace memory is intended and 1127 it has to be expected that some movable kernel pages 1128 may be missing from the dump. 1129 1130 A standard crashkernel reservation, as described above, 1131 is still needed to hold the crash kernel and initrd. 1132 1133 This option increases the risk of a kdump failure: DMA 1134 transfers configured by the first kernel may end up 1135 corrupting the second kernel's memory. 1136 1137 This reservation method is intended for systems that 1138 can't afford to sacrifice enough memory for standard 1139 crashkernel reservation and where less reliable and 1140 possibly incomplete kdump is preferable to no kdump at 1141 all. 1142 1143 cryptomgr.notests 1144 [KNL] Disable crypto self-tests 1145 1146 cs89x0_dma= [HW,NET] 1147 Format: <dma> 1148 1149 cs89x0_media= [HW,NET] 1150 Format: { rj45 | aui | bnc } 1151 1152 csdlock_debug= [KNL] Enable or disable debug add-ons of cross-CPU 1153 function call handling. When switched on, 1154 additional debug data is printed to the console 1155 in case a hanging CPU is detected, and that 1156 CPU is pinged again in order to try to resolve 1157 the hang situation. The default value of this 1158 option depends on the CSD_LOCK_WAIT_DEBUG_DEFAULT 1159 Kconfig option. 1160 1161 dasd= [HW,NET] 1162 See header of drivers/s390/block/dasd_devmap.c. 1163 1164 db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port 1165 (one device per port) 1166 Format: <port#>,<type> 1167 See also Documentation/input/devices/joystick-parport.rst 1168 1169 debug [KNL,EARLY] Enable kernel debugging (events log level). 1170 1171 debug_boot_weak_hash 1172 [KNL,EARLY] Enable printing [hashed] pointers early in the 1173 boot sequence. If enabled, we use a weak hash instead 1174 of siphash to hash pointers. Use this option if you are 1175 seeing instances of '(___ptrval___)') and need to see a 1176 value (hashed pointer) instead. Cryptographically 1177 insecure, please do not use on production kernels. 1178 1179 debug_locks_verbose= 1180 [KNL] verbose locking self-tests 1181 Format: <int> 1182 Print debugging info while doing the locking API 1183 self-tests. 1184 Bitmask for the various LOCKTYPE_ tests. Defaults to 0 1185 (no extra messages), setting it to -1 (all bits set) 1186 will print _a_lot_ more information - normally only 1187 useful to lockdep developers. 1188 1189 debug_objects [KNL,EARLY] Enable object debugging 1190 1191 debug_guardpage_minorder= 1192 [KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this 1193 parameter allows control of the order of pages that will 1194 be intentionally kept free (and hence protected) by the 1195 buddy allocator. Bigger value increase the probability 1196 of catching random memory corruption, but reduce the 1197 amount of memory for normal system use. The maximum 1198 possible value is MAX_PAGE_ORDER/2. Setting this 1199 parameter to 1 or 2 should be enough to identify most 1200 random memory corruption problems caused by bugs in 1201 kernel or driver code when a CPU writes to (or reads 1202 from) a random memory location. Note that there exists 1203 a class of memory corruptions problems caused by buggy 1204 H/W or F/W or by drivers badly programming DMA 1205 (basically when memory is written at bus level and the 1206 CPU MMU is bypassed) which are not detectable by 1207 CONFIG_DEBUG_PAGEALLOC, hence this option will not 1208 help tracking down these problems. 1209 1210 debug_pagealloc= 1211 [KNL,EARLY] When CONFIG_DEBUG_PAGEALLOC is set, this parameter 1212 enables the feature at boot time. By default, it is 1213 disabled and the system will work mostly the same as a 1214 kernel built without CONFIG_DEBUG_PAGEALLOC. 1215 Note: to get most of debug_pagealloc error reports, it's 1216 useful to also enable the page_owner functionality. 1217 on: enable the feature 1218 1219 debugfs= [KNL,EARLY] This parameter enables what is exposed to 1220 userspace and debugfs internal clients. 1221 Format: { on, off } 1222 on: All functions are enabled. 1223 off: Filesystem is not registered and clients 1224 get a -EPERM as result when trying to register files 1225 or directories within debugfs. 1226 This is equivalent of the runtime functionality if 1227 debugfs was not enabled in the kernel at all. 1228 Default value is set in build-time with a kernel configuration. 1229 1230 debugpat [X86] Enable PAT debugging 1231 1232 default_hugepagesz= 1233 [HW] The size of the default HugeTLB page. This is 1234 the size represented by the legacy /proc/ hugepages 1235 APIs. In addition, this is the default hugetlb size 1236 used for shmget(), mmap() and mounting hugetlbfs 1237 filesystems. If not specified, defaults to the 1238 architecture's default huge page size. Huge page 1239 sizes are architecture dependent. See also 1240 Documentation/admin-guide/mm/hugetlbpage.rst. 1241 Format: size[KMG] 1242 1243 deferred_probe_timeout= 1244 [KNL] Debugging option to set a timeout in seconds for 1245 deferred probe to give up waiting on dependencies to 1246 probe. Only specific dependencies (subsystems or 1247 drivers) that have opted in will be ignored. A timeout 1248 of 0 will timeout at the end of initcalls. If the time 1249 out hasn't expired, it'll be restarted by each 1250 successful driver registration. This option will also 1251 dump out devices still on the deferred probe list after 1252 retrying. 1253 1254 delayacct [KNL] Enable per-task delay accounting 1255 1256 dell_smm_hwmon.ignore_dmi= 1257 [HW] Continue probing hardware even if DMI data 1258 indicates that the driver is running on unsupported 1259 hardware. 1260 1261 dell_smm_hwmon.force= 1262 [HW] Activate driver even if SMM BIOS signature does 1263 not match list of supported models and enable otherwise 1264 blacklisted features. 1265 1266 dell_smm_hwmon.power_status= 1267 [HW] Report power status in /proc/i8k 1268 (disabled by default). 1269 1270 dell_smm_hwmon.restricted= 1271 [HW] Allow controlling fans only if SYS_ADMIN 1272 capability is set. 1273 1274 dell_smm_hwmon.fan_mult= 1275 [HW] Factor to multiply fan speed with. 1276 1277 dell_smm_hwmon.fan_max= 1278 [HW] Maximum configurable fan speed. 1279 1280 dfltcc= [HW,S390] 1281 Format: { on | off | def_only | inf_only | always } 1282 on: s390 zlib hardware support for compression on 1283 level 1 and decompression (default) 1284 off: No s390 zlib hardware support 1285 def_only: s390 zlib hardware support for deflate 1286 only (compression on level 1) 1287 inf_only: s390 zlib hardware support for inflate 1288 only (decompression) 1289 always: Same as 'on' but ignores the selected compression 1290 level always using hardware support (used for debugging) 1291 1292 dhash_entries= [KNL] 1293 Set number of hash buckets for dentry cache. 1294 1295 disable_1tb_segments [PPC,EARLY] 1296 Disables the use of 1TB hash page table segments. This 1297 causes the kernel to fall back to 256MB segments which 1298 can be useful when debugging issues that require an SLB 1299 miss to occur. 1300 1301 disable= [IPV6] 1302 See Documentation/networking/ipv6.rst. 1303 1304 disable_radix [PPC,EARLY] 1305 Disable RADIX MMU mode on POWER9 1306 1307 disable_tlbie [PPC] 1308 Disable TLBIE instruction. Currently does not work 1309 with KVM, with HASH MMU, or with coherent accelerators. 1310 1311 disable_ddw [PPC/PSERIES,EARLY] 1312 Disable Dynamic DMA Window support. Use this 1313 to workaround buggy firmware. 1314 1315 disable_ipv6= [IPV6] 1316 See Documentation/networking/ipv6.rst. 1317 1318 disable_mtrr_cleanup [X86,EARLY] 1319 The kernel tries to adjust MTRR layout from continuous 1320 to discrete, to make X server driver able to add WB 1321 entry later. This parameter disables that. 1322 1323 disable_mtrr_trim [X86, Intel and AMD only,EARLY] 1324 By default the kernel will trim any uncacheable 1325 memory out of your available memory pool based on 1326 MTRR settings. This parameter disables that behavior, 1327 possibly causing your machine to run very slowly. 1328 1329 disable_timer_pin_1 [X86,EARLY] 1330 Disable PIN 1 of APIC timer 1331 Can be useful to work around chipset bugs. 1332 1333 dis_ucode_ldr [X86] Disable the microcode loader. 1334 1335 dma_debug=off If the kernel is compiled with DMA_API_DEBUG support, 1336 this option disables the debugging code at boot. 1337 1338 dma_debug_entries=<number> 1339 This option allows to tune the number of preallocated 1340 entries for DMA-API debugging code. One entry is 1341 required per DMA-API allocation. Use this if the 1342 DMA-API debugging code disables itself because the 1343 architectural default is too low. 1344 1345 dma_debug_driver=<driver_name> 1346 With this option the DMA-API debugging driver 1347 filter feature can be enabled at boot time. Just 1348 pass the driver to filter for as the parameter. 1349 The filter can be disabled or changed to another 1350 driver later using sysfs. 1351 1352 reg_file_data_sampling= 1353 [X86] Controls mitigation for Register File Data 1354 Sampling (RFDS) vulnerability. RFDS is a CPU 1355 vulnerability which may allow userspace to infer 1356 kernel data values previously stored in floating point 1357 registers, vector registers, or integer registers. 1358 RFDS only affects Intel Atom processors. 1359 1360 on: Turns ON the mitigation. 1361 off: Turns OFF the mitigation. 1362 1363 This parameter overrides the compile time default set 1364 by CONFIG_MITIGATION_RFDS. Mitigation cannot be 1365 disabled when other VERW based mitigations (like MDS) 1366 are enabled. In order to disable RFDS mitigation all 1367 VERW based mitigations need to be disabled. 1368 1369 For details see: 1370 Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst 1371 1372 dm_verity.keyring_unsealed= 1373 [KNL] When set to 1, leave the dm-verity keyring 1374 unsealed after initialization so userspace can 1375 provision keys. Once the keyring is restricted 1376 it becomes active and is searched during signature 1377 verification. 1378 1379 driver_async_probe= [KNL] 1380 List of driver names to be probed asynchronously. * 1381 matches with all driver names. If * is specified, the 1382 rest of the listed driver names are those that will NOT 1383 match the *. 1384 Format: <driver_name1>,<driver_name2>... 1385 1386 drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>] 1387 Broken monitors, graphic adapters, KVMs and EDIDless 1388 panels may send no or incorrect EDID data sets. 1389 This parameter allows to specify an EDID data sets 1390 in the /lib/firmware directory that are used instead. 1391 An EDID data set will only be used for a particular 1392 connector, if its name and a colon are prepended to 1393 the EDID name. Each connector may use a unique EDID 1394 data set by separating the files with a comma. An EDID 1395 data set with no connector name will be used for 1396 any connectors not explicitly specified. 1397 1398 dscc4.setup= [NET] 1399 1400 dt_cpu_ftrs= [PPC,EARLY] 1401 Format: {"off" | "known"} 1402 Control how the dt_cpu_ftrs device-tree binding is 1403 used for CPU feature discovery and setup (if it 1404 exists). 1405 off: Do not use it, fall back to legacy cpu table. 1406 known: Do not pass through unknown features to guests 1407 or userspace, only those that the kernel is aware of. 1408 1409 dump_apple_properties [X86] 1410 Dump name and content of EFI device properties on 1411 x86 Macs. Useful for driver authors to determine 1412 what data is available or for reverse-engineering. 1413 1414 dyndbg[="val"] [KNL,DYNAMIC_DEBUG] 1415 <module>.dyndbg[="val"] 1416 Enable debug messages at boot time. See 1417 Documentation/admin-guide/dynamic-debug-howto.rst 1418 for details. 1419 1420 early_ioremap_debug [KNL,EARLY] 1421 Enable debug messages in early_ioremap support. This 1422 is useful for tracking down temporary early mappings 1423 which are not unmapped. 1424 1425 earlycon= [KNL,EARLY] Output early console device and options. 1426 1427 When used with no options, the early console is 1428 determined by stdout-path property in device tree's 1429 chosen node or the ACPI SPCR table if supported by 1430 the platform. 1431 1432 cdns,<addr>[,options] 1433 Start an early, polled-mode console on a Cadence 1434 (xuartps) serial port at the specified address. Only 1435 supported option is baud rate. If baud rate is not 1436 specified, the serial port must already be setup and 1437 configured. 1438 1439 uart[8250],io,<addr>[,options[,uartclk]] 1440 uart[8250],mmio,<addr>[,options[,uartclk]] 1441 uart[8250],mmio32,<addr>[,options[,uartclk]] 1442 uart[8250],mmio32be,<addr>[,options[,uartclk]] 1443 uart[8250],0x<addr>[,options] 1444 Start an early, polled-mode console on the 8250/16550 1445 UART at the specified I/O port or MMIO address. 1446 MMIO inter-register address stride is either 8-bit 1447 (mmio) or 32-bit (mmio32 or mmio32be). 1448 If none of [io|mmio|mmio32|mmio32be], <addr> is assumed 1449 to be equivalent to 'mmio'. 'options' are specified 1450 in the same format described for "console=ttyS<n>"; if 1451 unspecified, the h/w is not initialized. 'uartclk' is 1452 the uart clock frequency; if unspecified, it is set 1453 to 'BASE_BAUD' * 16. 1454 1455 pl011,<addr> 1456 pl011,mmio32,<addr> 1457 Start an early, polled-mode console on a pl011 serial 1458 port at the specified address. The pl011 serial port 1459 must already be setup and configured. Options are not 1460 yet supported. If 'mmio32' is specified, then only 1461 the driver will use only 32-bit accessors to read/write 1462 the device registers. 1463 1464 liteuart,<addr> 1465 Start an early console on a litex serial port at the 1466 specified address. The serial port must already be 1467 setup and configured. Options are not yet supported. 1468 1469 meson,<addr> 1470 Start an early, polled-mode console on a meson serial 1471 port at the specified address. The serial port must 1472 already be setup and configured. Options are not yet 1473 supported. 1474 1475 msm_serial,<addr> 1476 Start an early, polled-mode console on an msm serial 1477 port at the specified address. The serial port 1478 must already be setup and configured. Options are not 1479 yet supported. 1480 1481 msm_serial_dm,<addr> 1482 Start an early, polled-mode console on an msm serial 1483 dm port at the specified address. The serial port 1484 must already be setup and configured. Options are not 1485 yet supported. 1486 1487 owl,<addr> 1488 Start an early, polled-mode console on a serial port 1489 of an Actions Semi SoC, such as S500 or S900, at the 1490 specified address. The serial port must already be 1491 setup and configured. Options are not yet supported. 1492 1493 rda,<addr> 1494 Start an early, polled-mode console on a serial port 1495 of an RDA Micro SoC, such as RDA8810PL, at the 1496 specified address. The serial port must already be 1497 setup and configured. Options are not yet supported. 1498 1499 sbi 1500 Use RISC-V SBI (Supervisor Binary Interface) for early 1501 console. 1502 1503 smh Use ARM semihosting calls for early console. 1504 1505 s3c2410,<addr> 1506 s3c2412,<addr> 1507 s3c2440,<addr> 1508 s3c6400,<addr> 1509 s5pv210,<addr> 1510 exynos4210,<addr> 1511 Use early console provided by serial driver available 1512 on Samsung SoCs, requires selecting proper type and 1513 a correct base address of the selected UART port. The 1514 serial port must already be setup and configured. 1515 Options are not yet supported. 1516 1517 lantiq,<addr> 1518 Start an early, polled-mode console on a lantiq serial 1519 (lqasc) port at the specified address. The serial port 1520 must already be setup and configured. Options are not 1521 yet supported. 1522 1523 lpuart,<addr> 1524 lpuart32,<addr> 1525 Use early console provided by Freescale LP UART driver 1526 found on Freescale Vybrid and QorIQ LS1021A processors. 1527 A valid base address must be provided, and the serial 1528 port must already be setup and configured. 1529 1530 ec_imx21,<addr> 1531 ec_imx6q,<addr> 1532 Start an early, polled-mode, output-only console on the 1533 Freescale i.MX UART at the specified address. The UART 1534 must already be setup and configured. 1535 1536 ar3700_uart,<addr> 1537 Start an early, polled-mode console on the 1538 Armada 3700 serial port at the specified 1539 address. The serial port must already be setup 1540 and configured. Options are not yet supported. 1541 1542 qcom_geni,<addr> 1543 Start an early, polled-mode console on a Qualcomm 1544 Generic Interface (GENI) based serial port at the 1545 specified address. The serial port must already be 1546 setup and configured. Options are not yet supported. 1547 1548 efifb,[options] 1549 Start an early, unaccelerated console on the EFI 1550 memory mapped framebuffer (if available). On cache 1551 coherent non-x86 systems that use system memory for 1552 the framebuffer, pass the 'ram' option so that it is 1553 mapped with the correct attributes. 1554 1555 linflex,<addr> 1556 Use early console provided by Freescale LINFlexD UART 1557 serial driver for NXP S32V234 SoCs. A valid base 1558 address must be provided, and the serial port must 1559 already be setup and configured. 1560 1561 earlyprintk= [X86,SH,ARM,M68k,S390,UM,EARLY] 1562 earlyprintk=vga 1563 earlyprintk=sclp 1564 earlyprintk=xen 1565 earlyprintk=serial[,ttySn[,baudrate]] 1566 earlyprintk=serial[,0x...[,baudrate]] 1567 earlyprintk=ttySn[,baudrate] 1568 earlyprintk=dbgp[debugController#] 1569 earlyprintk=mmio32,membase[,{nocfg|baudrate}] 1570 earlyprintk=pciserial[,force],bus:device.function[,{nocfg|baudrate}] 1571 earlyprintk=xdbc[xhciController#] 1572 earlyprintk=bios 1573 1574 earlyprintk is useful when the kernel crashes before 1575 the normal console is initialized. It is not enabled by 1576 default because it has some cosmetic problems. 1577 1578 Use "nocfg" to skip UART configuration, assume 1579 BIOS/firmware has configured UART correctly. 1580 1581 Append ",keep" to not disable it when the real console 1582 takes over. 1583 1584 Only one of vga, serial, or usb debug port can 1585 be used at a time. 1586 1587 Currently only ttyS0 and ttyS1 may be specified by 1588 name. Other I/O ports may be explicitly specified 1589 on some architectures (x86 and arm at least) by 1590 replacing ttySn with an I/O port address, like this: 1591 earlyprintk=serial,0x1008,115200 1592 You can find the port for a given device in 1593 /proc/tty/driver/serial: 1594 2: uart:ST16650V2 port:00001008 irq:18 ... 1595 1596 Interaction with the standard serial driver is not 1597 very good. 1598 1599 The VGA output is eventually overwritten by 1600 the real console. 1601 1602 The xen option can only be used in Xen domains. 1603 1604 The sclp output can only be used on s390. 1605 1606 The bios output can only be used on SuperH. 1607 1608 The optional "force" to "pciserial" enables use of a 1609 PCI device even when its classcode is not of the 1610 UART class. 1611 1612 edac_report= [HW,EDAC] Control how to report EDAC event 1613 Format: {"on" | "off" | "force"} 1614 on: enable EDAC to report H/W event. May be overridden 1615 by other higher priority error reporting module. 1616 off: disable H/W event reporting through EDAC. 1617 force: enforce the use of EDAC to report H/W event. 1618 default: on. 1619 1620 edd= [EDD] 1621 Format: {"off" | "on" | "skip[mbr]"} 1622 1623 efi= [EFI,EARLY] 1624 Format: { "debug", "disable_early_pci_dma", 1625 "nochunk", "noruntime", "nosoftreserve", 1626 "novamap", "no_disable_early_pci_dma" } 1627 debug: enable misc debug output. 1628 disable_early_pci_dma: disable the busmaster bit on all 1629 PCI bridges while in the EFI boot stub. 1630 nochunk: disable reading files in "chunks" in the EFI 1631 boot stub, as chunking can cause problems with some 1632 firmware implementations. 1633 noruntime : disable EFI runtime services support 1634 nosoftreserve: The EFI_MEMORY_SP (Specific Purpose) 1635 attribute may cause the kernel to reserve the 1636 memory range for a memory mapping driver to 1637 claim. Specify efi=nosoftreserve to disable this 1638 reservation and treat the memory by its base type 1639 (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 1640 novamap: do not call SetVirtualAddressMap(). 1641 no_disable_early_pci_dma: Leave the busmaster bit set 1642 on all PCI bridges while in the EFI boot stub 1643 1644 efi_no_storage_paranoia [EFI,X86,EARLY] 1645 Using this parameter you can use more than 50% of 1646 your efi variable storage. Use this parameter only if 1647 you are really sure that your UEFI does sane gc and 1648 fulfills the spec otherwise your board may brick. 1649 1650 efivar_ssdt= [EFI; X86] Name of an EFI variable that contains an SSDT 1651 that is to be dynamically loaded by Linux. If there are 1652 multiple variables with the same name but with different 1653 vendor GUIDs, all of them will be loaded. See 1654 Documentation/admin-guide/acpi/ssdt-overlays.rst for details. 1655 1656 1657 eisa_irq_edge= [PARISC,HW] 1658 See header of drivers/parisc/eisa.c. 1659 1660 ekgdboc= [X86,KGDB,EARLY] Allow early kernel console debugging 1661 Format: ekgdboc=kbd 1662 1663 This is designed to be used in conjunction with 1664 the boot argument: earlyprintk=vga 1665 1666 This parameter works in place of the kgdboc parameter 1667 but can only be used if the backing tty is available 1668 very early in the boot process. For early debugging 1669 via a serial port see kgdboc_earlycon instead. 1670 1671 elanfreq= [X86-32] 1672 See comment before function elanfreq_setup() in 1673 arch/x86/kernel/cpu/cpufreq/elanfreq.c. 1674 1675 elfcorehdr=[size[KMG]@]offset[KMG] [PPC,SH,X86,S390,EARLY] 1676 Specifies physical address of start of kernel core 1677 image elf header and optionally the size. Generally 1678 kexec loader will pass this option to capture kernel. 1679 See Documentation/admin-guide/kdump/kdump.rst for details. 1680 1681 enable_mtrr_cleanup [X86,EARLY] 1682 The kernel tries to adjust MTRR layout from continuous 1683 to discrete, to make X server driver able to add WB 1684 entry later. This parameter enables that. 1685 1686 enable_timer_pin_1 [X86] 1687 Enable PIN 1 of APIC timer 1688 Can be useful to work around chipset bugs 1689 (in particular on some ATI chipsets). 1690 The kernel tries to set a reasonable default. 1691 1692 enforcing= [SELINUX] Set initial enforcing status. 1693 Format: {"0" | "1"} 1694 See security/selinux/Kconfig help text. 1695 0 -- permissive (log only, no denials). 1696 1 -- enforcing (deny and log). 1697 Default value is 0. 1698 Value can be changed at runtime via 1699 /sys/fs/selinux/enforce. 1700 1701 erst_disable [ACPI] 1702 Disable Error Record Serialization Table (ERST) 1703 support. 1704 1705 ether= [HW,NET] Ethernet cards parameters 1706 This option is obsoleted by the "netdev=" option, which 1707 has equivalent usage. See its documentation for details. 1708 1709 evm= [EVM] 1710 Format: { "fix" } 1711 Permit 'security.evm' to be updated regardless of 1712 current integrity status. 1713 1714 early_page_ext [KNL,EARLY] Enforces page_ext initialization to earlier 1715 stages so cover more early boot allocations. 1716 Please note that as side effect some optimizations 1717 might be disabled to achieve that (e.g. parallelized 1718 memory initialization is disabled) so the boot process 1719 might take longer, especially on systems with a lot of 1720 memory. Available with CONFIG_PAGE_EXTENSION=y. 1721 1722 failslab= 1723 fail_usercopy= 1724 fail_page_alloc= 1725 fail_skb_realloc= 1726 fail_make_request=[KNL] 1727 General fault injection mechanism. 1728 Format: <interval>,<probability>,<space>,<times> 1729 See also Documentation/fault-injection/. 1730 1731 fb_tunnels= [NET] 1732 Format: { initns | none } 1733 See Documentation/admin-guide/sysctl/net.rst for 1734 fb_tunnels_only_for_init_ns 1735 1736 floppy= [HW] 1737 See Documentation/admin-guide/blockdev/floppy.rst. 1738 1739 forcepae [X86-32] 1740 Forcefully enable Physical Address Extension (PAE). 1741 Many Pentium M systems disable PAE but may have a 1742 functionally usable PAE implementation. 1743 Warning: use of this parameter will taint the kernel 1744 and may cause unknown problems. 1745 1746 fred= [X86-64] 1747 Enable/disable Flexible Return and Event Delivery. 1748 Format: { on | off } 1749 on: enable FRED when it's present, the default setting. 1750 off: disable FRED. 1751 1752 ftrace=[tracer] 1753 [FTRACE] will set and start the specified tracer 1754 as early as possible in order to facilitate early 1755 boot debugging. 1756 1757 ftrace_boot_snapshot 1758 [FTRACE] On boot up, a snapshot will be taken of the 1759 ftrace ring buffer that can be read at: 1760 /sys/kernel/tracing/snapshot. 1761 This is useful if you need tracing information from kernel 1762 boot up that is likely to be overridden by user space 1763 start up functionality. 1764 1765 Optionally, the snapshot can also be defined for a tracing 1766 instance that was created by the trace_instance= command 1767 line parameter. 1768 1769 trace_instance=foo,sched_switch ftrace_boot_snapshot=foo 1770 1771 The above will cause the "foo" tracing instance to trigger 1772 a snapshot at the end of boot up. 1773 1774 ftrace_dump_on_oops[=2(orig_cpu) | =<instance>][,<instance> | 1775 ,<instance>=2(orig_cpu)] 1776 [FTRACE] will dump the trace buffers on oops. 1777 If no parameter is passed, ftrace will dump global 1778 buffers of all CPUs, if you pass 2 or orig_cpu, it 1779 will dump only the buffer of the CPU that triggered 1780 the oops, or the specific instance will be dumped if 1781 its name is passed. Multiple instance dump is also 1782 supported, and instances are separated by commas. Each 1783 instance supports only dump on CPU that triggered the 1784 oops by passing 2 or orig_cpu to it. 1785 1786 ftrace_dump_on_oops=foo=orig_cpu 1787 1788 The above will dump only the buffer of "foo" instance 1789 on CPU that triggered the oops. 1790 1791 ftrace_dump_on_oops,foo,bar=orig_cpu 1792 1793 The above will dump global buffer on all CPUs, the 1794 buffer of "foo" instance on all CPUs and the buffer 1795 of "bar" instance on CPU that triggered the oops. 1796 1797 ftrace_filter=[function-list] 1798 [FTRACE] Limit the functions traced by the function 1799 tracer at boot up. function-list is a comma-separated 1800 list of functions. This list can be changed at run 1801 time by the set_ftrace_filter file in the debugfs 1802 tracing directory. 1803 1804 ftrace_notrace=[function-list] 1805 [FTRACE] Do not trace the functions specified in 1806 function-list. This list can be changed at run time 1807 by the set_ftrace_notrace file in the debugfs 1808 tracing directory. 1809 1810 ftrace_graph_filter=[function-list] 1811 [FTRACE] Limit the top level callers functions traced 1812 by the function graph tracer at boot up. 1813 function-list is a comma-separated list of functions 1814 that can be changed at run time by the 1815 set_graph_function file in the debugfs tracing directory. 1816 1817 ftrace_graph_notrace=[function-list] 1818 [FTRACE] Do not trace from the functions specified in 1819 function-list. This list is a comma-separated list of 1820 functions that can be changed at run time by the 1821 set_graph_notrace file in the debugfs tracing directory. 1822 1823 ftrace_graph_max_depth=<uint> 1824 [FTRACE] Used with the function graph tracer. This is 1825 the max depth it will trace into a function. This value 1826 can be changed at run time by the max_graph_depth file 1827 in the tracefs tracing directory. default: 0 (no limit) 1828 1829 fw_devlink= [KNL,EARLY] Create device links between consumer and supplier 1830 devices by scanning the firmware to infer the 1831 consumer/supplier relationships. This feature is 1832 especially useful when drivers are loaded as modules as 1833 it ensures proper ordering of tasks like device probing 1834 (suppliers first, then consumers), supplier boot state 1835 clean up (only after all consumers have probed), 1836 suspend/resume & runtime PM (consumers first, then 1837 suppliers). 1838 Format: { off | permissive | on | rpm } 1839 off -- Don't create device links from firmware info. 1840 permissive -- Create device links from firmware info 1841 but use it only for ordering boot state clean 1842 up (sync_state() calls). 1843 on -- Create device links from firmware info and use it 1844 to enforce probe and suspend/resume ordering. 1845 rpm -- Like "on", but also use to order runtime PM. 1846 1847 fw_devlink.strict=<bool> 1848 [KNL,EARLY] Treat all inferred dependencies as mandatory 1849 dependencies. This only applies for fw_devlink=on|rpm. 1850 Format: <bool> 1851 1852 fw_devlink.sync_state = 1853 [KNL,EARLY] When all devices that could probe have finished 1854 probing, this parameter controls what to do with 1855 devices that haven't yet received their sync_state() 1856 calls. 1857 Format: { strict | timeout } 1858 strict -- Default. Continue waiting on consumers to 1859 probe successfully. 1860 timeout -- Give up waiting on consumers and call 1861 sync_state() on any devices that haven't yet 1862 received their sync_state() calls after 1863 deferred_probe_timeout has expired or by 1864 late_initcall() if !CONFIG_MODULES. 1865 1866 gamecon.map[2|3]= 1867 [HW,JOY] Multisystem joystick and NES/SNES/PSX pad 1868 support via parallel port (up to 5 devices per port) 1869 Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5> 1870 See also Documentation/input/devices/joystick-parport.rst 1871 1872 gamma= [HW,DRM] 1873 1874 gart_fix_e820= [X86-64,EARLY] disable the fix e820 for K8 GART 1875 Format: off | on 1876 default: on 1877 1878 gather_data_sampling= 1879 [X86,INTEL,EARLY] Control the Gather Data Sampling (GDS) 1880 mitigation. 1881 1882 Gather Data Sampling is a hardware vulnerability which 1883 allows unprivileged speculative access to data which was 1884 previously stored in vector registers. 1885 1886 This issue is mitigated by default in updated microcode. 1887 The mitigation may have a performance impact but can be 1888 disabled. On systems without the microcode mitigation 1889 disabling AVX serves as a mitigation. 1890 1891 force: Disable AVX to mitigate systems without 1892 microcode mitigation. No effect if the microcode 1893 mitigation is present. Known to cause crashes in 1894 userspace with buggy AVX enumeration. 1895 1896 off: Disable GDS mitigation. 1897 1898 gbpages [X86] Use GB pages for kernel direct mappings. 1899 1900 gcov_persist= [GCOV] When non-zero (default), profiling data for 1901 kernel modules is saved and remains accessible via 1902 debugfs, even when the module is unloaded/reloaded. 1903 When zero, profiling data is discarded and associated 1904 debugfs files are removed at module unload time. 1905 1906 goldfish [X86] Enable the goldfish android emulator platform. 1907 Don't use this when you are not running on the 1908 android emulator 1909 1910 gpio-mockup.gpio_mockup_ranges 1911 [HW] Sets the ranges of gpiochip of for this device. 1912 Format: <start1>,<end1>,<start2>,<end2>... 1913 gpio-mockup.gpio_mockup_named_lines 1914 [HW] Let the driver know GPIO lines should be named. 1915 1916 gpt [EFI] Forces disk with valid GPT signature but 1917 invalid Protective MBR to be treated as GPT. If the 1918 primary GPT is corrupted, it enables the backup/alternate 1919 GPT to be used instead. 1920 1921 grcan.enable0= [HW] Configuration of physical interface 0. Determines 1922 the "Enable 0" bit of the configuration register. 1923 Format: 0 | 1 1924 Default: 0 1925 grcan.enable1= [HW] Configuration of physical interface 1. Determines 1926 the "Enable 0" bit of the configuration register. 1927 Format: 0 | 1 1928 Default: 0 1929 grcan.select= [HW] Select which physical interface to use. 1930 Format: 0 | 1 1931 Default: 0 1932 grcan.txsize= [HW] Sets the size of the tx buffer. 1933 Format: <unsigned int> such that (txsize & ~0x1fffc0) == 0. 1934 Default: 1024 1935 grcan.rxsize= [HW] Sets the size of the rx buffer. 1936 Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0. 1937 Default: 1024 1938 1939 hardened_usercopy= 1940 [KNL] Under CONFIG_HARDENED_USERCOPY, whether 1941 hardening is enabled for this boot. Hardened 1942 usercopy checking is used to protect the kernel 1943 from reading or writing beyond known memory 1944 allocation boundaries as a proactive defense 1945 against bounds-checking flaws in the kernel's 1946 copy_to_user()/copy_from_user() interface. 1947 The default is determined by 1948 CONFIG_HARDENED_USERCOPY_DEFAULT_ON. 1949 on Perform hardened usercopy checks. 1950 off Disable hardened usercopy checks. 1951 1952 hardlockup_all_cpu_backtrace= 1953 [KNL] Should the hard-lockup detector generate 1954 backtraces on all cpus. 1955 Format: 0 | 1 1956 1957 hash_pointers= 1958 [KNL,EARLY] 1959 By default, when pointers are printed to the console 1960 or buffers via the %p format string, that pointer is 1961 "hashed", i.e. obscured by hashing the pointer value. 1962 This is a security feature that hides actual kernel 1963 addresses from unprivileged users, but it also makes 1964 debugging the kernel more difficult since unequal 1965 pointers can no longer be compared. The choices are: 1966 Format: { auto | always | never } 1967 Default: auto 1968 1969 auto - Hash pointers unless slab_debug is enabled. 1970 always - Always hash pointers (even if slab_debug is 1971 enabled). 1972 never - Never hash pointers. This option should only 1973 be specified when debugging the kernel. Do 1974 not use on production kernels. The boot 1975 param "no_hash_pointers" is an alias for 1976 this mode. 1977 1978 For controlling hashing dynamically at runtime, 1979 use the "kernel.kptr_restrict" sysctl instead. 1980 1981 hashdist= [KNL,NUMA] Large hashes allocated during boot 1982 are distributed across NUMA nodes. Defaults on 1983 for 64-bit NUMA, off otherwise. 1984 Format: 0 | 1 (for off | on) 1985 1986 hd= [EIDE] (E)IDE hard drive subsystem geometry 1987 Format: <cyl>,<head>,<sect> 1988 1989 hest_disable [ACPI] 1990 Disable Hardware Error Source Table (HEST) support; 1991 corresponding firmware-first mode error processing 1992 logic will be disabled. 1993 1994 hibernate= [HIBERNATION] 1995 noresume Don't check if there's a hibernation image 1996 present during boot. 1997 nocompress Don't compress/decompress hibernation images. 1998 no Disable hibernation and resume. 1999 protect_image Turn on image protection during restoration 2000 (that will set all pages holding image data 2001 during restoration read-only). 2002 2003 hibernate.compressor= [HIBERNATION] Compression algorithm to be 2004 used with hibernation. 2005 Format: { lzo | lz4 } 2006 Default: lzo 2007 2008 lzo: Select LZO compression algorithm to 2009 compress/decompress hibernation image. 2010 2011 lz4: Select LZ4 compression algorithm to 2012 compress/decompress hibernation image. 2013 2014 hibernate.pm_test_delay= 2015 [HIBERNATION] 2016 Sets the number of seconds to remain in a hibernation test 2017 mode before resuming the system (see 2018 /sys/power/pm_test). Only available when CONFIG_PM_DEBUG 2019 is set. Default value is 5. 2020 2021 hibernate_compression_threads= 2022 [HIBERNATION] 2023 Set the number of threads used for compressing or decompressing 2024 hibernation images. 2025 2026 Format: <integer> 2027 Default: 3 2028 Minimum: 1 2029 Example: hibernate_compression_threads=4 2030 2031 highmem=nn[KMG] [KNL,BOOT,EARLY] forces the highmem zone to have an exact 2032 size of <nn>. This works even on boxes that have no 2033 highmem otherwise. This also works to reduce highmem 2034 size on bigger boxes. 2035 2036 highres= [KNL] Enable/disable high resolution timer mode. 2037 Valid parameters: "on", "off" 2038 Default: "on" 2039 2040 hlt [BUGS=ARM,SH] 2041 2042 hostname= [KNL,EARLY] Set the hostname (aka UTS nodename). 2043 Format: <string> 2044 This allows setting the system's hostname during early 2045 startup. This sets the name returned by gethostname. 2046 Using this parameter to set the hostname makes it 2047 possible to ensure the hostname is correctly set before 2048 any userspace processes run, avoiding the possibility 2049 that a process may call gethostname before the hostname 2050 has been explicitly set, resulting in the calling 2051 process getting an incorrect result. The string must 2052 not exceed the maximum allowed hostname length (usually 2053 64 characters) and will be truncated otherwise. 2054 2055 hpet= [X86-32,HPET] option to control HPET usage 2056 Format: { enable (default) | disable | force | 2057 verbose } 2058 disable: disable HPET and use PIT instead 2059 force: allow force enabled of undocumented chips (ICH4, 2060 VIA, nVidia) 2061 verbose: show contents of HPET registers during setup 2062 2063 hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET 2064 registers. Default set by CONFIG_HPET_MMAP_DEFAULT. 2065 2066 hugepages= [HW,EARLY] Number of HugeTLB pages to allocate at boot. 2067 If this follows hugepagesz (below), it specifies 2068 the number of pages of hugepagesz to be allocated. 2069 If this is the first HugeTLB parameter on the command 2070 line, it specifies the number of pages to allocate for 2071 the default huge page size. If using node format, the 2072 number of pages to allocate per-node can be specified. 2073 See also Documentation/admin-guide/mm/hugetlbpage.rst. 2074 Format: <integer> or (node format) 2075 <node>:<integer>[,<node>:<integer>] 2076 2077 hugepagesz= 2078 [HW,EARLY] The size of the HugeTLB pages. This is 2079 used in conjunction with hugepages (above) to 2080 allocate huge pages of a specific size at boot. The 2081 pair hugepagesz=X hugepages=Y can be specified once 2082 for each supported huge page size. Huge page sizes 2083 are architecture dependent. See also 2084 Documentation/admin-guide/mm/hugetlbpage.rst. 2085 Format: size[KMG] 2086 2087 hugepage_alloc_threads= 2088 [HW] The number of threads that should be used to 2089 allocate hugepages during boot. This option can be 2090 used to improve system bootup time when allocating 2091 a large amount of huge pages. 2092 The default value is 25% of the available hardware threads. 2093 2094 Note that this parameter only applies to non-gigantic huge pages. 2095 2096 hugetlb_cma= [HW,CMA,EARLY] The size of a CMA area used for allocation 2097 of gigantic hugepages. Or using node format, the size 2098 of a CMA area per node can be specified. 2099 Format: nn[KMGTPE] or (node format) 2100 <node>:nn[KMGTPE][,<node>:nn[KMGTPE]] 2101 2102 Reserve a CMA area of given size and allocate gigantic 2103 hugepages using the CMA allocator. If enabled, the 2104 boot-time allocation of gigantic hugepages is skipped. 2105 2106 hugetlb_cma_only= 2107 [HW,CMA,EARLY] When allocating new HugeTLB pages, only 2108 try to allocate from the CMA areas. 2109 2110 This option does nothing if hugetlb_cma= is not also 2111 specified. 2112 2113 hugetlb_free_vmemmap= 2114 [KNL] Requires CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP 2115 enabled. 2116 Control if HugeTLB Vmemmap Optimization (HVO) is enabled. 2117 Allows heavy hugetlb users to free up some more 2118 memory (7 * PAGE_SIZE for each 2MB hugetlb page). 2119 Format: { on | off (default) } 2120 2121 on: enable HVO 2122 off: disable HVO 2123 2124 Built with CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=y, 2125 the default is on. 2126 2127 Note that the vmemmap pages may be allocated from the added 2128 memory block itself when memory_hotplug.memmap_on_memory is 2129 enabled, those vmemmap pages cannot be optimized even if this 2130 feature is enabled. Other vmemmap pages not allocated from 2131 the added memory block itself do not be affected. 2132 2133 hung_task_panic= 2134 [KNL] Number of hung tasks to trigger kernel panic. 2135 Format: <int> 2136 2137 When set to a non-zero value, a kernel panic will be triggered if 2138 the number of detected hung tasks reaches this value. 2139 2140 0: don't panic 2141 1: panic immediately on first hung task 2142 N: panic after N hung tasks are detected in a single scan 2143 2144 The default value is controlled by the 2145 CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time option. The value 2146 selected by this boot parameter can be changed later by the 2147 kernel.hung_task_panic sysctl. 2148 2149 hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC) 2150 terminal devices. Valid values: 0..8 2151 hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs. 2152 If specified, z/VM IUCV HVC accepts connections 2153 from listed z/VM user IDs only. 2154 2155 hv_nopvspin [X86,HYPER_V,EARLY] 2156 Disables the paravirt spinlock optimizations 2157 which allow the hypervisor to 'idle' the guest 2158 on lock contention. 2159 2160 hw_protection= [HW] 2161 Format: reboot | shutdown 2162 2163 Hardware protection action taken on critical events like 2164 overtemperature or imminent voltage loss. 2165 2166 i2c_bus= [HW] Override the default board specific I2C bus speed 2167 or register an additional I2C bus that is not 2168 registered from board initialization code. 2169 Format: 2170 <bus_id>,<clkrate> 2171 2172 i2c_touchscreen_props= [HW,ACPI,X86] 2173 Set device-properties for ACPI-enumerated I2C-attached 2174 touchscreen, to e.g. fix coordinates of upside-down 2175 mounted touchscreens. If you need this option please 2176 submit a drivers/platform/x86/touchscreen_dmi.c patch 2177 adding a DMI quirk for this. 2178 2179 Format: 2180 <ACPI_HW_ID>:<prop_name>=<val>[:prop_name=val][:...] 2181 Where <val> is one of: 2182 Omit "=<val>" entirely Set a boolean device-property 2183 Unsigned number Set a u32 device-property 2184 Anything else Set a string device-property 2185 2186 Examples (split over multiple lines): 2187 i2c_touchscreen_props=GDIX1001:touchscreen-inverted-x: 2188 touchscreen-inverted-y 2189 2190 i2c_touchscreen_props=MSSL1680:touchscreen-size-x=1920: 2191 touchscreen-size-y=1080:touchscreen-inverted-y: 2192 firmware-name=gsl1680-vendor-model.fw:silead,home-button 2193 2194 i8042.debug [HW] Toggle i8042 debug mode 2195 i8042.unmask_kbd_data 2196 [HW] Enable printing of interrupt data from the KBD port 2197 (disabled by default, and as a pre-condition 2198 requires that i8042.debug=1 be enabled) 2199 i8042.direct [HW] Put keyboard port into non-translated mode 2200 i8042.dumbkbd [HW] Pretend that controller can only read data from 2201 keyboard and cannot control its state 2202 (Don't attempt to blink the leds) 2203 i8042.noaux [HW] Don't check for auxiliary (== mouse) port 2204 i8042.nokbd [HW] Don't check/create keyboard port 2205 i8042.noloop [HW] Disable the AUX Loopback command while probing 2206 for the AUX port 2207 i8042.nomux [HW] Don't check presence of an active multiplexing 2208 controller 2209 i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX 2210 controllers 2211 i8042.notimeout [HW] Ignore timeout condition signalled by controller 2212 i8042.reset [HW] Reset the controller during init, cleanup and 2213 suspend-to-ram transitions, only during s2r 2214 transitions, or never reset 2215 Format: { 1 | Y | y | 0 | N | n } 2216 1, Y, y: always reset controller 2217 0, N, n: don't ever reset controller 2218 Default: only on s2r transitions on x86; most other 2219 architectures force reset to be always executed 2220 i8042.unlock [HW] Unlock (ignore) the keylock 2221 i8042.kbdreset [HW] Reset device connected to KBD port 2222 i8042.probe_defer 2223 [HW] Allow deferred probing upon i8042 probe errors 2224 2225 i810= [HW,DRM] 2226 2227 i915.invert_brightness= 2228 [DRM] Invert the sense of the variable that is used to 2229 set the brightness of the panel backlight. Normally a 2230 brightness value of 0 indicates backlight switched off, 2231 and the maximum of the brightness value sets the backlight 2232 to maximum brightness. If this parameter is set to 0 2233 (default) and the machine requires it, or this parameter 2234 is set to 1, a brightness value of 0 sets the backlight 2235 to maximum brightness, and the maximum of the brightness 2236 value switches the backlight off. 2237 -1 -- never invert brightness 2238 0 -- machine default 2239 1 -- force brightness inversion 2240 2241 ia32_emulation= [X86-64] 2242 Format: <bool> 2243 When true, allows loading 32-bit programs and executing 32-bit 2244 syscalls, essentially overriding IA32_EMULATION_DEFAULT_DISABLED at 2245 boot time. When false, unconditionally disables IA32 emulation. 2246 2247 icn= [HW,ISDN] 2248 Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]] 2249 2250 2251 idle= [X86,EARLY] 2252 Format: idle=poll, idle=halt, idle=nomwait 2253 2254 idle=poll: Don't do power saving in the idle loop 2255 using HLT, but poll for rescheduling event. This will 2256 make the CPUs eat a lot more power, but may be useful 2257 to get slightly better performance in multiprocessor 2258 benchmarks. It also makes some profiling using 2259 performance counters more accurate. Please note that 2260 on systems with MONITOR/MWAIT support (like Intel 2261 EM64T CPUs) this option has no performance advantage 2262 over the normal idle loop. It may also interact badly 2263 with hyperthreading. 2264 2265 idle=halt: Halt is forced to be used for CPU idle. 2266 In such case C2/C3 won't be used again. 2267 2268 idle=nomwait: Disable mwait for CPU C-states 2269 2270 idxd.sva= [HW] 2271 Format: <bool> 2272 Allow force disabling of Shared Virtual Memory (SVA) 2273 support for the idxd driver. By default it is set to 2274 true (1). 2275 2276 idxd.tc_override= [HW] 2277 Format: <bool> 2278 Allow override of default traffic class configuration 2279 for the device. By default it is set to false (0). 2280 2281 ieee754= [MIPS] Select IEEE Std 754 conformance mode 2282 Format: { strict | legacy | 2008 | relaxed | emulated } 2283 Default: strict 2284 2285 Choose which programs will be accepted for execution 2286 based on the IEEE 754 NaN encoding(s) supported by 2287 the FPU and the NaN encoding requested with the value 2288 of an ELF file header flag individually set by each 2289 binary. Hardware implementations are permitted to 2290 support either or both of the legacy and the 2008 NaN 2291 encoding mode. 2292 2293 Available settings are as follows: 2294 strict accept binaries that request a NaN encoding 2295 supported by the FPU 2296 legacy only accept legacy-NaN binaries, if supported 2297 by the FPU 2298 2008 only accept 2008-NaN binaries, if supported 2299 by the FPU 2300 relaxed accept any binaries regardless of whether 2301 supported by the FPU 2302 emulated accept any binaries but enable FPU emulator 2303 if binary mode is unsupported by the FPU. 2304 2305 The FPU emulator is always able to support both NaN 2306 encodings, so if no FPU hardware is present or it has 2307 been disabled with 'nofpu', then the settings of 2308 'legacy' and '2008' strap the emulator accordingly, 2309 'relaxed' straps the emulator for both legacy-NaN and 2310 2008-NaN, whereas 'strict' enables legacy-NaN only on 2311 legacy processors and both NaN encodings on MIPS32 or 2312 MIPS64 CPUs. 2313 2314 The setting for ABS.fmt/NEG.fmt instruction execution 2315 mode generally follows that for the NaN encoding, 2316 except where unsupported by hardware. 2317 2318 ignore_loglevel [KNL,EARLY] 2319 Ignore loglevel setting - this will print /all/ 2320 kernel messages to the console. Useful for debugging. 2321 We also add it as printk module parameter, so users 2322 could change it dynamically, usually by 2323 /sys/module/printk/parameters/ignore_loglevel. 2324 2325 ignore_rlimit_data 2326 Ignore RLIMIT_DATA setting for data mappings, 2327 print warning at first misuse. Can be changed via 2328 /sys/module/kernel/parameters/ignore_rlimit_data. 2329 2330 ihash_entries= [KNL] 2331 Set number of hash buckets for inode cache. 2332 2333 ima_appraise= [IMA] appraise integrity measurements 2334 Format: { "off" | "enforce" | "fix" | "log" } 2335 default: "enforce" 2336 2337 ima_appraise_tcb [IMA] Deprecated. Use ima_policy= instead. 2338 The builtin appraise policy appraises all files 2339 owned by uid=0. 2340 2341 ima_canonical_fmt [IMA] 2342 Use the canonical format for the binary runtime 2343 measurements, instead of host native format. 2344 2345 ima_hash= [IMA] 2346 Format: { md5 | sha1 | rmd160 | sha256 | sha384 2347 | sha512 | ... } 2348 default: "sha1" 2349 2350 The list of supported hash algorithms is defined 2351 in crypto/hash_info.h. 2352 2353 ima_policy= [IMA] 2354 The builtin policies to load during IMA setup. 2355 Format: "tcb | appraise_tcb | secure_boot | 2356 fail_securely | critical_data" 2357 2358 The "tcb" policy measures all programs exec'd, files 2359 mmap'd for exec, and all files opened with the read 2360 mode bit set by either the effective uid (euid=0) or 2361 uid=0. 2362 2363 The "appraise_tcb" policy appraises the integrity of 2364 all files owned by root. 2365 2366 The "secure_boot" policy appraises the integrity 2367 of files (eg. kexec kernel image, kernel modules, 2368 firmware, policy, etc) based on file signatures. 2369 2370 The "fail_securely" policy forces file signature 2371 verification failure also on privileged mounted 2372 filesystems with the SB_I_UNVERIFIABLE_SIGNATURE 2373 flag. 2374 2375 The "critical_data" policy measures kernel integrity 2376 critical data. 2377 2378 ima_tcb [IMA] Deprecated. Use ima_policy= instead. 2379 Load a policy which meets the needs of the Trusted 2380 Computing Base. This means IMA will measure all 2381 programs exec'd, files mmap'd for exec, and all files 2382 opened for read by uid=0. 2383 2384 ima_template= [IMA] 2385 Select one of defined IMA measurements template formats. 2386 Formats: { "ima" | "ima-ng" | "ima-ngv2" | "ima-sig" | 2387 "ima-sigv2" } 2388 Default: "ima-ng" 2389 2390 ima_template_fmt= 2391 [IMA] Define a custom template format. 2392 Format: { "field1|...|fieldN" } 2393 2394 ima= [IMA] Enable or disable IMA 2395 Format: { "off" | "on" } 2396 Default: "on" 2397 Note that disabling IMA is limited to kdump kernel. 2398 2399 indirect_target_selection= [X86,Intel] Mitigation control for Indirect 2400 Target Selection(ITS) bug in Intel CPUs. Updated 2401 microcode is also required for a fix in IBPB. 2402 2403 on: Enable mitigation (default). 2404 off: Disable mitigation. 2405 force: Force the ITS bug and deploy default 2406 mitigation. 2407 vmexit: Only deploy mitigation if CPU is affected by 2408 guest/host isolation part of ITS. 2409 stuff: Deploy RSB-fill mitigation when retpoline is 2410 also deployed. Otherwise, deploy the default 2411 mitigation. 2412 2413 For details see: 2414 Documentation/admin-guide/hw-vuln/indirect-target-selection.rst 2415 2416 init= [KNL] 2417 Format: <full_path> 2418 Run specified binary instead of /sbin/init as init 2419 process. 2420 2421 initcall_debug [KNL] Trace initcalls as they are executed. Useful 2422 for working out where the kernel is dying during 2423 startup. 2424 2425 initcall_blacklist= [KNL] Do not execute a comma-separated list of 2426 initcall functions. Useful for debugging built-in 2427 modules and initcalls. 2428 2429 initramfs_async= [KNL] 2430 Format: <bool> 2431 Default: 1 2432 This parameter controls whether the initramfs 2433 image is unpacked asynchronously, concurrently 2434 with devices being probed and 2435 initialized. This should normally just work, 2436 but as a debugging aid, one can get the 2437 historical behaviour of the initramfs 2438 unpacking being completed before device_ and 2439 late_ initcalls. 2440 2441 initrd= [BOOT,EARLY] Specify the location of the initial ramdisk 2442 2443 initrdmem= [KNL,EARLY] Specify a physical address and size from which to 2444 load the initrd. If an initrd is compiled in or 2445 specified in the bootparams, it takes priority over this 2446 setting. 2447 Format: ss[KMG],nn[KMG] 2448 Default is 0, 0 2449 2450 init_on_alloc= [MM,EARLY] Fill newly allocated pages and heap objects with 2451 zeroes. 2452 Format: 0 | 1 2453 Default set by CONFIG_INIT_ON_ALLOC_DEFAULT_ON. 2454 2455 init_on_free= [MM,EARLY] Fill freed pages and heap objects with zeroes. 2456 Format: 0 | 1 2457 Default set by CONFIG_INIT_ON_FREE_DEFAULT_ON. 2458 2459 init_pkru= [X86] Specify the default memory protection keys rights 2460 register contents for all processes. 0x55555554 by 2461 default (disallow access to all but pkey 0). Can 2462 override in debugfs after boot. 2463 2464 inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver 2465 Format: <irq> 2466 2467 int_pln_enable [X86] Enable power limit notification interrupt 2468 2469 integrity_audit=[IMA] 2470 Format: { "0" | "1" } 2471 0 -- basic integrity auditing messages. (Default) 2472 1 -- additional integrity auditing messages. 2473 2474 intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option 2475 on 2476 Enable intel iommu driver. 2477 off 2478 Disable intel iommu driver. 2479 igfx_off [Default Off] 2480 By default, gfx is mapped as normal device. If a gfx 2481 device has a dedicated DMAR unit, the DMAR unit is 2482 bypassed by not enabling DMAR with this option. In 2483 this case, gfx device will use physical address for 2484 DMA. 2485 strict [Default Off] 2486 Deprecated, equivalent to iommu.strict=1. 2487 sp_off [Default Off] 2488 By default, super page will be supported if Intel IOMMU 2489 has the capability. With this option, super page will 2490 not be supported. 2491 sm_on 2492 Enable the Intel IOMMU scalable mode if the hardware 2493 advertises that it has support for the scalable mode 2494 translation. 2495 sm_off 2496 Disallow use of the Intel IOMMU scalable mode. 2497 tboot_noforce [Default Off] 2498 Do not force the Intel IOMMU enabled under tboot. 2499 By default, tboot will force Intel IOMMU on, which 2500 could harm performance of some high-throughput 2501 devices like 40GBit network cards, even if identity 2502 mapping is enabled. 2503 Note that using this option lowers the security 2504 provided by tboot because it makes the system 2505 vulnerable to DMA attacks. 2506 2507 intel_idle.max_cstate= [KNL,HW,ACPI,X86] 2508 0 disables intel_idle and fall back on acpi_idle. 2509 1 to 9 specify maximum depth of C-state. 2510 2511 intel_pstate= [X86,EARLY] 2512 disable 2513 Do not enable intel_pstate as the default 2514 scaling driver for the supported processors 2515 active 2516 Use intel_pstate driver to bypass the scaling 2517 governors layer of cpufreq and provides it own 2518 algorithms for p-state selection. There are two 2519 P-state selection algorithms provided by 2520 intel_pstate in the active mode: powersave and 2521 performance. The way they both operate depends 2522 on whether or not the hardware managed P-states 2523 (HWP) feature has been enabled in the processor 2524 and possibly on the processor model. 2525 passive 2526 Use intel_pstate as a scaling driver, but configure it 2527 to work with generic cpufreq governors (instead of 2528 enabling its internal governor). This mode cannot be 2529 used along with the hardware-managed P-states (HWP) 2530 feature. 2531 force 2532 Enable intel_pstate on systems that prohibit it by default 2533 in favor of acpi-cpufreq. Forcing the intel_pstate driver 2534 instead of acpi-cpufreq may disable platform features, such 2535 as thermal controls and power capping, that rely on ACPI 2536 P-States information being indicated to OSPM and therefore 2537 should be used with caution. This option does not work with 2538 processors that aren't supported by the intel_pstate driver 2539 or on platforms that use pcc-cpufreq instead of acpi-cpufreq. 2540 no_hwp 2541 Do not enable hardware P state control (HWP) 2542 if available. 2543 hwp_only 2544 Only load intel_pstate on systems which support 2545 hardware P state control (HWP) if available. 2546 support_acpi_ppc 2547 Enforce ACPI _PPC performance limits. If the Fixed ACPI 2548 Description Table, specifies preferred power management 2549 profile as "Enterprise Server" or "Performance Server", 2550 then this feature is turned on by default. 2551 per_cpu_perf_limits 2552 Allow per-logical-CPU P-State performance control limits using 2553 cpufreq sysfs interface 2554 no_cas 2555 Do not enable capacity-aware scheduling (CAS) on 2556 hybrid systems 2557 2558 intremap= [X86-64,Intel-IOMMU,EARLY] 2559 on enable Interrupt Remapping (default) 2560 off disable Interrupt Remapping 2561 nosid disable Source ID checking 2562 no_x2apic_optout 2563 BIOS x2APIC opt-out request will be ignored 2564 nopost disable Interrupt Posting 2565 posted_msi 2566 enable MSIs delivered as posted interrupts 2567 2568 iomem= Disable strict checking of access to MMIO memory 2569 strict regions from userspace. 2570 relaxed 2571 2572 iommu= [X86,EARLY] 2573 2574 off 2575 Don't initialize and use any kind of IOMMU. 2576 2577 force 2578 Force the use of the hardware IOMMU even when 2579 it is not actually needed (e.g. because < 3 GB 2580 memory). 2581 2582 noforce 2583 Don't force hardware IOMMU usage when it is not 2584 needed. (default). 2585 2586 biomerge 2587 panic 2588 nopanic 2589 merge 2590 nomerge 2591 2592 soft 2593 Use software bounce buffering (SWIOTLB) (default for 2594 Intel machines). This can be used to prevent the usage 2595 of an available hardware IOMMU. 2596 2597 pt 2598 nopt 2599 nobypass [PPC/POWERNV] 2600 Disable IOMMU bypass, using IOMMU for PCI devices. 2601 2602 AMD Gart HW IOMMU-specific options: 2603 2604 <size> 2605 Set the size of the remapping area in bytes. 2606 2607 allowed 2608 Overwrite iommu off workarounds for specific chipsets 2609 2610 fullflush 2611 Flush IOMMU on each allocation (default). 2612 2613 nofullflush 2614 Don't use IOMMU fullflush. 2615 2616 memaper[=<order>] 2617 Allocate an own aperture over RAM with size 2618 32MB<<order. (default: order=1, i.e. 64MB) 2619 2620 merge 2621 Do scatter-gather (SG) merging. Implies "force" 2622 (experimental). 2623 2624 nomerge 2625 Don't do scatter-gather (SG) merging. 2626 2627 noaperture 2628 Ask the IOMMU not to touch the aperture for AGP. 2629 2630 noagp 2631 Don't initialize the AGP driver and use full aperture. 2632 2633 panic 2634 Always panic when IOMMU overflows. 2635 2636 iommu.forcedac= [ARM64,X86,EARLY] Control IOVA allocation for PCI devices. 2637 Format: { "0" | "1" } 2638 0 - Try to allocate a 32-bit DMA address first, before 2639 falling back to the full range if needed. 2640 1 - Allocate directly from the full usable range, 2641 forcing Dual Address Cycle for PCI cards supporting 2642 greater than 32-bit addressing. 2643 2644 iommu.strict= [ARM64,X86,S390,EARLY] Configure TLB invalidation behaviour 2645 Format: { "0" | "1" } 2646 0 - Lazy mode. 2647 Request that DMA unmap operations use deferred 2648 invalidation of hardware TLBs, for increased 2649 throughput at the cost of reduced device isolation. 2650 Will fall back to strict mode if not supported by 2651 the relevant IOMMU driver. 2652 1 - Strict mode. 2653 DMA unmap operations invalidate IOMMU hardware TLBs 2654 synchronously. 2655 unset - Use value of CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT}. 2656 Note: on x86, strict mode specified via one of the 2657 legacy driver-specific options takes precedence. 2658 2659 iommu.passthrough= 2660 [ARM64,X86,EARLY] Configure DMA to bypass the IOMMU by default. 2661 Format: { "0" | "1" } 2662 0 - Use IOMMU translation for DMA. 2663 1 - Bypass the IOMMU for DMA. 2664 unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH. 2665 2666 iommu.debug_pagealloc= 2667 [KNL,EARLY] When CONFIG_IOMMU_DEBUG_PAGEALLOC is set, this 2668 parameter enables the feature at boot time. By default, it 2669 is disabled and the system behaves the same way as a kernel 2670 built without CONFIG_IOMMU_DEBUG_PAGEALLOC. 2671 Format: { "0" | "1" } 2672 0 - Sanitizer disabled. 2673 1 - Sanitizer enabled, expect runtime overhead. 2674 2675 io7= [HW] IO7 for Marvel-based Alpha systems 2676 See comment before marvel_specify_io7 in 2677 arch/alpha/kernel/core_marvel.c. 2678 2679 io_delay= [X86,EARLY] I/O delay method 2680 0x80 2681 Standard port 0x80 based delay 2682 0xed 2683 Alternate port 0xed based delay (needed on some systems) 2684 udelay 2685 Simple two microseconds delay 2686 none 2687 No delay 2688 2689 ip= [IP_PNP] 2690 See Documentation/admin-guide/nfs/nfsroot.rst. 2691 2692 ipcmni_extend [KNL,EARLY] Extend the maximum number of unique System V 2693 IPC identifiers from 32,768 to 16,777,216. 2694 2695 ipe.enforce= [IPE] 2696 Format: <bool> 2697 Determine whether IPE starts in permissive (0) or 2698 enforce (1) mode. The default is enforce. 2699 2700 ipe.success_audit= 2701 [IPE] 2702 Format: <bool> 2703 Start IPE with success auditing enabled, emitting 2704 an audit event when a binary is allowed. The default 2705 is 0. 2706 2707 irqaffinity= [SMP] Set the default irq affinity mask 2708 The argument is a cpu list, as described above. 2709 2710 irqchip.gicv2_force_probe= 2711 [ARM,ARM64,EARLY] 2712 Format: <bool> 2713 Force the kernel to look for the second 4kB page 2714 of a GICv2 controller even if the memory range 2715 exposed by the device tree is too small. 2716 2717 irqchip.gicv3_nolpi= 2718 [ARM,ARM64,EARLY] 2719 Force the kernel to ignore the availability of 2720 LPIs (and by consequence ITSs). Intended for system 2721 that use the kernel as a bootloader, and thus want 2722 to let secondary kernels in charge of setting up 2723 LPIs. 2724 2725 irqchip.gicv3_pseudo_nmi= [ARM64,EARLY] 2726 Enables support for pseudo-NMIs in the kernel. This 2727 requires the kernel to be built with 2728 CONFIG_ARM64_PSEUDO_NMI. 2729 2730 irqchip.riscv_imsic_noipi 2731 [RISC-V,EARLY] 2732 Force the kernel to not use IMSIC software injected MSIs 2733 as IPIs. Intended for system where IMSIC is trap-n-emulated, 2734 and thus want to reduce MMIO traps when triggering IPIs 2735 to multiple harts. 2736 2737 irqfixup [HW] 2738 When an interrupt is not handled search all handlers 2739 for it. Intended to get systems with badly broken 2740 firmware running. 2741 2742 irqhandler.duration_warn_us= [KNL] 2743 Warn if an IRQ handler exceeds the specified duration 2744 threshold in microseconds. Useful for identifying 2745 long-running IRQs in the system. 2746 2747 irqpoll [HW] 2748 When an interrupt is not handled search all handlers 2749 for it. Also check all handlers each timer 2750 interrupt. Intended to get systems with badly broken 2751 firmware running. 2752 2753 isapnp= [ISAPNP] 2754 Format: <RDP>,<reset>,<pci_scan>,<verbosity> 2755 2756 isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance. 2757 [Deprecated - use cpusets instead] 2758 Format: [flag-list,]<cpu-list> 2759 2760 Specify one or more CPUs to isolate from disturbances 2761 specified in the flag list (default: domain): 2762 2763 nohz 2764 Disable the tick when a single task runs as well as 2765 disabling other kernel noises like having RCU callbacks 2766 offloaded. This is equivalent to the nohz_full parameter. 2767 2768 A residual 1Hz tick is offloaded to workqueues, which you 2769 need to affine to housekeeping through the global 2770 workqueue's affinity configured via the 2771 /sys/devices/virtual/workqueue/cpumask sysfs file, or 2772 by using the 'domain' flag described below. 2773 2774 NOTE: by default the global workqueue runs on all CPUs, 2775 so to protect individual CPUs the 'cpumask' file has to 2776 be configured manually after bootup. 2777 2778 domain 2779 Isolate from the general SMP balancing and scheduling 2780 algorithms. Note that performing domain isolation this way 2781 is irreversible: it's not possible to bring back a CPU to 2782 the domains once isolated through isolcpus. It's strongly 2783 advised to use cpusets instead to disable scheduler load 2784 balancing through the "cpuset.sched_load_balance" file. 2785 It offers a much more flexible interface where CPUs can 2786 move in and out of an isolated set anytime. 2787 2788 You can move a process onto or off an "isolated" CPU via 2789 the CPU affinity syscalls or cpuset. 2790 <cpu number> begins at 0 and the maximum value is 2791 "number of CPUs in system - 1". 2792 2793 managed_irq 2794 2795 Isolate from being targeted by managed interrupts 2796 which have an interrupt mask containing isolated 2797 CPUs. The affinity of managed interrupts is 2798 handled by the kernel and cannot be changed via 2799 the /proc/irq/* interfaces. 2800 2801 This isolation is best effort and only effective 2802 if the automatically assigned interrupt mask of a 2803 device queue contains isolated and housekeeping 2804 CPUs. If housekeeping CPUs are online then such 2805 interrupts are directed to the housekeeping CPU 2806 so that IO submitted on the housekeeping CPU 2807 cannot disturb the isolated CPU. 2808 2809 If a queue's affinity mask contains only isolated 2810 CPUs then this parameter has no effect on the 2811 interrupt routing decision, though interrupts are 2812 only delivered when tasks running on those 2813 isolated CPUs submit IO. IO submitted on 2814 housekeeping CPUs has no influence on those 2815 queues. 2816 2817 The format of <cpu-list> is described above. 2818 2819 iucv= [HW,NET] 2820 2821 ivrs_ioapic [HW,X86-64] 2822 Provide an override to the IOAPIC-ID<->DEVICE-ID 2823 mapping provided in the IVRS ACPI table. 2824 By default, PCI segment is 0, and can be omitted. 2825 2826 For example, to map IOAPIC-ID decimal 10 to 2827 PCI segment 0x1 and PCI device 00:14.0, 2828 write the parameter as: 2829 ivrs_ioapic=10@0001:00:14.0 2830 2831 Deprecated formats: 2832 * To map IOAPIC-ID decimal 10 to PCI device 00:14.0 2833 write the parameter as: 2834 ivrs_ioapic[10]=00:14.0 2835 * To map IOAPIC-ID decimal 10 to PCI segment 0x1 and 2836 PCI device 00:14.0 write the parameter as: 2837 ivrs_ioapic[10]=0001:00:14.0 2838 2839 ivrs_hpet [HW,X86-64] 2840 Provide an override to the HPET-ID<->DEVICE-ID 2841 mapping provided in the IVRS ACPI table. 2842 By default, PCI segment is 0, and can be omitted. 2843 2844 For example, to map HPET-ID decimal 10 to 2845 PCI segment 0x1 and PCI device 00:14.0, 2846 write the parameter as: 2847 ivrs_hpet=10@0001:00:14.0 2848 2849 Deprecated formats: 2850 * To map HPET-ID decimal 0 to PCI device 00:14.0 2851 write the parameter as: 2852 ivrs_hpet[0]=00:14.0 2853 * To map HPET-ID decimal 10 to PCI segment 0x1 and 2854 PCI device 00:14.0 write the parameter as: 2855 ivrs_ioapic[10]=0001:00:14.0 2856 2857 ivrs_acpihid [HW,X86-64] 2858 Provide an override to the ACPI-HID:UID<->DEVICE-ID 2859 mapping provided in the IVRS ACPI table. 2860 By default, PCI segment is 0, and can be omitted. 2861 2862 For example, to map UART-HID:UID AMD0020:0 to 2863 PCI segment 0x1 and PCI device ID 00:14.5, 2864 write the parameter as: 2865 ivrs_acpihid=AMD0020:0@0001:00:14.5 2866 2867 Deprecated formats: 2868 * To map UART-HID:UID AMD0020:0 to PCI segment is 0, 2869 PCI device ID 00:14.5, write the parameter as: 2870 ivrs_acpihid[00:14.5]=AMD0020:0 2871 * To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and 2872 PCI device ID 00:14.5, write the parameter as: 2873 ivrs_acpihid[0001:00:14.5]=AMD0020:0 2874 2875 js= [HW,JOY] Analog joystick 2876 See Documentation/input/joydev/joystick.rst. 2877 2878 kasan_multi_shot 2879 [KNL] Enforce KASAN (Kernel Address Sanitizer) to print 2880 report on every invalid memory access. Without this 2881 parameter KASAN will print report only for the first 2882 invalid access. 2883 2884 keep_bootcon [KNL,EARLY] 2885 Do not unregister boot console at start. This is only 2886 useful for debugging when something happens in the window 2887 between unregistering the boot console and initializing 2888 the real console. 2889 2890 keepinitrd [HW,ARM] See retain_initrd. 2891 2892 kernelcore= [KNL,X86,PPC,EARLY] 2893 Format: nn[KMGTPE] | nn% | "mirror" 2894 This parameter specifies the amount of memory usable by 2895 the kernel for non-movable allocations. The requested 2896 amount is spread evenly throughout all nodes in the 2897 system as ZONE_NORMAL. The remaining memory is used for 2898 movable memory in its own zone, ZONE_MOVABLE. In the 2899 event, a node is too small to have both ZONE_NORMAL and 2900 ZONE_MOVABLE, kernelcore memory will take priority and 2901 other nodes will have a larger ZONE_MOVABLE. 2902 2903 ZONE_MOVABLE is used for the allocation of pages that 2904 may be reclaimed or moved by the page migration 2905 subsystem. Note that allocations like PTEs-from-HighMem 2906 still use the HighMem zone if it exists, and the Normal 2907 zone if it does not. 2908 2909 It is possible to specify the exact amount of memory in 2910 the form of "nn[KMGTPE]", a percentage of total system 2911 memory in the form of "nn%", or "mirror". If "mirror" 2912 option is specified, mirrored (reliable) memory is used 2913 for non-movable allocations and remaining memory is used 2914 for Movable pages. "nn[KMGTPE]", "nn%", and "mirror" 2915 are exclusive, so you cannot specify multiple forms. 2916 2917 kfence.burst= [MM,KFENCE] The number of additional successive 2918 allocations to be attempted through KFENCE for each 2919 sample interval. 2920 Format: <unsigned integer> 2921 Default: 0 2922 2923 kfence.check_on_panic= 2924 [MM,KFENCE] Whether to check all KFENCE-managed objects' 2925 canaries on panic. 2926 Format: <bool> 2927 Default: false 2928 2929 kfence.deferrable= 2930 [MM,KFENCE] Whether to use a deferrable timer to trigger 2931 allocations. This avoids forcing CPU wake-ups if the 2932 system is idle, at the risk of a less predictable 2933 sample interval. 2934 Format: <bool> 2935 Default: CONFIG_KFENCE_DEFERRABLE 2936 2937 kfence.fault= [MM,KFENCE] Controls the behavior when a KFENCE 2938 error is detected. 2939 report - print the error report and continue (default). 2940 oops - print the error report and oops. 2941 panic - print the error report and panic. 2942 2943 kfence.sample_interval= 2944 [MM,KFENCE] KFENCE's sample interval in milliseconds. 2945 Format: <unsigned integer> 2946 0 - Disable KFENCE. 2947 >0 - Enabled KFENCE with given sample interval. 2948 Default: CONFIG_KFENCE_SAMPLE_INTERVAL 2949 2950 kfence.skip_covered_thresh= 2951 [MM,KFENCE] If pool utilization reaches this threshold 2952 (pool usage%), KFENCE limits currently covered 2953 allocations of the same source from further filling 2954 up the pool. 2955 Format: <unsigned integer> 2956 Default: 75 2957 2958 kgdbdbgp= [KGDB,HW,EARLY] kgdb over EHCI usb debug port. 2959 Format: <Controller#>[,poll interval] 2960 The controller # is the number of the ehci usb debug 2961 port as it is probed via PCI. The poll interval is 2962 optional and is the number seconds in between 2963 each poll cycle to the debug port in case you need 2964 the functionality for interrupting the kernel with 2965 gdb or control-c on the dbgp connection. When 2966 not using this parameter you use sysrq-g to break into 2967 the kernel debugger. 2968 2969 kgdboc= [KGDB,HW] kgdb over consoles. 2970 Requires a tty driver that supports console polling, 2971 or a supported polling keyboard driver (non-usb). 2972 Serial only format: <serial_device>[,baud] 2973 keyboard only format: kbd 2974 keyboard and serial format: kbd,<serial_device>[,baud] 2975 Optional Kernel mode setting: 2976 kms, kbd format: kms,kbd 2977 kms, kbd and serial format: kms,kbd,<ser_dev>[,baud] 2978 2979 kgdboc_earlycon= [KGDB,HW,EARLY] 2980 If the boot console provides the ability to read 2981 characters and can work in polling mode, you can use 2982 this parameter to tell kgdb to use it as a backend 2983 until the normal console is registered. Intended to 2984 be used together with the kgdboc parameter which 2985 specifies the normal console to transition to. 2986 2987 The name of the early console should be specified 2988 as the value of this parameter. Note that the name of 2989 the early console might be different than the tty 2990 name passed to kgdboc. It's OK to leave the value 2991 blank and the first boot console that implements 2992 read() will be picked. 2993 2994 kgdbwait [KGDB,EARLY] Stop kernel execution and enter the 2995 kernel debugger at the earliest opportunity. 2996 2997 kho= [KEXEC,EARLY] 2998 Format: { "0" | "1" | "off" | "on" | "y" | "n" } 2999 Enables or disables Kexec HandOver. 3000 "0" | "off" | "n" - kexec handover is disabled 3001 "1" | "on" | "y" - kexec handover is enabled 3002 3003 kho_scratch= [KEXEC,EARLY] 3004 Format: ll[KMG],mm[KMG],nn[KMG] | nn% 3005 Defines the size of the KHO scratch region. The KHO 3006 scratch regions are physically contiguous memory 3007 ranges that can only be used for non-kernel 3008 allocations. That way, even when memory is heavily 3009 fragmented with handed over memory, the kexeced 3010 kernel will always have enough contiguous ranges to 3011 bootstrap itself. 3012 3013 It is possible to specify the exact amount of 3014 memory in the form of "ll[KMG],mm[KMG],nn[KMG]" 3015 where the first parameter defines the size of a low 3016 memory scratch area, the second parameter defines 3017 the size of a global scratch area and the third 3018 parameter defines the size of additional per-node 3019 scratch areas. The form "nn%" defines scale factor 3020 (in percents) of memory that was used during boot. 3021 3022 kmac= [MIPS] Korina ethernet MAC address. 3023 Configure the RouterBoard 532 series on-chip 3024 Ethernet adapter MAC address. 3025 3026 kmemleak= [KNL,EARLY] Boot-time kmemleak enable/disable 3027 Valid arguments: on, off 3028 Default: on 3029 Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y, 3030 the default is off. 3031 3032 kprobe_event=[probe-list] 3033 [FTRACE] Add kprobe events and enable at boot time. 3034 The probe-list is a semicolon delimited list of probe 3035 definitions. Each definition is same as kprobe_events 3036 interface, but the parameters are comma delimited. 3037 For example, to add a kprobe event on vfs_read with 3038 arg1 and arg2, add to the command line; 3039 3040 kprobe_event=p,vfs_read,$arg1,$arg2 3041 3042 See also Documentation/trace/kprobetrace.rst "Kernel 3043 Boot Parameter" section. 3044 3045 kpti= [ARM64,EARLY] Control page table isolation of 3046 user and kernel address spaces. 3047 Default: enabled on cores which need mitigation. 3048 0: force disabled 3049 1: force enabled 3050 3051 kunit.enable= [KUNIT] Enable executing KUnit tests. Requires 3052 CONFIG_KUNIT to be set to be fully enabled. The 3053 default value can be overridden via 3054 KUNIT_DEFAULT_ENABLED. 3055 Default is 1 (enabled) 3056 3057 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs. 3058 Default is 0 (don't ignore, but inject #GP) 3059 3060 kvm.eager_page_split= 3061 [KVM,X86] Controls whether or not KVM will try to 3062 proactively split all huge pages during dirty logging. 3063 Eager page splitting reduces interruptions to vCPU 3064 execution by eliminating the write-protection faults 3065 and MMU lock contention that would otherwise be 3066 required to split huge pages lazily. 3067 3068 VM workloads that rarely perform writes or that write 3069 only to a small region of VM memory may benefit from 3070 disabling eager page splitting to allow huge pages to 3071 still be used for reads. 3072 3073 The behavior of eager page splitting depends on whether 3074 KVM_DIRTY_LOG_INITIALLY_SET is enabled or disabled. If 3075 disabled, all huge pages in a memslot will be eagerly 3076 split when dirty logging is enabled on that memslot. If 3077 enabled, eager page splitting will be performed during 3078 the KVM_CLEAR_DIRTY ioctl, and only for the pages being 3079 cleared. 3080 3081 Eager page splitting is only supported when kvm.tdp_mmu=Y. 3082 3083 Default is Y (on). 3084 3085 kvm.enable_pmu=[KVM,X86] 3086 If enabled, KVM will virtualize PMU functionality based 3087 on the virtual CPU model defined by userspace. This 3088 can be overridden on a per-VM basis via 3089 KVM_CAP_PMU_CAPABILITY. 3090 3091 If disabled, KVM will not virtualize PMU functionality, 3092 e.g. MSRs, PMCs, PMIs, etc., even if userspace defines 3093 a virtual CPU model that contains PMU assets. 3094 3095 Note, KVM's vPMU support implicitly requires running 3096 with an in-kernel local APIC, e.g. to deliver PMIs to 3097 the guest. Running without an in-kernel local APIC is 3098 not supported, though KVM will allow such a combination 3099 (with severely degraded functionality). 3100 3101 See also enable_mediated_pmu. 3102 3103 Default is Y (on). 3104 3105 kvm.enable_virt_at_load=[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86] 3106 If enabled, KVM will enable virtualization in hardware 3107 when KVM is loaded, and disable virtualization when KVM 3108 is unloaded (if KVM is built as a module). 3109 3110 If disabled, KVM will dynamically enable and disable 3111 virtualization on-demand when creating and destroying 3112 VMs, i.e. on the 0=>1 and 1=>0 transitions of the 3113 number of VMs. 3114 3115 Enabling virtualization at module load avoids potential 3116 latency for creation of the 0=>1 VM, as KVM serializes 3117 virtualization enabling across all online CPUs. The 3118 "cost" of enabling virtualization when KVM is loaded, 3119 is that doing so may interfere with using out-of-tree 3120 hypervisors that want to "own" virtualization hardware. 3121 3122 kvm.enable_vmware_backdoor=[KVM] Support VMware backdoor PV interface. 3123 Default is false (don't support). 3124 3125 kvm.nx_huge_pages= 3126 [KVM] Controls the software workaround for the 3127 X86_BUG_ITLB_MULTIHIT bug. 3128 force : Always deploy workaround. 3129 off : Never deploy workaround. 3130 auto : Deploy workaround based on the presence of 3131 X86_BUG_ITLB_MULTIHIT. 3132 3133 Default is 'auto'. 3134 3135 If the software workaround is enabled for the host, 3136 guests do need not to enable it for nested guests. 3137 3138 kvm.nx_huge_pages_recovery_ratio= 3139 [KVM] Controls how many 4KiB pages are periodically zapped 3140 back to huge pages. 0 disables the recovery, otherwise if 3141 the value is N KVM will zap 1/Nth of the 4KiB pages every 3142 period (see below). The default is 60. 3143 3144 kvm.nx_huge_pages_recovery_period_ms= 3145 [KVM] Controls the time period at which KVM zaps 4KiB pages 3146 back to huge pages. If the value is a non-zero N, KVM will 3147 zap a portion (see ratio above) of the pages every N msecs. 3148 If the value is 0 (the default), KVM will pick a period based 3149 on the ratio, such that a page is zapped after 1 hour on average. 3150 3151 kvm-{amd,intel}.enable_mediated_pmu=[KVM,AMD,INTEL] 3152 If enabled, KVM will provide a mediated virtual PMU, 3153 instead of the default perf-based virtual PMU (if 3154 kvm.enable_pmu is true and PMU is enumerated via the 3155 virtual CPU model). 3156 3157 With a perf-based vPMU, KVM operates as a user of perf, 3158 i.e. emulates guest PMU counters using perf events. 3159 KVM-created perf events are managed by perf as regular 3160 (guest-only) events, e.g. are scheduled in/out, contend 3161 for hardware resources, etc. Using a perf-based vPMU 3162 allows guest and host usage of the PMU to co-exist, but 3163 incurs non-trivial overhead and can result in silently 3164 dropped guest events (due to resource contention). 3165 3166 With a mediated vPMU, hardware PMU state is context 3167 switched around the world switch to/from the guest. 3168 KVM mediates which events the guest can utilize, but 3169 gives the guest direct access to all other PMU assets 3170 when possible (KVM may intercept some accesses if the 3171 virtual CPU model provides a subset of hardware PMU 3172 functionality). Using a mediated vPMU significantly 3173 reduces PMU virtualization overhead and eliminates lost 3174 guest events, but is mutually exclusive with using perf 3175 to profile KVM guests and adds latency to most VM-Exits 3176 (to context switch PMU state). 3177 3178 Default is N (off). 3179 3180 kvm-amd.nested= [KVM,AMD] Control nested virtualization feature in 3181 KVM/SVM. Default is 1 (enabled). 3182 3183 kvm-amd.npt= [KVM,AMD] Control KVM's use of Nested Page Tables, 3184 a.k.a. Two-Dimensional Page Tables. Default is 1 3185 (enabled). Disable by KVM if hardware lacks support 3186 for NPT. 3187 3188 kvm-amd.ciphertext_hiding_asids= 3189 [KVM,AMD] Ciphertext hiding prevents disallowed accesses 3190 to SNP private memory from reading ciphertext. Instead, 3191 reads will see constant default values (0xff). 3192 3193 If ciphertext hiding is enabled, the joint SEV-ES and 3194 SEV-SNP ASID space is partitioned into separate SEV-ES 3195 and SEV-SNP ASID ranges, with the SEV-SNP range being 3196 [1..max_snp_asid] and the SEV-ES range being 3197 (max_snp_asid..min_sev_asid), where min_sev_asid is 3198 enumerated by CPUID.0x.8000_001F[EDX]. 3199 3200 A non-zero value enables SEV-SNP ciphertext hiding and 3201 adjusts the ASID ranges for SEV-ES and SEV-SNP guests. 3202 KVM caps the number of SEV-SNP ASIDs at the maximum 3203 possible value, e.g. specifying -1u will assign all 3204 joint SEV-ES and SEV-SNP ASIDs to SEV-SNP. Note, 3205 assigning all joint ASIDs to SEV-SNP, i.e. configuring 3206 max_snp_asid == min_sev_asid-1, will effectively make 3207 SEV-ES unusable. 3208 3209 kvm-arm.mode= 3210 [KVM,ARM,EARLY] Select one of KVM/arm64's modes of 3211 operation. 3212 3213 none: Forcefully disable KVM. 3214 3215 nvhe: Standard nVHE-based mode, without support for 3216 protected guests. 3217 3218 protected: Mode with support for guests whose state is 3219 kept private from the host, using VHE or 3220 nVHE depending on HW support. 3221 3222 nested: VHE-based mode with support for nested 3223 virtualization. Requires at least ARMv8.4 3224 hardware (with FEAT_NV2). 3225 3226 Defaults to VHE/nVHE based on hardware support. Setting 3227 mode to "protected" will disable kexec and hibernation 3228 for the host. To force nVHE on VHE hardware, add 3229 "arm64_sw.hvhe=0 id_aa64mmfr1.vh=0" to the 3230 command-line. 3231 "nested" and "protected" are experimental and should be 3232 used with extreme caution. 3233 3234 kvm-arm.vgic_v3_group0_trap= 3235 [KVM,ARM,EARLY] Trap guest accesses to GICv3 group-0 3236 system registers 3237 3238 kvm-arm.vgic_v3_group1_trap= 3239 [KVM,ARM,EARLY] Trap guest accesses to GICv3 group-1 3240 system registers 3241 3242 kvm-arm.vgic_v3_common_trap= 3243 [KVM,ARM,EARLY] Trap guest accesses to GICv3 common 3244 system registers 3245 3246 kvm-arm.vgic_v4_enable= 3247 [KVM,ARM,EARLY] Allow use of GICv4 for direct 3248 injection of LPIs. 3249 3250 kvm-arm.wfe_trap_policy= 3251 [KVM,ARM] Control when to set WFE instruction trap for 3252 KVM VMs. Traps are allowed but not guaranteed by the 3253 CPU architecture. 3254 3255 trap: set WFE instruction trap 3256 3257 notrap: clear WFE instruction trap 3258 3259 kvm-arm.wfi_trap_policy= 3260 [KVM,ARM] Control when to set WFI instruction trap for 3261 KVM VMs. Traps are allowed but not guaranteed by the 3262 CPU architecture. 3263 3264 trap: set WFI instruction trap 3265 3266 notrap: clear WFI instruction trap 3267 3268 kvm_cma_resv_ratio=n [PPC,EARLY] 3269 Reserves given percentage from system memory area for 3270 contiguous memory allocation for KVM hash pagetable 3271 allocation. 3272 By default it reserves 5% of total system memory. 3273 Format: <integer> 3274 Default: 5 3275 3276 kvm-intel.ept= [KVM,Intel] Control KVM's use of Extended Page Tables, 3277 a.k.a. Two-Dimensional Page Tables. Default is 1 3278 (enabled). Disable by KVM if hardware lacks support 3279 for EPT. 3280 3281 kvm-intel.emulate_invalid_guest_state= 3282 [KVM,Intel] Control whether to emulate invalid guest 3283 state. Ignored if kvm-intel.enable_unrestricted_guest=1, 3284 as guest state is never invalid for unrestricted 3285 guests. This param doesn't apply to nested guests (L2), 3286 as KVM never emulates invalid L2 guest state. 3287 Default is 1 (enabled). 3288 3289 kvm-intel.flexpriority= 3290 [KVM,Intel] Control KVM's use of FlexPriority feature 3291 (TPR shadow). Default is 1 (enabled). Disable by KVM if 3292 hardware lacks support for it. 3293 3294 kvm-intel.nested= 3295 [KVM,Intel] Control nested virtualization feature in 3296 KVM/VMX. Default is 1 (enabled). 3297 3298 kvm-intel.unrestricted_guest= 3299 [KVM,Intel] Control KVM's use of unrestricted guest 3300 feature (virtualized real and unpaged mode). Default 3301 is 1 (enabled). Disable by KVM if EPT is disabled or 3302 hardware lacks support for it. 3303 3304 kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault 3305 CVE-2018-3620. 3306 3307 Valid arguments: never, cond, always 3308 3309 always: L1D cache flush on every VMENTER. 3310 cond: Flush L1D on VMENTER only when the code between 3311 VMEXIT and VMENTER can leak host memory. 3312 never: Disables the mitigation 3313 3314 Default is cond (do L1 cache flush in specific instances) 3315 3316 kvm-intel.vpid= [KVM,Intel] Control KVM's use of Virtual Processor 3317 Identification feature (tagged TLBs). Default is 1 3318 (enabled). Disable by KVM if hardware lacks support 3319 for it. 3320 3321 l1d_flush= [X86,INTEL,EARLY] 3322 Control mitigation for L1D based snooping vulnerability. 3323 3324 Certain CPUs are vulnerable to an exploit against CPU 3325 internal buffers which can forward information to a 3326 disclosure gadget under certain conditions. 3327 3328 In vulnerable processors, the speculatively 3329 forwarded data can be used in a cache side channel 3330 attack, to access data to which the attacker does 3331 not have direct access. 3332 3333 This parameter controls the mitigation. The 3334 options are: 3335 3336 on - enable the interface for the mitigation 3337 3338 l1tf= [X86,EARLY] Control mitigation of the L1TF vulnerability on 3339 affected CPUs 3340 3341 The kernel PTE inversion protection is unconditionally 3342 enabled and cannot be disabled. 3343 3344 full 3345 Provides all available mitigations for the 3346 L1TF vulnerability. Disables SMT and 3347 enables all mitigations in the 3348 hypervisors, i.e. unconditional L1D flush. 3349 3350 SMT control and L1D flush control via the 3351 sysfs interface is still possible after 3352 boot. Hypervisors will issue a warning 3353 when the first VM is started in a 3354 potentially insecure configuration, 3355 i.e. SMT enabled or L1D flush disabled. 3356 3357 full,force 3358 Same as 'full', but disables SMT and L1D 3359 flush runtime control. Implies the 3360 'nosmt=force' command line option. 3361 (i.e. sysfs control of SMT is disabled.) 3362 3363 flush 3364 Leaves SMT enabled and enables the default 3365 hypervisor mitigation, i.e. conditional 3366 L1D flush. 3367 3368 SMT control and L1D flush control via the 3369 sysfs interface is still possible after 3370 boot. Hypervisors will issue a warning 3371 when the first VM is started in a 3372 potentially insecure configuration, 3373 i.e. SMT enabled or L1D flush disabled. 3374 3375 flush,nosmt 3376 3377 Disables SMT and enables the default 3378 hypervisor mitigation. 3379 3380 SMT control and L1D flush control via the 3381 sysfs interface is still possible after 3382 boot. Hypervisors will issue a warning 3383 when the first VM is started in a 3384 potentially insecure configuration, 3385 i.e. SMT enabled or L1D flush disabled. 3386 3387 flush,nowarn 3388 Same as 'flush', but hypervisors will not 3389 warn when a VM is started in a potentially 3390 insecure configuration. 3391 3392 off 3393 Disables hypervisor mitigations and doesn't 3394 emit any warnings. 3395 It also drops the swap size and available 3396 RAM limit restriction on both hypervisor and 3397 bare metal. 3398 3399 Default is 'flush'. 3400 3401 For details see: Documentation/admin-guide/hw-vuln/l1tf.rst 3402 3403 l2cr= [PPC] 3404 3405 l3cr= [PPC] 3406 3407 lapic [X86-32,APIC,EARLY] Enable the local APIC even if BIOS 3408 disabled it. 3409 3410 lapic= [X86,APIC] Do not use TSC deadline 3411 value for LAPIC timer one-shot implementation. Default 3412 back to the programmable timer unit in the LAPIC. 3413 Format: notscdeadline 3414 3415 lapic_timer_c2_ok [X86,APIC,EARLY] trust the local apic timer 3416 in C2 power state. 3417 3418 libata.dma= [LIBATA] DMA control 3419 libata.dma=0 Disable all PATA and SATA DMA 3420 libata.dma=1 PATA and SATA Disk DMA only 3421 libata.dma=2 ATAPI (CDROM) DMA only 3422 libata.dma=4 Compact Flash DMA only 3423 Combinations also work, so libata.dma=3 enables DMA 3424 for disks and CDROMs, but not CFs. 3425 3426 libata.ignore_hpa= [LIBATA] Ignore HPA limit 3427 libata.ignore_hpa=0 keep BIOS limits (default) 3428 libata.ignore_hpa=1 ignore limits, using full disk 3429 3430 libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume 3431 when set. 3432 Format: <int> 3433 3434 libata.force= [LIBATA] Force configurations. The format is a comma- 3435 separated list of "[ID:]VAL" where ID is PORT[.DEVICE]. 3436 PORT and DEVICE are decimal numbers matching port, link 3437 or device. Basically, it matches the ATA ID string 3438 printed on console by libata. If the whole ID part is 3439 omitted, the last PORT and DEVICE values are used. If 3440 ID hasn't been specified yet, the configuration applies 3441 to all ports, links and devices. 3442 3443 If only DEVICE is omitted, the parameter applies to 3444 the port and all links and devices behind it. DEVICE 3445 number of 0 either selects the first device or the 3446 first fan-out link behind PMP device. It does not 3447 select the host link. DEVICE number of 15 selects the 3448 host link and device attached to it. 3449 3450 The VAL specifies the configuration to force. As long 3451 as there is no ambiguity, shortcut notation is allowed. 3452 For example, both 1.5 and 1.5G would work for 1.5Gbps. 3453 The following configurations can be forced. 3454 3455 * Cable type: 40c, 80c, short40c, unk, ign or sata. 3456 Any ID with matching PORT is used. 3457 3458 * SATA link speed limit: 1.5Gbps or 3.0Gbps. 3459 3460 * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7]. 3461 udma[/][16,25,33,44,66,100,133] notation is also 3462 allowed. 3463 3464 * nohrst, nosrst, norst: suppress hard, soft and both 3465 resets. 3466 3467 * rstonce: only attempt one reset during hot-unplug 3468 link recovery. 3469 3470 * [no]dbdelay: Enable or disable the extra 200ms delay 3471 before debouncing a link PHY and device presence 3472 detection. 3473 3474 * [no]ncq: Turn on or off NCQ. 3475 3476 * [no]ncqtrim: Enable or disable queued DSM TRIM. 3477 3478 * [no]ncqati: Enable or disable NCQ trim on ATI chipset. 3479 3480 * [no]trim: Enable or disable (unqueued) TRIM. 3481 3482 * trim_zero: Indicate that TRIM command zeroes data. 3483 3484 * max_trim_128m: Set 128M maximum trim size limit. 3485 3486 * [no]dma: Turn on or off DMA transfers. 3487 3488 * atapi_dmadir: Enable ATAPI DMADIR bridge support. 3489 3490 * atapi_mod16_dma: Enable the use of ATAPI DMA for 3491 commands that are not a multiple of 16 bytes. 3492 3493 * [no]dmalog: Enable or disable the use of the 3494 READ LOG DMA EXT command to access logs. 3495 3496 * [no]iddevlog: Enable or disable access to the 3497 identify device data log. 3498 3499 * [no]logdir: Enable or disable access to the general 3500 purpose log directory. 3501 3502 * max_sec=<sectors>: Set the transfer size limit, in 3503 number of 512-byte sectors, to the value specified in 3504 <sectors>. The value specified in <sectors> has to be 3505 a non-zero positive integer. 3506 3507 * max_sec_128: Set transfer size limit to 128 sectors. 3508 3509 * max_sec_1024: Set or clear transfer size limit to 3510 1024 sectors. 3511 3512 * max_sec_lba48: Set or clear transfer size limit to 3513 65535 sectors. 3514 3515 * external: Mark port as external (hotplug-capable). 3516 3517 * [no]lpm: Enable or disable link power management. 3518 3519 * [no]setxfer: Indicate if transfer speed mode setting 3520 should be skipped. 3521 3522 * [no]fua: Disable or enable FUA (Force Unit Access) 3523 support for devices supporting this feature. 3524 3525 * dump_id: Dump IDENTIFY data. 3526 3527 * disable: Disable this device. 3528 3529 If there are multiple matching configurations changing 3530 the same attribute, the last one is used. 3531 3532 liveupdate= [KNL,EARLY] 3533 Format: <bool> 3534 Enable Live Update Orchestrator (LUO). 3535 Default: off. 3536 3537 lockd.nlm_grace_period=P [NFS] Assign grace period. 3538 Format: <integer> 3539 3540 lockd.nlm_tcpport=N [NFS] Assign TCP port. 3541 Format: <integer> 3542 3543 lockd.nlm_timeout=T [NFS] Assign timeout value. 3544 Format: <integer> 3545 3546 lockd.nlm_udpport=M [NFS] Assign UDP port. 3547 Format: <integer> 3548 3549 lockdown= [SECURITY,EARLY] 3550 { integrity | confidentiality } 3551 Enable the kernel lockdown feature. If set to 3552 integrity, kernel features that allow userland to 3553 modify the running kernel are disabled. If set to 3554 confidentiality, kernel features that allow userland 3555 to extract confidential information from the kernel 3556 are also disabled. 3557 3558 locktorture.acq_writer_lim= [KNL] 3559 Set the time limit in jiffies for a lock 3560 acquisition. Acquisitions exceeding this limit 3561 will result in a splat once they do complete. 3562 3563 locktorture.bind_readers= [KNL] 3564 Specify the list of CPUs to which the readers are 3565 to be bound. 3566 3567 locktorture.bind_writers= [KNL] 3568 Specify the list of CPUs to which the writers are 3569 to be bound. 3570 3571 locktorture.call_rcu_chains= [KNL] 3572 Specify the number of self-propagating call_rcu() 3573 chains to set up. These are used to ensure that 3574 there is a high probability of an RCU grace period 3575 in progress at any given time. Defaults to 0, 3576 which disables these call_rcu() chains. 3577 3578 locktorture.long_hold= [KNL] 3579 Specify the duration in milliseconds for the 3580 occasional long-duration lock hold time. Defaults 3581 to 100 milliseconds. Select 0 to disable. 3582 3583 locktorture.nested_locks= [KNL] 3584 Specify the maximum lock nesting depth that 3585 locktorture is to exercise, up to a limit of 8 3586 (MAX_NESTED_LOCKS). Specify zero to disable. 3587 Note that this parameter is ineffective on types 3588 of locks that do not support nested acquisition. 3589 3590 locktorture.nreaders_stress= [KNL] 3591 Set the number of locking read-acquisition kthreads. 3592 Defaults to being automatically set based on the 3593 number of online CPUs. 3594 3595 locktorture.nwriters_stress= [KNL] 3596 Set the number of locking write-acquisition kthreads. 3597 3598 locktorture.onoff_holdoff= [KNL] 3599 Set time (s) after boot for CPU-hotplug testing. 3600 3601 locktorture.onoff_interval= [KNL] 3602 Set time (s) between CPU-hotplug operations, or 3603 zero to disable CPU-hotplug testing. 3604 3605 locktorture.rt_boost= [KNL] 3606 Do periodic testing of real-time lock priority 3607 boosting. Select 0 to disable, 1 to boost 3608 only rt_mutex, and 2 to boost unconditionally. 3609 Defaults to 2, which might seem to be an 3610 odd choice, but which should be harmless for 3611 non-real-time spinlocks, due to their disabling 3612 of preemption. Note that non-realtime mutexes 3613 disable boosting. 3614 3615 locktorture.rt_boost_factor= [KNL] 3616 Number that determines how often and for how 3617 long priority boosting is exercised. This is 3618 scaled down by the number of writers, so that the 3619 number of boosts per unit time remains roughly 3620 constant as the number of writers increases. 3621 On the other hand, the duration of each boost 3622 increases with the number of writers. 3623 3624 locktorture.shuffle_interval= [KNL] 3625 Set task-shuffle interval (jiffies). Shuffling 3626 tasks allows some CPUs to go into dyntick-idle 3627 mode during the locktorture test. 3628 3629 locktorture.shutdown_secs= [KNL] 3630 Set time (s) after boot system shutdown. This 3631 is useful for hands-off automated testing. 3632 3633 locktorture.stat_interval= [KNL] 3634 Time (s) between statistics printk()s. 3635 3636 locktorture.stutter= [KNL] 3637 Time (s) to stutter testing, for example, 3638 specifying five seconds causes the test to run for 3639 five seconds, wait for five seconds, and so on. 3640 This tests the locking primitive's ability to 3641 transition abruptly to and from idle. 3642 3643 locktorture.torture_type= [KNL] 3644 Specify the locking implementation to test. 3645 3646 locktorture.verbose= [KNL] 3647 Enable additional printk() statements. 3648 3649 locktorture.writer_fifo= [KNL] 3650 Run the write-side locktorture kthreads at 3651 sched_set_fifo() real-time priority. 3652 3653 logibm.irq= [HW,MOUSE] Logitech Bus Mouse Driver 3654 Format: <irq> 3655 3656 loglevel= [KNL,EARLY] 3657 All Kernel Messages with a loglevel smaller than the 3658 console loglevel will be printed to the console. It can 3659 also be changed with klogd or other programs. The 3660 loglevels are defined as follows: 3661 3662 0 (KERN_EMERG) system is unusable 3663 1 (KERN_ALERT) action must be taken immediately 3664 2 (KERN_CRIT) critical conditions 3665 3 (KERN_ERR) error conditions 3666 4 (KERN_WARNING) warning conditions 3667 5 (KERN_NOTICE) normal but significant condition 3668 6 (KERN_INFO) informational 3669 7 (KERN_DEBUG) debug-level messages 3670 3671 log_buf_len=n[KMG] [KNL,EARLY] 3672 Sets the size of the printk ring buffer, in bytes. 3673 n must be a power of two and greater than the 3674 minimal size. The minimal size is defined by 3675 LOG_BUF_SHIFT kernel config parameter. There 3676 is also CONFIG_LOG_CPU_MAX_BUF_SHIFT config 3677 parameter that allows to increase the default size 3678 depending on the number of CPUs. See init/Kconfig 3679 for more details. 3680 3681 logo.nologo [FB] Disables display of the built-in Linux logo. 3682 This may be used to provide more screen space for 3683 kernel log messages and is useful when debugging 3684 kernel boot problems. 3685 3686 lp=0 [LP] Specify parallel ports to use, e.g, 3687 lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses 3688 lp=reset first parallel port). 'lp=0' disables the 3689 lp=auto printer driver. 'lp=reset' (which can be 3690 specified in addition to the ports) causes 3691 attached printers to be reset. Using 3692 lp=port1,port2,... specifies the parallel ports 3693 to associate lp devices with, starting with 3694 lp0. A port specification may be 'none' to skip 3695 that lp device, or a parport name such as 3696 'parport0'. Specifying 'lp=auto' instead of a 3697 port specification list means that device IDs 3698 from each port should be examined, to see if 3699 an IEEE 1284-compliant printer is attached; if 3700 so, the driver will manage that printer. 3701 See also header of drivers/char/lp.c. 3702 3703 lpj=n [KNL] 3704 Sets loops_per_jiffy to given constant, thus avoiding 3705 time-consuming boot-time autodetection (up to 250 ms per 3706 CPU). 0 enables autodetection (default). To determine 3707 the correct value for your kernel, boot with normal 3708 autodetection and see what value is printed. Note that 3709 on SMP systems the preset will be applied to all CPUs, 3710 which is likely to cause problems if your CPUs need 3711 significantly divergent settings. An incorrect value 3712 will cause delays in the kernel to be wrong, leading to 3713 unpredictable I/O errors and other breakage. Although 3714 unlikely, in the extreme case this might damage your 3715 hardware. 3716 3717 lsm.debug [SECURITY] Enable LSM initialization debugging output. 3718 3719 lsm=lsm1,...,lsmN 3720 [SECURITY] Choose order of LSM initialization. This 3721 overrides CONFIG_LSM, and the "security=" parameter. 3722 3723 machtype= [Loongson] Share the same kernel image file between 3724 different yeeloong laptops. 3725 Example: machtype=lemote-yeeloong-2f-7inch 3726 3727 maxcpus= [SMP,EARLY] Maximum number of processors that an SMP kernel 3728 will bring up during bootup. maxcpus=n : n >= 0 limits 3729 the kernel to bring up 'n' processors. Surely after 3730 bootup you can bring up the other plugged cpu by executing 3731 "echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus 3732 only takes effect during system bootup. 3733 While n=0 is a special case, it is equivalent to "nosmp", 3734 which also disables the IO APIC. 3735 3736 max_loop= [LOOP] The number of loop block devices that get 3737 (loop.max_loop) unconditionally pre-created at init time. The default 3738 number is configured by BLK_DEV_LOOP_MIN_COUNT. Instead 3739 of statically allocating a predefined number, loop 3740 devices can be requested on-demand with the 3741 /dev/loop-control interface. 3742 3743 mce= [X86-{32,64}] 3744 3745 Please see Documentation/arch/x86/x86_64/machinecheck.rst for sysfs runtime tunables. 3746 3747 off 3748 disable machine check 3749 3750 no_cmci 3751 disable CMCI(Corrected Machine Check Interrupt) that 3752 Intel processor supports. Usually this disablement is 3753 not recommended, but it might be handy if your 3754 hardware is misbehaving. 3755 3756 Note that you'll get more problems without CMCI than 3757 with due to the shared banks, i.e. you might get 3758 duplicated error logs. 3759 3760 dont_log_ce 3761 don't make logs for corrected errors. All events 3762 reported as corrected are silently cleared by OS. This 3763 option will be useful if you have no interest in any 3764 of corrected errors. 3765 3766 ignore_ce 3767 disable features for corrected errors, e.g. 3768 polling timer and CMCI. All events reported as 3769 corrected are not cleared by OS and remained in its 3770 error banks. 3771 3772 Usually this disablement is not recommended, however 3773 if there is an agent checking/clearing corrected 3774 errors (e.g. BIOS or hardware monitoring 3775 applications), conflicting with OS's error handling, 3776 and you cannot deactivate the agent, then this option 3777 will be a help. 3778 3779 no_lmce 3780 do not opt-in to Local MCE delivery. Use legacy method 3781 to broadcast MCEs. 3782 3783 bootlog 3784 enable logging of machine checks left over from 3785 booting. Disabled by default on AMD Fam10h and older 3786 because some BIOS leave bogus ones. 3787 3788 If your BIOS doesn't do that it's a good idea to 3789 enable though to make sure you log even machine check 3790 events that result in a reboot. On Intel systems it is 3791 enabled by default. 3792 3793 nobootlog 3794 disable boot machine check logging. 3795 3796 monarchtimeout (number) 3797 sets the time in us to wait for other CPUs on machine 3798 checks. 0 to disable. 3799 3800 bios_cmci_threshold 3801 don't overwrite the bios-set CMCI threshold. This boot 3802 option prevents Linux from overwriting the CMCI 3803 threshold set by the bios. Without this option, Linux 3804 always sets the CMCI threshold to 1. Enabling this may 3805 make memory predictive failure analysis less effective 3806 if the bios sets thresholds for memory errors since we 3807 will not see details for all errors. 3808 3809 recovery 3810 force-enable recoverable machine check code paths 3811 3812 Everything else is in sysfs now. 3813 3814 3815 md= [HW] RAID subsystems devices and level 3816 See Documentation/admin-guide/md.rst. 3817 3818 mds= [X86,INTEL,EARLY] 3819 Control mitigation for the Micro-architectural Data 3820 Sampling (MDS) vulnerability. 3821 3822 Certain CPUs are vulnerable to an exploit against CPU 3823 internal buffers which can forward information to a 3824 disclosure gadget under certain conditions. 3825 3826 In vulnerable processors, the speculatively 3827 forwarded data can be used in a cache side channel 3828 attack, to access data to which the attacker does 3829 not have direct access. 3830 3831 This parameter controls the MDS mitigation. The 3832 options are: 3833 3834 full - Enable MDS mitigation on vulnerable CPUs 3835 full,nosmt - Enable MDS mitigation and disable 3836 SMT on vulnerable CPUs 3837 off - Unconditionally disable MDS mitigation 3838 3839 On TAA-affected machines, mds=off can be prevented by 3840 an active TAA mitigation as both vulnerabilities are 3841 mitigated with the same mechanism so in order to disable 3842 this mitigation, you need to specify tsx_async_abort=off 3843 too. 3844 3845 Not specifying this option is equivalent to 3846 mds=full. 3847 3848 For details see: Documentation/admin-guide/hw-vuln/mds.rst 3849 3850 mem=nn[KMG] [HEXAGON,EARLY] Set the memory size. 3851 Must be specified, otherwise memory size will be 0. 3852 3853 mem=nn[KMG] [KNL,BOOT,EARLY] Force usage of a specific amount 3854 of memory Amount of memory to be used in cases 3855 as follows: 3856 3857 1 for test; 3858 2 when the kernel is not able to see the whole system memory; 3859 3 memory that lies after 'mem=' boundary is excluded from 3860 the hypervisor, then assigned to KVM guests. 3861 4 to limit the memory available for kdump kernel. 3862 3863 [ARC,MICROBLAZE] - the limit applies only to low memory, 3864 high memory is not affected. 3865 3866 [ARM64] - only limits memory covered by the linear 3867 mapping. The NOMAP regions are not affected. 3868 3869 [X86] Work as limiting max address. Use together 3870 with memmap= to avoid physical address space collisions. 3871 Without memmap= PCI devices could be placed at addresses 3872 belonging to unused RAM. 3873 3874 Note that this only takes effects during boot time since 3875 in above case 3, memory may need be hot added after boot 3876 if system memory of hypervisor is not sufficient. 3877 3878 mem=nn[KMG]@ss[KMG] 3879 [ARM,MIPS,EARLY] - override the memory layout 3880 reported by firmware. 3881 Define a memory region of size nn[KMG] starting at 3882 ss[KMG]. 3883 Multiple different regions can be specified with 3884 multiple mem= parameters on the command line. 3885 3886 mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel 3887 memory. 3888 3889 memblock=debug [KNL,EARLY] Enable memblock debug messages. 3890 3891 memchunk=nn[KMG] 3892 [KNL,SH] Allow user to override the default size for 3893 per-device physically contiguous DMA buffers. 3894 3895 memhp_default_state=online/offline/online_kernel/online_movable 3896 [KNL] Set the initial state for the memory hotplug 3897 onlining policy. If not specified, the default value is 3898 set according to the 3899 CONFIG_MHP_DEFAULT_ONLINE_TYPE kernel config 3900 options. 3901 See Documentation/admin-guide/mm/memory-hotplug.rst. 3902 3903 memmap=exactmap [KNL,X86,EARLY] Enable setting of an exact 3904 E820 memory map, as specified by the user. 3905 Such memmap=exactmap lines can be constructed based on 3906 BIOS output or other requirements. See the memmap=nn@ss 3907 option description. 3908 3909 memmap=nn[KMG]@ss[KMG] 3910 [KNL, X86,MIPS,XTENSA,EARLY] Force usage of a specific region of memory. 3911 Region of memory to be used is from ss to ss+nn. 3912 If @ss[KMG] is omitted, it is equivalent to mem=nn[KMG], 3913 which limits max address to nn[KMG]. 3914 Multiple different regions can be specified, 3915 comma delimited. 3916 Example: 3917 memmap=100M@2G,100M#3G,1G!1024G 3918 3919 memmap=nn[KMG]#ss[KMG] 3920 [KNL,ACPI,EARLY] Mark specific memory as ACPI data. 3921 Region of memory to be marked is from ss to ss+nn. 3922 3923 memmap=nn[KMG]$ss[KMG] 3924 [KNL,ACPI,EARLY] Mark specific memory as reserved. 3925 Region of memory to be reserved is from ss to ss+nn. 3926 Example: Exclude memory from 0x18690000-0x1869ffff 3927 memmap=64K$0x18690000 3928 or 3929 memmap=0x10000$0x18690000 3930 Some bootloaders may need an escape character before '$', 3931 like Grub2, otherwise '$' and the following number 3932 will be eaten. 3933 3934 memmap=nn[KMG]!ss[KMG,EARLY] 3935 [KNL,X86] Mark specific memory as protected. 3936 Region of memory to be used, from ss to ss+nn. 3937 The memory region may be marked as e820 type 12 (0xc) 3938 and is NVDIMM or ADR memory. 3939 3940 memmap=<size>%<offset>-<oldtype>+<newtype> 3941 [KNL,ACPI,EARLY] Convert memory within the specified region 3942 from <oldtype> to <newtype>. If "-<oldtype>" is left 3943 out, the whole region will be marked as <newtype>, 3944 even if previously unavailable. If "+<newtype>" is left 3945 out, matching memory will be removed. Types are 3946 specified as e820 types, e.g., 1 = RAM, 2 = reserved, 3947 3 = ACPI, 12 = PRAM. 3948 3949 memory_corruption_check=0/1 [X86,EARLY] 3950 Some BIOSes seem to corrupt the first 64k of 3951 memory when doing things like suspend/resume. 3952 Setting this option will scan the memory 3953 looking for corruption. Enabling this will 3954 both detect corruption and prevent the kernel 3955 from using the memory being corrupted. 3956 However, it's intended as a diagnostic tool; if 3957 repeatable BIOS-originated corruption always 3958 affects the same memory, you can use memmap= 3959 to prevent the kernel from using that memory. 3960 3961 memory_corruption_check_size=size [X86,EARLY] 3962 By default it checks for corruption in the low 3963 64k, making this memory unavailable for normal 3964 use. Use this parameter to scan for 3965 corruption in more or less memory. 3966 3967 memory_corruption_check_period=seconds [X86,EARLY] 3968 By default it checks for corruption every 60 3969 seconds. Use this parameter to check at some 3970 other rate. 0 disables periodic checking. 3971 3972 memory_hotplug.memmap_on_memory 3973 [KNL,X86,ARM] Boolean flag to enable this feature. 3974 Format: {on | off (default)} 3975 When enabled, runtime hotplugged memory will 3976 allocate its internal metadata (struct pages, 3977 those vmemmap pages cannot be optimized even 3978 if hugetlb_free_vmemmap is enabled) from the 3979 hotadded memory which will allow to hotadd a 3980 lot of memory without requiring additional 3981 memory to do so. 3982 This feature is disabled by default because it 3983 has some implication on large (e.g. GB) 3984 allocations in some configurations (e.g. small 3985 memory blocks). 3986 The state of the flag can be read in 3987 /sys/module/memory_hotplug/parameters/memmap_on_memory. 3988 Note that even when enabled, there are a few cases where 3989 the feature is not effective. 3990 3991 memtest= [KNL,X86,ARM,M68K,PPC,RISCV,EARLY] Enable memtest 3992 Format: <integer> 3993 default : 0 <disable> 3994 Specifies the number of memtest passes to be 3995 performed. Each pass selects another test 3996 pattern from a given set of patterns. Memtest 3997 fills the memory with this pattern, validates 3998 memory contents and reserves bad memory 3999 regions that are detected. 4000 4001 mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control 4002 Valid arguments: on, off 4003 Default: off 4004 mem_encrypt=on: Activate SME 4005 mem_encrypt=off: Do not activate SME 4006 4007 Refer to Documentation/virt/kvm/x86/amd-memory-encryption.rst 4008 for details on when memory encryption can be activated. 4009 4010 mem_sleep_default= [SUSPEND] Default system suspend mode: 4011 s2idle - Suspend-To-Idle 4012 shallow - Power-On Suspend or equivalent (if supported) 4013 deep - Suspend-To-RAM or equivalent (if supported) 4014 See Documentation/admin-guide/pm/sleep-states.rst. 4015 4016 mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms when 4017 the BIOS has incorrectly applied a workaround. TinyBIOS 4018 version 0.98 is known to be affected, 0.99 fixes the 4019 problem by letting the user disable the workaround. 4020 4021 mga= [HW,DRM] 4022 4023 microcode= [X86] Control the behavior of the microcode loader. 4024 Available options, comma separated: 4025 4026 base_rev=X - with <X> with format: <u32> 4027 Set the base microcode revision of each thread when in 4028 debug mode. 4029 4030 dis_ucode_ldr: disable the microcode loader 4031 4032 force_minrev: 4033 Enable or disable the microcode minimal revision 4034 enforcement for the runtime microcode loader. 4035 4036 mini2440= [ARM,HW,KNL] 4037 Format:[0..2][b][c][t] 4038 Default: "0tb" 4039 MINI2440 configuration specification: 4040 0 - The attached screen is the 3.5" TFT 4041 1 - The attached screen is the 7" TFT 4042 2 - The VGA Shield is attached (1024x768) 4043 Leaving out the screen size parameter will not load 4044 the TFT driver, and the framebuffer will be left 4045 unconfigured. 4046 b - Enable backlight. The TFT backlight pin will be 4047 linked to the kernel VESA blanking code and a GPIO 4048 LED. This parameter is not necessary when using the 4049 VGA shield. 4050 c - Enable the s3c camera interface. 4051 t - Reserved for enabling touchscreen support. The 4052 touchscreen support is not enabled in the mainstream 4053 kernel as of 2.6.30, a preliminary port can be found 4054 in the "bleeding edge" mini2440 support kernel at 4055 https://repo.or.cz/w/linux-2.6/mini2440.git 4056 4057 mitigations= 4058 [X86,PPC,S390,ARM64,EARLY] Control optional mitigations for 4059 CPU vulnerabilities. This is a set of curated, 4060 arch-independent options, each of which is an 4061 aggregation of existing arch-specific options. 4062 4063 Note, "mitigations" is supported if and only if the 4064 kernel was built with CPU_MITIGATIONS=y. 4065 4066 off 4067 Disable all optional CPU mitigations. This 4068 improves system performance, but it may also 4069 expose users to several CPU vulnerabilities. 4070 Equivalent to: if nokaslr then kpti=0 [ARM64] 4071 gather_data_sampling=off [X86] 4072 indirect_target_selection=off [X86] 4073 kvm.nx_huge_pages=off [X86] 4074 l1tf=off [X86] 4075 mds=off [X86] 4076 mmio_stale_data=off [X86] 4077 no_entry_flush [PPC] 4078 no_uaccess_flush [PPC] 4079 nobp=0 [S390] 4080 nopti [X86,PPC] 4081 nospectre_bhb [ARM64] 4082 nospectre_v1 [X86,PPC] 4083 nospectre_v2 [X86,PPC,S390,ARM64] 4084 reg_file_data_sampling=off [X86] 4085 retbleed=off [X86] 4086 spec_rstack_overflow=off [X86] 4087 spec_store_bypass_disable=off [X86,PPC] 4088 spectre_bhi=off [X86] 4089 spectre_v2_user=off [X86] 4090 srbds=off [X86,INTEL] 4091 ssbd=force-off [ARM64] 4092 tsa=off [X86,AMD] 4093 tsx_async_abort=off [X86] 4094 vmscape=off [X86] 4095 4096 Exceptions: 4097 This does not have any effect on 4098 kvm.nx_huge_pages when 4099 kvm.nx_huge_pages=force. 4100 4101 auto (default) 4102 Mitigate all CPU vulnerabilities, but leave SMT 4103 enabled, even if it's vulnerable. This is for 4104 users who don't want to be surprised by SMT 4105 getting disabled across kernel upgrades, or who 4106 have other ways of avoiding SMT-based attacks. 4107 Equivalent to: (default behavior) 4108 4109 auto,nosmt 4110 Mitigate all CPU vulnerabilities, disabling SMT 4111 if needed. This is for users who always want to 4112 be fully mitigated, even if it means losing SMT. 4113 Equivalent to: l1tf=flush,nosmt [X86] 4114 mds=full,nosmt [X86] 4115 tsx_async_abort=full,nosmt [X86] 4116 mmio_stale_data=full,nosmt [X86] 4117 retbleed=auto,nosmt [X86] 4118 4119 [X86] After one of the above options, additionally 4120 supports attack-vector based controls as documented in 4121 Documentation/admin-guide/hw-vuln/attack_vector_controls.rst 4122 4123 mminit_loglevel= 4124 [KNL,EARLY] When CONFIG_DEBUG_MEMORY_INIT is set, this 4125 parameter allows control of the logging verbosity for 4126 the additional memory initialisation checks. A value 4127 of 0 disables mminit logging and a level of 4 will 4128 log everything. Information is printed at KERN_DEBUG 4129 so loglevel=8 may also need to be specified. 4130 4131 mmio_stale_data= 4132 [X86,INTEL,EARLY] Control mitigation for the Processor 4133 MMIO Stale Data vulnerabilities. 4134 4135 Processor MMIO Stale Data is a class of 4136 vulnerabilities that may expose data after an MMIO 4137 operation. Exposed data could originate or end in 4138 the same CPU buffers as affected by MDS and TAA. 4139 Therefore, similar to MDS and TAA, the mitigation 4140 is to clear the affected CPU buffers. 4141 4142 This parameter controls the mitigation. The 4143 options are: 4144 4145 full - Enable mitigation on vulnerable CPUs 4146 4147 full,nosmt - Enable mitigation and disable SMT on 4148 vulnerable CPUs. 4149 4150 off - Unconditionally disable mitigation 4151 4152 On MDS or TAA affected machines, 4153 mmio_stale_data=off can be prevented by an active 4154 MDS or TAA mitigation as these vulnerabilities are 4155 mitigated with the same mechanism so in order to 4156 disable this mitigation, you need to specify 4157 mds=off and tsx_async_abort=off too. 4158 4159 Not specifying this option is equivalent to 4160 mmio_stale_data=full. 4161 4162 For details see: 4163 Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst 4164 4165 <module>.async_probe[=<bool>] [KNL] 4166 If no <bool> value is specified or if the value 4167 specified is not a valid <bool>, enable asynchronous 4168 probe on this module. Otherwise, enable/disable 4169 asynchronous probe on this module as indicated by the 4170 <bool> value. See also: module.async_probe 4171 4172 module.async_probe=<bool> 4173 [KNL] When set to true, modules will use async probing 4174 by default. To enable/disable async probing for a 4175 specific module, use the module specific control that 4176 is documented under <module>.async_probe. When both 4177 module.async_probe and <module>.async_probe are 4178 specified, <module>.async_probe takes precedence for 4179 the specific module. 4180 4181 module.enable_dups_trace 4182 [KNL] When CONFIG_MODULE_DEBUG_AUTOLOAD_DUPS is set, 4183 this means that duplicate request_module() calls will 4184 trigger a WARN_ON() instead of a pr_warn(). Note that 4185 if MODULE_DEBUG_AUTOLOAD_DUPS_TRACE is set, WARN_ON()s 4186 will always be issued and this option does nothing. 4187 module.sig_enforce 4188 [KNL] When CONFIG_MODULE_SIG is set, this means that 4189 modules without (valid) signatures will fail to load. 4190 Note that if CONFIG_MODULE_SIG_FORCE is set, that 4191 is always true, so this option does nothing. 4192 4193 module_blacklist= [KNL] Do not load a comma-separated list of 4194 modules. Useful for debugging problem modules. 4195 4196 mousedev.tap_time= 4197 [MOUSE] Maximum time between finger touching and 4198 leaving touchpad surface for touch to be considered 4199 a tap and be reported as a left button click (for 4200 touchpads working in absolute mode only). 4201 Format: <msecs> 4202 mousedev.xres= [MOUSE] Horizontal screen resolution, used for devices 4203 reporting absolute coordinates, such as tablets 4204 mousedev.yres= [MOUSE] Vertical screen resolution, used for devices 4205 reporting absolute coordinates, such as tablets 4206 4207 movablecore= [KNL,X86,PPC,EARLY] 4208 Format: nn[KMGTPE] | nn% 4209 This parameter is the complement to kernelcore=, it 4210 specifies the amount of memory used for migratable 4211 allocations. If both kernelcore and movablecore is 4212 specified, then kernelcore will be at *least* the 4213 specified value but may be more. If movablecore on its 4214 own is specified, the administrator must be careful 4215 that the amount of memory usable for all allocations 4216 is not too small. 4217 4218 movable_node [KNL,EARLY] Boot-time switch to make hotplugable memory 4219 NUMA nodes to be movable. This means that the memory 4220 of such nodes will be usable only for movable 4221 allocations which rules out almost all kernel 4222 allocations. Use with caution! 4223 4224 MTD_Partition= [MTD] 4225 Format: <name>,<region-number>,<size>,<offset> 4226 4227 MTD_Region= [MTD] Format: 4228 <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] 4229 4230 mtdparts= [MTD] 4231 See drivers/mtd/parsers/cmdlinepart.c 4232 4233 mtouchusb.raw_coordinates= 4234 [HW] Make the MicroTouch USB driver use raw coordinates 4235 ('y', default) or cooked coordinates ('n') 4236 4237 mtrr=debug [X86,EARLY] 4238 Enable printing debug information related to MTRR 4239 registers at boot time. 4240 4241 mtrr_chunk_size=nn[KMG,X86,EARLY] 4242 used for mtrr cleanup. It is largest continuous chunk 4243 that could hold holes aka. UC entries. 4244 4245 mtrr_gran_size=nn[KMG,X86,EARLY] 4246 Used for mtrr cleanup. It is granularity of mtrr block. 4247 Default is 1. 4248 Large value could prevent small alignment from 4249 using up MTRRs. 4250 4251 mtrr_spare_reg_nr=n [X86,EARLY] 4252 Format: <integer> 4253 Range: 0,7 : spare reg number 4254 Default : 1 4255 Used for mtrr cleanup. It is spare mtrr entries number. 4256 Set to 2 or more if your graphical card needs more. 4257 4258 multitce=off [PPC] This parameter disables the use of the pSeries 4259 firmware feature for updating multiple TCE entries 4260 at a time. 4261 4262 n2= [NET] SDL Inc. RISCom/N2 synchronous serial card 4263 4264 netdev= [NET] Network devices parameters 4265 Format: <irq>,<io>,<mem_start>,<mem_end>,<name> 4266 Note that mem_start is often overloaded to mean 4267 something different and driver-specific. 4268 This usage is only documented in each driver source 4269 file if at all. 4270 4271 netpoll.carrier_timeout= 4272 [NET] Specifies amount of time (in seconds) that 4273 netpoll should wait for a carrier. By default netpoll 4274 waits 4 seconds. 4275 4276 nf_conntrack.acct= 4277 [NETFILTER] Enable connection tracking flow accounting 4278 0 to disable accounting 4279 1 to enable accounting 4280 Default value is 0. 4281 4282 nfs.cache_getent= 4283 [NFS] sets the pathname to the program which is used 4284 to update the NFS client cache entries. 4285 4286 nfs.cache_getent_timeout= 4287 [NFS] sets the timeout after which an attempt to 4288 update a cache entry is deemed to have failed. 4289 4290 nfs.callback_nr_threads= 4291 [NFSv4] set the total number of threads that the 4292 NFS client will assign to service NFSv4 callback 4293 requests. 4294 4295 nfs.callback_tcpport= 4296 [NFS] set the TCP port on which the NFSv4 callback 4297 channel should listen. 4298 4299 nfs.delay_retrans= 4300 [NFS] specifies the number of times the NFSv4 client 4301 retries the request before returning an EAGAIN error, 4302 after a reply of NFS4ERR_DELAY from the server. 4303 Only applies if the softerr mount option is enabled, 4304 and the specified value is >= 0. 4305 4306 nfs.enable_ino64= 4307 [NFS] enable 64-bit inode numbers. 4308 If zero, the NFS client will fake up a 32-bit inode 4309 number for the readdir() and stat() syscalls instead 4310 of returning the full 64-bit number. 4311 The default is to return 64-bit inode numbers. 4312 4313 nfs.idmap_cache_timeout= 4314 [NFS] set the maximum lifetime for idmapper cache 4315 entries. 4316 4317 nfs.max_session_cb_slots= 4318 [NFSv4.1] Sets the maximum number of session 4319 slots the client will assign to the callback 4320 channel. This determines the maximum number of 4321 callbacks the client will process in parallel for 4322 a particular server. 4323 4324 nfs.max_session_slots= 4325 [NFSv4.1] Sets the maximum number of session slots 4326 the client will attempt to negotiate with the server. 4327 This limits the number of simultaneous RPC requests 4328 that the client can send to the NFSv4.1 server. 4329 Note that there is little point in setting this 4330 value higher than the max_tcp_slot_table_limit. 4331 4332 nfs.nfs4_disable_idmapping= 4333 [NFSv4] When set to the default of '1', this option 4334 ensures that both the RPC level authentication 4335 scheme and the NFS level operations agree to use 4336 numeric uids/gids if the mount is using the 4337 'sec=sys' security flavour. In effect it is 4338 disabling idmapping, which can make migration from 4339 legacy NFSv2/v3 systems to NFSv4 easier. 4340 Servers that do not support this mode of operation 4341 will be autodetected by the client, and it will fall 4342 back to using the idmapper. 4343 To turn off this behaviour, set the value to '0'. 4344 4345 nfs.nfs4_unique_id= 4346 [NFS4] Specify an additional fixed unique ident- 4347 ification string that NFSv4 clients can insert into 4348 their nfs_client_id4 string. This is typically a 4349 UUID that is generated at system install time. 4350 4351 nfs.recover_lost_locks= 4352 [NFSv4] Attempt to recover locks that were lost due 4353 to a lease timeout on the server. Please note that 4354 doing this risks data corruption, since there are 4355 no guarantees that the file will remain unchanged 4356 after the locks are lost. 4357 If you want to enable the kernel legacy behaviour of 4358 attempting to recover these locks, then set this 4359 parameter to '1'. 4360 The default parameter value of '0' causes the kernel 4361 not to attempt recovery of lost locks. 4362 4363 nfs.send_implementation_id= 4364 [NFSv4.1] Send client implementation identification 4365 information in exchange_id requests. 4366 If zero, no implementation identification information 4367 will be sent. 4368 The default is to send the implementation identification 4369 information. 4370 4371 nfs4.layoutstats_timer= 4372 [NFSv4.2] Change the rate at which the kernel sends 4373 layoutstats to the pNFS metadata server. 4374 4375 Setting this to value to 0 causes the kernel to use 4376 whatever value is the default set by the layout 4377 driver. A non-zero value sets the minimum interval 4378 in seconds between layoutstats transmissions. 4379 4380 nfsd.inter_copy_offload_enable= 4381 [NFSv4.2] When set to 1, the server will support 4382 server-to-server copies for which this server is 4383 the destination of the copy. 4384 4385 nfsd.nfs4_disable_idmapping= 4386 [NFSv4] When set to the default of '1', the NFSv4 4387 server will return only numeric uids and gids to 4388 clients using auth_sys, and will accept numeric uids 4389 and gids from such clients. This is intended to ease 4390 migration from NFSv2/v3. 4391 4392 nfsd.nfsd4_ssc_umount_timeout= 4393 [NFSv4.2] When used as the destination of a 4394 server-to-server copy, knfsd temporarily mounts 4395 the source server. It caches the mount in case 4396 it will be needed again, and discards it if not 4397 used for the number of milliseconds specified by 4398 this parameter. 4399 4400 nfsaddrs= [NFS] Deprecated. Use ip= instead. 4401 See Documentation/admin-guide/nfs/nfsroot.rst. 4402 4403 nfsroot= [NFS] nfs root filesystem for disk-less boxes. 4404 See Documentation/admin-guide/nfs/nfsroot.rst. 4405 4406 nfsrootdebug [NFS] enable nfsroot debugging messages. 4407 See Documentation/admin-guide/nfs/nfsroot.rst. 4408 4409 nmi_backtrace.backtrace_idle [KNL] 4410 Dump stacks even of idle CPUs in response to an 4411 NMI stack-backtrace request. 4412 4413 nmi_debug= [KNL,SH] Specify one or more actions to take 4414 when a NMI is triggered. 4415 Format: [state][,regs][,debounce][,die] 4416 4417 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels 4418 Format: [panic,][nopanic,][rNNN,][num] 4419 Valid num: 0 or 1 4420 0 - turn hardlockup detector in nmi_watchdog off 4421 1 - turn hardlockup detector in nmi_watchdog on 4422 rNNN - configure the watchdog with raw perf event 0xNNN 4423 4424 When panic is specified, panic when an NMI watchdog 4425 timeout occurs (or 'nopanic' to not panic on an NMI 4426 watchdog, if CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is set) 4427 To disable both hard and soft lockup detectors, 4428 please see 'nowatchdog'. 4429 This is useful when you use a panic=... timeout and 4430 need the box quickly up again. 4431 4432 These settings can be accessed at runtime via 4433 the nmi_watchdog and hardlockup_panic sysctls. 4434 4435 no387 [BUGS=X86-32] Tells the kernel to use the 387 maths 4436 emulation library even if a 387 maths coprocessor 4437 is present. 4438 4439 no4lvl [RISCV,EARLY] Disable 4-level and 5-level paging modes. 4440 Forces kernel to use 3-level paging instead. 4441 4442 no5lvl [X86-64,RISCV,EARLY] Disable 5-level paging mode. Forces 4443 kernel to use 4-level paging instead. 4444 4445 noalign [KNL,ARM] 4446 4447 noapic [SMP,APIC,EARLY] Tells the kernel to not make use of any 4448 IOAPICs that may be present in the system. 4449 4450 noapictimer [APIC,X86] Don't set up the APIC timer 4451 4452 noautogroup Disable scheduler automatic task group creation. 4453 4454 nocache [ARM,EARLY] 4455 4456 no_console_suspend 4457 [HW] Never suspend the console 4458 Disable suspending of consoles during suspend and 4459 hibernate operations. Once disabled, debugging 4460 messages can reach various consoles while the rest 4461 of the system is being put to sleep (ie, while 4462 debugging driver suspend/resume hooks). This may 4463 not work reliably with all consoles, but is known 4464 to work with serial and VGA consoles. 4465 To facilitate more flexible debugging, we also add 4466 console_suspend, a printk module parameter to control 4467 it. Users could use console_suspend (usually 4468 /sys/module/printk/parameters/console_suspend) to 4469 turn on/off it dynamically. 4470 4471 no_debug_objects 4472 [KNL,EARLY] Disable object debugging 4473 4474 nodsp [SH] Disable hardware DSP at boot time. 4475 4476 noefi [EFI,EARLY] Disable EFI runtime services support. 4477 4478 no_entry_flush [PPC,EARLY] Don't flush the L1-D cache when entering the kernel. 4479 4480 noexec32 [X86-64] 4481 This affects only 32-bit executables. 4482 noexec32=on: enable non-executable mappings (default) 4483 read doesn't imply executable mappings 4484 noexec32=off: disable non-executable mappings 4485 read implies executable mappings 4486 4487 no_file_caps Tells the kernel not to honor file capabilities. The 4488 only way then for a file to be executed with privilege 4489 is to be setuid root or executed by root. 4490 4491 nofpu [MIPS,SH] Disable hardware FPU at boot time. 4492 4493 nofsgsbase [X86] Disables FSGSBASE instructions. 4494 4495 nofxsr [BUGS=X86-32] Disables x86 floating point extended 4496 register save and restore. The kernel will only save 4497 legacy floating-point registers on task switch. 4498 4499 nogbpages [X86] Do not use GB pages for kernel direct mappings. 4500 4501 no_hash_pointers 4502 [KNL,EARLY] 4503 Alias for "hash_pointers=never". 4504 4505 nohibernate [HIBERNATION] Disable hibernation and resume. 4506 4507 nohlt [ARM,ARM64,MICROBLAZE,MIPS,PPC,RISCV,SH] Forces the kernel to 4508 busy wait in do_idle() and not use the arch_cpu_idle() 4509 implementation; requires CONFIG_GENERIC_IDLE_POLL_SETUP 4510 to be effective. This is useful on platforms where the 4511 sleep(SH) or wfi(ARM,ARM64) instructions do not work 4512 correctly or when doing power measurements to evaluate 4513 the impact of the sleep instructions. This is also 4514 useful when using JTAG debugger. 4515 4516 nohpet [X86] Don't use the HPET timer. 4517 4518 nohugeiomap [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge I/O mappings. 4519 4520 nohugevmalloc [KNL,X86,PPC,ARM64,EARLY] Disable kernel huge vmalloc mappings. 4521 4522 nohz= [KNL] Boottime enable/disable dynamic ticks 4523 Valid arguments: on, off 4524 Default: on 4525 4526 nohz_full= [KNL,BOOT,SMP,ISOL] 4527 The argument is a cpu list, as described above. 4528 In kernels built with CONFIG_NO_HZ_FULL=y, set 4529 the specified list of CPUs whose tick will be stopped 4530 whenever possible. The boot CPU will be forced outside 4531 the range to maintain the timekeeping. Any CPUs 4532 in this list will have their RCU callbacks offloaded, 4533 just as if they had also been called out in the 4534 rcu_nocbs= boot parameter. 4535 4536 Note that this argument takes precedence over 4537 the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option. 4538 4539 noinitrd [Deprecated,RAM] Tells the kernel not to load any configured 4540 initial RAM disk. Currently this parameter applies to 4541 initrd only, not to initramfs. But it applies to both 4542 in EFI mode. 4543 4544 nointremap [X86-64,Intel-IOMMU,EARLY] Do not enable interrupt 4545 remapping. 4546 [Deprecated - use intremap=off] 4547 4548 noinvpcid [X86,EARLY] Disable the INVPCID cpu feature. 4549 4550 noiotrap [SH] Disables trapped I/O port accesses. 4551 4552 noirqdebug [X86-32] Disables the code which attempts to detect and 4553 disable unhandled interrupt sources. 4554 4555 noisapnp [ISAPNP] Disables ISA PnP code. 4556 4557 nokaslr [KNL,EARLY] 4558 When CONFIG_RANDOMIZE_BASE is set, this disables 4559 kernel and module base offset ASLR (Address Space 4560 Layout Randomization). 4561 4562 no-kvmapf [X86,KVM,EARLY] Disable paravirtualized asynchronous page 4563 fault handling. 4564 4565 no-kvmclock [X86,KVM,EARLY] Disable paravirtualized KVM clock driver 4566 4567 nolapic [X86-32,APIC,EARLY] Do not enable or use the local APIC. 4568 4569 nolapic_timer [X86-32,APIC,EARLY] Do not use the local APIC timer. 4570 4571 nomce [X86-32] Disable Machine Check Exception 4572 4573 nomfgpt [X86-32] Disable Multi-Function General Purpose 4574 Timer usage (for AMD Geode machines). 4575 4576 nomodeset Disable kernel modesetting. Most systems' firmware 4577 sets up a display mode and provides framebuffer memory 4578 for output. With nomodeset, DRM and fbdev drivers will 4579 not load if they could possibly displace the pre- 4580 initialized output. Only the system framebuffer will 4581 be available for use. The respective drivers will not 4582 perform display-mode changes or accelerated rendering. 4583 4584 Useful as error fallback, or for testing and debugging. 4585 4586 nomodule Disable module load 4587 4588 nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to 4589 shutdown the other cpus. Instead use the REBOOT_VECTOR 4590 irq. 4591 4592 nopat [X86,EARLY] Disable PAT (page attribute table extension of 4593 pagetables) support. 4594 4595 nopcid [X86-64,EARLY] Disable the PCID cpu feature. 4596 4597 nopku [X86] Disable Memory Protection Keys CPU feature found 4598 in some Intel CPUs. 4599 4600 nopti [X86-64,EARLY] 4601 Equivalent to pti=off 4602 4603 nopv= [X86,XEN,KVM,HYPER_V,VMWARE,EARLY] 4604 Disables the PV optimizations forcing the guest to run 4605 as generic guest with no PV drivers. Currently support 4606 XEN HVM, KVM, HYPER_V and VMWARE guest. 4607 4608 nopvspin [X86,XEN,KVM,EARLY] 4609 Disables the qspinlock slow path using PV optimizations 4610 which allow the hypervisor to 'idle' the guest on lock 4611 contention. 4612 4613 norandmaps Don't use address space randomization. Equivalent to 4614 echo 0 > /proc/sys/kernel/randomize_va_space 4615 4616 noreplace-smp [X86-32,SMP] Don't replace SMP instructions 4617 with UP alternatives 4618 4619 noresume [SWSUSP] Disables resume and restores original swap 4620 space. 4621 4622 no-scroll [VGA] Disables scrollback. 4623 This is required for the Braillex ib80-piezo Braille 4624 reader made by F.H. Papenmeier (Germany). 4625 4626 nosgx [X86-64,SGX,EARLY] Disables Intel SGX kernel support. 4627 4628 nosmap [PPC,EARLY] 4629 Disable SMAP (Supervisor Mode Access Prevention) 4630 even if it is supported by processor. 4631 4632 nosmep [PPC64s,EARLY] 4633 Disable SMEP (Supervisor Mode Execution Prevention) 4634 even if it is supported by processor. 4635 4636 nosmp [SMP,EARLY] Tells an SMP kernel to act as a UP kernel, 4637 and disable the IO APIC. legacy for "maxcpus=0". 4638 4639 nosmt [KNL,MIPS,PPC,EARLY] Disable symmetric multithreading (SMT). 4640 Equivalent to smt=1. 4641 4642 [KNL,LOONGARCH,X86,PPC,S390] Disable symmetric multithreading (SMT). 4643 nosmt=force: Force disable SMT, cannot be undone 4644 via the sysfs control file. 4645 4646 nosoftlockup [KNL] Disable the soft-lockup detector. 4647 4648 nospec_store_bypass_disable 4649 [HW,EARLY] Disable all mitigations for the Speculative 4650 Store Bypass vulnerability 4651 4652 nospectre_bhb [ARM64,EARLY] Disable all mitigations for Spectre-BHB (branch 4653 history injection) vulnerability. System may allow data leaks 4654 with this option. 4655 4656 nospectre_v1 [X86,PPC,EARLY] Disable mitigations for Spectre Variant 1 4657 (bounds check bypass). With this option data leaks are 4658 possible in the system. 4659 4660 nospectre_v2 [X86,PPC_E500,ARM64,EARLY] Disable all mitigations 4661 for the Spectre variant 2 (indirect branch 4662 prediction) vulnerability. System may allow data 4663 leaks with this option. 4664 4665 no-steal-acc [X86,PV_OPS,ARM64,PPC/PSERIES,RISCV,LOONGARCH,EARLY] 4666 Disable paravirtualized steal time accounting. steal time 4667 is computed, but won't influence scheduler behaviour 4668 4669 nosync [HW,M68K] Disables sync negotiation for all devices. 4670 4671 no_timer_check [X86,APIC] Disables the code which tests for broken 4672 timer IRQ sources, i.e., the IO-APIC timer. This can 4673 work around problems with incorrect timer 4674 initialization on some boards. 4675 4676 no_uaccess_flush 4677 [PPC,EARLY] Don't flush the L1-D cache after accessing user data. 4678 4679 novmcoredd [KNL,KDUMP] 4680 Disable device dump. Device dump allows drivers to 4681 append dump data to vmcore so you can collect driver 4682 specified debug info. Drivers can append the data 4683 without any limit and this data is stored in memory, 4684 so this may cause significant memory stress. Disabling 4685 device dump can help save memory but the driver debug 4686 data will be no longer available. This parameter 4687 is only available when CONFIG_PROC_VMCORE_DEVICE_DUMP 4688 is set. 4689 4690 no-vmw-sched-clock 4691 [X86,PV_OPS,EARLY] Disable paravirtualized VMware 4692 scheduler clock and use the default one. 4693 4694 nowatchdog [KNL] Disable both lockup detectors, i.e. 4695 soft-lockup and NMI watchdog (hard-lockup). 4696 4697 nowb [ARM,EARLY] 4698 4699 nox2apic [X86-64,APIC,EARLY] Do not enable x2APIC mode. 4700 4701 NOTE: this parameter will be ignored on systems with the 4702 LEGACY_XAPIC_DISABLED bit set in the 4703 IA32_XAPIC_DISABLE_STATUS MSR. 4704 4705 noxsave [BUGS=X86] Disables x86 extended register state save 4706 and restore using xsave. The kernel will fallback to 4707 enabling legacy floating-point and sse state. 4708 4709 noxsaveopt [X86] Disables xsaveopt used in saving x86 extended 4710 register states. The kernel will fall back to use 4711 xsave to save the states. By using this parameter, 4712 performance of saving the states is degraded because 4713 xsave doesn't support modified optimization while 4714 xsaveopt supports it on xsaveopt enabled systems. 4715 4716 noxsaves [X86] Disables xsaves and xrstors used in saving and 4717 restoring x86 extended register state in compacted 4718 form of xsave area. The kernel will fall back to use 4719 xsaveopt and xrstor to save and restore the states 4720 in standard form of xsave area. By using this 4721 parameter, xsave area per process might occupy more 4722 memory on xsaves enabled systems. 4723 4724 nr_cpus= [SMP,EARLY] Maximum number of processors that an SMP kernel 4725 could support. nr_cpus=n : n >= 1 limits the kernel to 4726 support 'n' processors. It could be larger than the 4727 number of already plugged CPU during bootup, later in 4728 runtime you can physically add extra cpu until it reaches 4729 n. So during boot up some boot time memory for per-cpu 4730 variables need be pre-allocated for later physical cpu 4731 hot plugging. 4732 4733 nr_uarts= [SERIAL] maximum number of UARTs to be registered. 4734 4735 numa=off [KNL, ARM64, PPC, RISCV, SPARC, X86, EARLY] 4736 Disable NUMA, Only set up a single NUMA node 4737 spanning all memory. 4738 4739 numa=fake=<size>[MG] 4740 [KNL, ARM64, RISCV, X86, EARLY] 4741 If given as a memory unit, fills all system RAM with 4742 nodes of size interleaved over physical nodes. 4743 4744 numa=fake=<N> 4745 [KNL, ARM64, RISCV, X86, EARLY] 4746 If given as an integer, fills all system RAM with N 4747 fake nodes interleaved over physical nodes. 4748 4749 numa=fake=<N>U 4750 [KNL, ARM64, RISCV, X86, EARLY] 4751 If given as an integer followed by 'U', it will 4752 divide each physical node into N emulated nodes. 4753 4754 numa=noacpi [X86] Don't parse the SRAT table for NUMA setup 4755 4756 numa=nohmat [X86] Don't parse the HMAT table for NUMA setup, or 4757 soft-reserved memory partitioning. 4758 4759 numa_balancing= [KNL,ARM64,PPC,RISCV,S390,X86] Enable or disable automatic 4760 NUMA balancing. 4761 Allowed values are enable and disable 4762 4763 numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA. 4764 'node', 'default' can be specified 4765 This can be set from sysctl after boot. 4766 See Documentation/admin-guide/sysctl/vm.rst for details. 4767 4768 nvme.quirks= [NVME] A list of quirk entries to augment the built-in 4769 nvme quirk list. List entries are separated by a 4770 '-' character. 4771 Each entry has the form VendorID:ProductID:quirk_names. 4772 The IDs are 4-digits hex numbers and quirk_names is a 4773 list of quirk names separated by commas. A quirk name 4774 can be prefixed by '^', meaning that the specified 4775 quirk must be disabled. 4776 4777 Example: 4778 nvme.quirks=7710:2267:bogus_nid,^identify_cns-9900:7711:broken_msi 4779 4780 ohci1394_dma=early [HW,EARLY] enable debugging via the ohci1394 driver. 4781 See Documentation/core-api/debugging-via-ohci1394.rst for more 4782 info. 4783 4784 olpc_ec_timeout= [OLPC] ms delay when issuing EC commands 4785 Rather than timing out after 20 ms if an EC 4786 command is not properly ACKed, override the length 4787 of the timeout. We have interrupts disabled while 4788 waiting for the ACK, so if this is set too high 4789 interrupts *may* be lost! 4790 4791 omap_mux= [OMAP] Override bootloader pin multiplexing. 4792 Format: <mux_mode0.mode_name=value>... 4793 For example, to override I2C bus2: 4794 omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100 4795 4796 onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration 4797 4798 Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock] 4799 4800 boundary - index of last SLC block on Flex-OneNAND. 4801 The remaining blocks are configured as MLC blocks. 4802 lock - Configure if Flex-OneNAND boundary should be locked. 4803 Once locked, the boundary cannot be changed. 4804 1 indicates lock status, 0 indicates unlock status. 4805 4806 oops=panic [KNL,EARLY] 4807 Always panic on oopses. Default is to just kill the 4808 process, but there is a small probability of 4809 deadlocking the machine. 4810 This will also cause panics on machine check exceptions. 4811 Useful together with panic=30 to trigger a reboot. 4812 4813 page_alloc.shuffle= 4814 [KNL] Boolean flag to control whether the page allocator 4815 should randomize its free lists. This parameter can be 4816 used to enable/disable page randomization. The state of 4817 the flag can be read from sysfs at: 4818 /sys/module/page_alloc/parameters/shuffle. 4819 This parameter is only available if CONFIG_SHUFFLE_PAGE_ALLOCATOR=y. 4820 4821 page_owner= [KNL,EARLY] Boot-time page_owner enabling option. 4822 Storage of the information about who allocated 4823 each page is disabled in default. With this switch, 4824 we can turn it on. 4825 on: enable the feature 4826 4827 page_poison= [KNL,EARLY] Boot-time parameter changing the state of 4828 poisoning on the buddy allocator, available with 4829 CONFIG_PAGE_POISONING=y. 4830 off: turn off poisoning (default) 4831 on: turn on poisoning 4832 4833 page_reporting.page_reporting_order= 4834 [KNL] Minimal page reporting order 4835 Format: <integer> 4836 Adjust the minimal page reporting order. The page 4837 reporting is disabled when it exceeds MAX_PAGE_ORDER. 4838 4839 panic= [KNL] Kernel behaviour on panic: delay <timeout> 4840 timeout > 0: seconds before rebooting 4841 timeout = 0: wait forever 4842 timeout < 0: reboot immediately 4843 Format: <timeout> 4844 4845 panic_on_taint= [KNL,EARLY] 4846 Bitmask for conditionally calling panic() in add_taint() 4847 Format: <hex>[,nousertaint] 4848 Hexadecimal bitmask representing the set of TAINT flags 4849 that will cause the kernel to panic when add_taint() is 4850 called with any of the flags in this set. 4851 The optional switch "nousertaint" can be utilized to 4852 prevent userspace forced crashes by writing to sysctl 4853 /proc/sys/kernel/tainted any flagset matching with the 4854 bitmask set on panic_on_taint. 4855 See Documentation/admin-guide/tainted-kernels.rst for 4856 extra details on the taint flags that users can pick 4857 to compose the bitmask to assign to panic_on_taint. 4858 4859 panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump 4860 on a WARN(). 4861 4862 panic_force_cpu= 4863 [KNL,SMP] Force panic handling to execute on a specific CPU. 4864 Format: <cpu number> 4865 Some platforms require panic handling to occur on a 4866 specific CPU for the crash kernel to function correctly. 4867 This can be due to firmware limitations, interrupt routing 4868 constraints, or platform-specific requirements where only 4869 a particular CPU can safely enter the crash kernel. 4870 When set, panic() will redirect execution to the specified 4871 CPU before proceeding with the normal panic and kexec flow. 4872 If the target CPU is offline or unavailable, panic proceeds 4873 on the current CPU. 4874 This option should only be used for systems with the above 4875 constraints as it might cause the panic operation to be less reliable. 4876 4877 panic_print= Bitmask for printing system info when panic happens. 4878 User can chose combination of the following bits: 4879 bit 0: print all tasks info 4880 bit 1: print system memory info 4881 bit 2: print timer info 4882 bit 3: print locks info if CONFIG_LOCKDEP is on 4883 bit 4: print ftrace buffer 4884 bit 5: replay all kernel messages on consoles at the end of panic 4885 bit 6: print all CPUs backtrace (if available in the arch) 4886 bit 7: print only tasks in uninterruptible (blocked) state 4887 *Be aware* that this option may print a _lot_ of lines, 4888 so there are risks of losing older messages in the log. 4889 Use this option carefully, maybe worth to setup a 4890 bigger log buffer with "log_buf_len" along with this. 4891 4892 panic_sys_info= A comma separated list of extra information to be dumped 4893 on panic. 4894 Format: val[,val...] 4895 Where @val can be any of the following: 4896 4897 tasks: print all tasks info 4898 mem: print system memory info 4899 timers: print timers info 4900 locks: print locks info if CONFIG_LOCKDEP is on 4901 ftrace: print ftrace buffer 4902 all_bt: print all CPUs backtrace (if available in the arch) 4903 blocked_tasks: print only tasks in uninterruptible (blocked) state 4904 4905 This is a human readable alternative to the 'panic_print' option. 4906 4907 panic_console_replay 4908 When panic happens, replay all kernel messages on 4909 consoles at the end of panic. 4910 4911 parkbd.port= [HW] Parallel port number the keyboard adapter is 4912 connected to, default is 0. 4913 Format: <parport#> 4914 parkbd.mode= [HW] Parallel port keyboard adapter mode of operation, 4915 0 for XT, 1 for AT (default is AT). 4916 Format: <mode> 4917 4918 parport= [HW,PPT] Specify parallel ports. 0 disables. 4919 Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] } 4920 Use 'auto' to force the driver to use any 4921 IRQ/DMA settings detected (the default is to 4922 ignore detected IRQ/DMA settings because of 4923 possible conflicts). You can specify the base 4924 address, IRQ, and DMA settings; IRQ and DMA 4925 should be numbers, or 'auto' (for using detected 4926 settings on that particular port), or 'nofifo' 4927 (to avoid using a FIFO even if it is detected). 4928 Parallel ports are assigned in the order they 4929 are specified on the command line, starting 4930 with parport0. 4931 4932 parport_init_mode= [HW,PPT] 4933 Configure VIA parallel port to operate in 4934 a specific mode. This is necessary on Pegasos 4935 computer where firmware has no options for setting 4936 up parallel port mode and sets it to spp. 4937 Currently this function knows 686a and 8231 chips. 4938 Format: [spp|ps2|epp|ecp|ecpepp] 4939 4940 pata_legacy.all= [HW,LIBATA] 4941 Format: <int> 4942 Set to non-zero to probe primary and secondary ISA 4943 port ranges on PCI systems where no PCI PATA device 4944 has been found at either range. Disabled by default. 4945 4946 pata_legacy.autospeed= [HW,LIBATA] 4947 Format: <int> 4948 Set to non-zero if a chip is present that snoops speed 4949 changes. Disabled by default. 4950 4951 pata_legacy.ht6560a= [HW,LIBATA] 4952 Format: <int> 4953 Set to 1, 2, or 3 for HT 6560A on the primary channel, 4954 the secondary channel, or both channels respectively. 4955 Disabled by default. 4956 4957 pata_legacy.ht6560b= [HW,LIBATA] 4958 Format: <int> 4959 Set to 1, 2, or 3 for HT 6560B on the primary channel, 4960 the secondary channel, or both channels respectively. 4961 Disabled by default. 4962 4963 pata_legacy.iordy_mask= [HW,LIBATA] 4964 Format: <int> 4965 IORDY enable mask. Set individual bits to allow IORDY 4966 for the respective channel. Bit 0 is for the first 4967 legacy channel handled by this driver, bit 1 is for 4968 the second channel, and so on. The sequence will often 4969 correspond to the primary legacy channel, the secondary 4970 legacy channel, and so on, but the handling of a PCI 4971 bus and the use of other driver options may interfere 4972 with the sequence. By default IORDY is allowed across 4973 all channels. 4974 4975 pata_legacy.opti82c46x= [HW,LIBATA] 4976 Format: <int> 4977 Set to 1, 2, or 3 for Opti 82c611A on the primary 4978 channel, the secondary channel, or both channels 4979 respectively. Disabled by default. 4980 4981 pata_legacy.opti82c611a= [HW,LIBATA] 4982 Format: <int> 4983 Set to 1, 2, or 3 for Opti 82c465MV on the primary 4984 channel, the secondary channel, or both channels 4985 respectively. Disabled by default. 4986 4987 pata_legacy.pio_mask= [HW,LIBATA] 4988 Format: <int> 4989 PIO mode mask for autospeed devices. Set individual 4990 bits to allow the use of the respective PIO modes. 4991 Bit 0 is for mode 0, bit 1 is for mode 1, and so on. 4992 All modes allowed by default. 4993 4994 pata_legacy.probe_all= [HW,LIBATA] 4995 Format: <int> 4996 Set to non-zero to probe tertiary and further ISA 4997 port ranges on PCI systems. Disabled by default. 4998 4999 pata_legacy.probe_mask= [HW,LIBATA] 5000 Format: <int> 5001 Probe mask for legacy ISA PATA ports. Depending on 5002 platform configuration and the use of other driver 5003 options up to 6 legacy ports are supported: 0x1f0, 5004 0x170, 0x1e8, 0x168, 0x1e0, 0x160, however probing 5005 of individual ports can be disabled by setting the 5006 corresponding bits in the mask to 1. Bit 0 is for 5007 the first port in the list above (0x1f0), and so on. 5008 By default all supported ports are probed. 5009 5010 pata_legacy.qdi= [HW,LIBATA] 5011 Format: <int> 5012 Set to non-zero to probe QDI controllers. By default 5013 set to 1 if CONFIG_PATA_QDI_MODULE, 0 otherwise. 5014 5015 pata_legacy.winbond= [HW,LIBATA] 5016 Format: <int> 5017 Set to non-zero to probe Winbond controllers. Use 5018 the standard I/O port (0x130) if 1, otherwise the 5019 value given is the I/O port to use (typically 0x1b0). 5020 By default set to 1 if CONFIG_PATA_WINBOND_VLB_MODULE, 5021 0 otherwise. 5022 5023 pata_platform.pio_mask= [HW,LIBATA] 5024 Format: <int> 5025 Supported PIO mode mask. Set individual bits to allow 5026 the use of the respective PIO modes. Bit 0 is for 5027 mode 0, bit 1 is for mode 1, and so on. Mode 0 only 5028 allowed by default. 5029 5030 pause_on_oops=<int> 5031 Halt all CPUs after the first oops has been printed for 5032 the specified number of seconds. This is to be used if 5033 your oopses keep scrolling off the screen. 5034 5035 pcbit= [HW,ISDN] 5036 5037 pci=option[,option...] [PCI,EARLY] various PCI subsystem options. 5038 5039 Some options herein operate on a specific device 5040 or a set of devices (<pci_dev>). These are 5041 specified in one of the following formats: 5042 5043 [<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]* 5044 pci:<vendor>:<device>[:<subvendor>:<subdevice>] 5045 5046 Note: the first format specifies a PCI 5047 bus/device/function address which may change 5048 if new hardware is inserted, if motherboard 5049 firmware changes, or due to changes caused 5050 by other kernel parameters. If the 5051 domain is left unspecified, it is 5052 taken to be zero. Optionally, a path 5053 to a device through multiple device/function 5054 addresses can be specified after the base 5055 address (this is more robust against 5056 renumbering issues). The second format 5057 selects devices using IDs from the 5058 configuration space which may match multiple 5059 devices in the system. 5060 5061 earlydump dump PCI config space before the kernel 5062 changes anything 5063 off [X86] don't probe for the PCI bus 5064 bios [X86-32] force use of PCI BIOS, don't access 5065 the hardware directly. Use this if your machine 5066 has a non-standard PCI host bridge. 5067 nobios [X86-32] disallow use of PCI BIOS, only direct 5068 hardware access methods are allowed. Use this 5069 if you experience crashes upon bootup and you 5070 suspect they are caused by the BIOS. 5071 conf1 [X86] Force use of PCI Configuration Access 5072 Mechanism 1 (config address in IO port 0xCF8, 5073 data in IO port 0xCFC, both 32-bit). 5074 conf2 [X86] Force use of PCI Configuration Access 5075 Mechanism 2 (IO port 0xCF8 is an 8-bit port for 5076 the function, IO port 0xCFA, also 8-bit, sets 5077 bus number. The config space is then accessed 5078 through ports 0xC000-0xCFFF). 5079 See http://wiki.osdev.org/PCI for more info 5080 on the configuration access mechanisms. 5081 noaer [PCIE] If the PCIEAER kernel config parameter is 5082 enabled, this kernel boot option can be used to 5083 disable the use of PCIE advanced error reporting. 5084 nodomains [PCI] Disable support for multiple PCI 5085 root domains (aka PCI segments, in ACPI-speak). 5086 nommconf [X86] Disable use of MMCONFIG for PCI 5087 Configuration 5088 check_enable_amd_mmconf [X86] check for and enable 5089 properly configured MMIO access to PCI 5090 config space on AMD family 10h CPU 5091 nomsi [MSI] If the PCI_MSI kernel config parameter is 5092 enabled, this kernel boot option can be used to 5093 disable the use of MSI interrupts system-wide. 5094 noioapicquirk [APIC] Disable all boot interrupt quirks. 5095 Safety option to keep boot IRQs enabled. This 5096 should never be necessary. 5097 ioapicreroute [APIC] Enable rerouting of boot IRQs to the 5098 primary IO-APIC for bridges that cannot disable 5099 boot IRQs. This fixes a source of spurious IRQs 5100 when the system masks IRQs. 5101 noioapicreroute [APIC] Disable workaround that uses the 5102 boot IRQ equivalent of an IRQ that connects to 5103 a chipset where boot IRQs cannot be disabled. 5104 The opposite of ioapicreroute. 5105 biosirq [X86-32] Use PCI BIOS calls to get the interrupt 5106 routing table. These calls are known to be buggy 5107 on several machines and they hang the machine 5108 when used, but on other computers it's the only 5109 way to get the interrupt routing table. Try 5110 this option if the kernel is unable to allocate 5111 IRQs or discover secondary PCI buses on your 5112 motherboard. 5113 rom [X86] Assign address space to expansion ROMs. 5114 Use with caution as certain devices share 5115 address decoders between ROMs and other 5116 resources. 5117 norom [X86] Do not assign address space to 5118 expansion ROMs that do not already have 5119 BIOS assigned address ranges. 5120 nobar [X86] Do not assign address space to the 5121 BARs that weren't assigned by the BIOS. 5122 irqmask=0xMMMM [X86] Set a bit mask of IRQs allowed to be 5123 assigned automatically to PCI devices. You can 5124 make the kernel exclude IRQs of your ISA cards 5125 this way. 5126 pirqaddr=0xAAAAA [X86] Specify the physical address 5127 of the PIRQ table (normally generated 5128 by the BIOS) if it is outside the 5129 F0000h-100000h range. 5130 lastbus=N [X86] Scan all buses thru bus #N. Can be 5131 useful if the kernel is unable to find your 5132 secondary buses and you want to tell it 5133 explicitly which ones they are. 5134 assign-busses [X86] Always assign all PCI bus 5135 numbers ourselves, overriding 5136 whatever the firmware may have done. 5137 usepirqmask [X86] Honor the possible IRQ mask stored 5138 in the BIOS $PIR table. This is needed on 5139 some systems with broken BIOSes, notably 5140 some HP Pavilion N5400 and Omnibook XE3 5141 notebooks. This will have no effect if ACPI 5142 IRQ routing is enabled. 5143 noacpi [X86] Do not use ACPI for IRQ routing 5144 or for PCI scanning. 5145 use_crs [X86] Use PCI host bridge window information 5146 from ACPI. On BIOSes from 2008 or later, this 5147 is enabled by default. If you need to use this, 5148 please report a bug. 5149 nocrs [X86] Ignore PCI host bridge windows from ACPI. 5150 If you need to use this, please report a bug. 5151 use_e820 [X86] Use E820 reservations to exclude parts of 5152 PCI host bridge windows. This is a workaround 5153 for BIOS defects in host bridge _CRS methods. 5154 If you need to use this, please report a bug to 5155 <linux-pci@vger.kernel.org>. 5156 no_e820 [X86] Ignore E820 reservations for PCI host 5157 bridge windows. This is the default on modern 5158 hardware. If you need to use this, please report 5159 a bug to <linux-pci@vger.kernel.org>. 5160 routeirq Do IRQ routing for all PCI devices. 5161 This is normally done in pci_enable_device(), 5162 so this option is a temporary workaround 5163 for broken drivers that don't call it. 5164 skip_isa_align [X86] do not align io start addr, so can 5165 handle more pci cards 5166 noearly [X86] Don't do any early type 1 scanning. 5167 This might help on some broken boards which 5168 machine check when some devices' config space 5169 is read. But various workarounds are disabled 5170 and some IOMMU drivers will not work. 5171 bfsort Sort PCI devices into breadth-first order. 5172 This sorting is done to get a device 5173 order compatible with older (<= 2.4) kernels. 5174 nobfsort Don't sort PCI devices into breadth-first order. 5175 pcie_bus_tune_off Disable PCIe MPS (Max Payload Size) 5176 tuning and use the BIOS-configured MPS defaults. 5177 pcie_bus_safe Set every device's MPS to the largest value 5178 supported by all devices below the root complex. 5179 pcie_bus_perf Set device MPS to the largest allowable MPS 5180 based on its parent bus. Also set MRRS (Max 5181 Read Request Size) to the largest supported 5182 value (no larger than the MPS that the device 5183 or bus can support) for best performance. 5184 pcie_bus_peer2peer Set every device's MPS to 128B, which 5185 every device is guaranteed to support. This 5186 configuration allows peer-to-peer DMA between 5187 any pair of devices, possibly at the cost of 5188 reduced performance. This also guarantees 5189 that hot-added devices will work. 5190 cbiosize=nn[KMG] The fixed amount of bus space which is 5191 reserved for the CardBus bridge's IO window. 5192 The default value is 256 bytes. 5193 cbmemsize=nn[KMG] The fixed amount of bus space which is 5194 reserved for the CardBus bridge's memory 5195 window. The default value is 64 megabytes. 5196 resource_alignment= 5197 Format: 5198 [<order of align>@]<pci_dev>[; ...] 5199 Specifies alignment and device to reassign 5200 aligned memory resources. How to 5201 specify the device is described above. 5202 If <order of align> is not specified, 5203 PAGE_SIZE is used as alignment. 5204 A PCI-PCI bridge can be specified if resource 5205 windows need to be expanded. 5206 To specify the alignment for several 5207 instances of a device, the PCI vendor, 5208 device, subvendor, and subdevice may be 5209 specified, e.g., 12@pci:8086:9c22:103c:198f 5210 for 4096-byte alignment. 5211 ecrc= Enable/disable PCIe ECRC (transaction layer 5212 end-to-end CRC checking). Only effective if 5213 OS has native AER control (either granted by 5214 ACPI _OSC or forced via "pcie_ports=native") 5215 bios: Use BIOS/firmware settings. This is the 5216 the default. 5217 off: Turn ECRC off 5218 on: Turn ECRC on. 5219 hpiosize=nn[KMG] The fixed amount of bus space which is 5220 reserved for hotplug bridge's IO window. 5221 Default size is 256 bytes. 5222 hpmmiosize=nn[KMG] The fixed amount of bus space which is 5223 reserved for hotplug bridge's MMIO window. 5224 Default size is 2 megabytes. 5225 hpmmioprefsize=nn[KMG] The fixed amount of bus space which is 5226 reserved for hotplug bridge's MMIO_PREF window. 5227 Default size is 2 megabytes. 5228 hpmemsize=nn[KMG] The fixed amount of bus space which is 5229 reserved for hotplug bridge's MMIO and 5230 MMIO_PREF window. 5231 Default size is 2 megabytes. 5232 hpbussize=nn The minimum amount of additional bus numbers 5233 reserved for buses below a hotplug bridge. 5234 Default is 1. 5235 realloc= Enable/disable reallocating PCI bridge resources 5236 if allocations done by BIOS are too small to 5237 accommodate resources required by all child 5238 devices. 5239 off: Turn realloc off 5240 on: Turn realloc on 5241 realloc same as realloc=on 5242 noari do not use PCIe ARI. 5243 noats [PCIE, Intel-IOMMU, AMD-IOMMU] 5244 do not use PCIe ATS (and IOMMU device IOTLB). 5245 pcie_scan_all Scan all possible PCIe devices. Otherwise we 5246 only look for one device below a PCIe downstream 5247 port. 5248 big_root_window Try to add a big 64bit memory window to the PCIe 5249 root complex on AMD CPUs. Some GFX hardware 5250 can resize a BAR to allow access to all VRAM. 5251 Adding the window is slightly risky (it may 5252 conflict with unreported devices), so this 5253 taints the kernel. 5254 disable_acs_redir=<pci_dev>[; ...] 5255 Specify one or more PCI devices (in the format 5256 specified above) separated by semicolons. 5257 Each device specified will have the PCI ACS 5258 redirect capabilities forced off which will 5259 allow P2P traffic between devices through 5260 bridges without forcing it upstream. Note: 5261 this removes isolation between devices and 5262 may put more devices in an IOMMU group. 5263 config_acs= 5264 Format: 5265 <ACS flags>@<pci_dev>[; ...] 5266 Specify one or more PCI devices (in the format 5267 specified above) optionally prepended with flags 5268 and separated by semicolons. The respective 5269 capabilities will be enabled, disabled or 5270 unchanged based on what is specified in 5271 flags. 5272 5273 ACS Flags is defined as follows: 5274 bit-0 : ACS Source Validation 5275 bit-1 : ACS Translation Blocking 5276 bit-2 : ACS P2P Request Redirect 5277 bit-3 : ACS P2P Completion Redirect 5278 bit-4 : ACS Upstream Forwarding 5279 bit-5 : ACS P2P Egress Control 5280 bit-6 : ACS Direct Translated P2P 5281 Each bit can be marked as: 5282 '0' – force disabled 5283 '1' – force enabled 5284 'x' – unchanged 5285 For example, 5286 pci=config_acs=10x@pci:0:0 5287 would configure all devices that support 5288 ACS to enable P2P Request Redirect, disable 5289 Translation Blocking, and leave Source 5290 Validation unchanged from whatever power-up 5291 or firmware set it to. 5292 5293 Note: this may remove isolation between devices 5294 and may put more devices in an IOMMU group. 5295 force_floating [S390] Force usage of floating interrupts. 5296 nomio [S390] Do not use MIO instructions. 5297 norid [S390] ignore the RID field and force use of 5298 one PCI domain per PCI function 5299 notph [PCIE] If the PCIE_TPH kernel config parameter 5300 is enabled, this kernel boot option can be used 5301 to disable PCIe TLP Processing Hints support 5302 system-wide. 5303 5304 pcie_aspm= [PCIE] Forcibly enable or ignore PCIe Active State Power 5305 Management. 5306 off Don't touch ASPM configuration at all. Leave any 5307 configuration done by firmware unchanged. 5308 force Enable ASPM even on devices that claim not to support it. 5309 WARNING: Forcing ASPM on may cause system lockups. 5310 5311 pcie_ports= [PCIE] PCIe port services handling: 5312 native Use native PCIe services (PME, AER, DPC, PCIe hotplug) 5313 even if the platform doesn't give the OS permission to 5314 use them. This may cause conflicts if the platform 5315 also tries to use these services. 5316 dpc-native Use native PCIe service for DPC only. May 5317 cause conflicts if firmware uses AER or DPC. 5318 compat Disable native PCIe services (PME, AER, DPC, PCIe 5319 hotplug). 5320 5321 pcie_port_pm= [PCIE] PCIe port power management handling: 5322 off Disable power management of all PCIe ports 5323 force Forcibly enable power management of all PCIe ports 5324 5325 pcie_pme= [PCIE,PM] Native PCIe PME signaling options: 5326 nomsi Do not use MSI for native PCIe PME signaling (this makes 5327 all PCIe root ports use INTx for all services). 5328 5329 pcmv= [HW,PCMCIA] BadgePAD 4 5330 5331 pd_ignore_unused 5332 [PM] 5333 Keep all power-domains already enabled by bootloader on, 5334 even if no driver has claimed them. This is useful 5335 for debug and development, but should not be 5336 needed on a platform with proper driver support. 5337 5338 pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at 5339 boot time. 5340 Format: { 0 | 1 } 5341 See arch/parisc/kernel/pdc_chassis.c 5342 5343 percpu_alloc= [MM,EARLY] 5344 Select which percpu first chunk allocator to use. 5345 Currently supported values are "embed" and "page". 5346 Archs may support subset or none of the selections. 5347 See comments in mm/percpu.c for details on each 5348 allocator. This parameter is primarily for debugging 5349 and performance comparison. 5350 5351 pirq= [SMP,APIC] Manual mp-table setup 5352 See Documentation/arch/x86/i386/IO-APIC.rst. 5353 5354 plip= [PPT,NET] Parallel port network link 5355 Format: { parport<nr> | timid | 0 } 5356 See also Documentation/admin-guide/parport.rst. 5357 5358 pmtmr= [X86] Manual setup of pmtmr I/O Port. 5359 Override pmtimer IOPort with a hex value. 5360 e.g. pmtmr=0x508 5361 5362 pmu_override= [PPC] Override the PMU. 5363 This option takes over the PMU facility, so it is no 5364 longer usable by perf. Setting this option starts the 5365 PMU counters by setting MMCR0 to 0 (the FC bit is 5366 cleared). If a number is given, then MMCR1 is set to 5367 that number, otherwise (e.g., 'pmu_override=on'), MMCR1 5368 remains 0. 5369 5370 pm_async= [PM] 5371 Format: off 5372 This parameter sets the initial value of the 5373 /sys/power/pm_async sysfs knob at boot time. 5374 If set to "off", disables asynchronous suspend and 5375 resume of devices during system-wide power transitions. 5376 This can be useful on platforms where device 5377 dependencies are not well-defined, or for debugging 5378 power management issues. Asynchronous operations are 5379 enabled by default. 5380 5381 5382 pm_debug_messages [SUSPEND,KNL] 5383 Enable suspend/resume debug messages during boot up. 5384 5385 pnp.debug=1 [PNP] 5386 Enable PNP debug messages (depends on the 5387 CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time 5388 via /sys/module/pnp/parameters/debug. We always show 5389 current resource usage; turning this on also shows 5390 possible settings and some assignment information. 5391 5392 pnpacpi= [ACPI] 5393 { off } 5394 5395 pnpbios= [ISAPNP] 5396 { on | off | curr | res | no-curr | no-res } 5397 5398 pnp_reserve_irq= 5399 [ISAPNP] Exclude IRQs for the autoconfiguration 5400 5401 pnp_reserve_dma= 5402 [ISAPNP] Exclude DMAs for the autoconfiguration 5403 5404 pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration 5405 Ranges are in pairs (I/O port base and size). 5406 5407 pnp_reserve_mem= 5408 [ISAPNP] Exclude memory regions for the 5409 autoconfiguration. 5410 Ranges are in pairs (memory base and size). 5411 5412 ports= [IP_VS_FTP] IPVS ftp helper module 5413 Default is 21. 5414 Up to 8 (IP_VS_APP_MAX_PORTS) ports 5415 may be specified. 5416 Format: <port>,<port>.... 5417 5418 possible_cpus= [SMP,S390,X86] 5419 Format: <unsigned int> 5420 Set the number of possible CPUs, overriding the 5421 regular discovery mechanisms (such as ACPI/FW, etc). 5422 5423 powersave=off [PPC] This option disables power saving features. 5424 It specifically disables cpuidle and sets the 5425 platform machine description specific power_save 5426 function to NULL. On Idle the CPU just reduces 5427 execution priority. 5428 5429 ppc_strict_facility_enable 5430 [PPC,ENABLE] This option catches any kernel floating point, 5431 Altivec, VSX and SPE outside of regions specifically 5432 allowed (eg kernel_enable_fpu()/kernel_disable_fpu()). 5433 There is some performance impact when enabling this. 5434 5435 ppc_tm= [PPC,EARLY] 5436 Format: {"off"} 5437 Disable Hardware Transactional Memory 5438 5439 preempt= [KNL] 5440 Select preemption mode if you have CONFIG_PREEMPT_DYNAMIC 5441 none - Limited to cond_resched() calls 5442 voluntary - Limited to cond_resched() and might_sleep() calls 5443 full - Any section that isn't explicitly preempt disabled 5444 can be preempted anytime. Tasks will also yield 5445 contended spinlocks (if the critical section isn't 5446 explicitly preempt disabled beyond the lock itself). 5447 lazy - Scheduler controlled. Similar to full but instead 5448 of preempting the task immediately, the task gets 5449 one HZ tick time to yield itself before the 5450 preemption will be forced. One preemption is when the 5451 task returns to user space. 5452 5453 print-fatal-signals= 5454 [KNL] debug: print fatal signals 5455 5456 If enabled, warn about various signal handling 5457 related application anomalies: too many signals, 5458 too many POSIX.1 timers, fatal signals causing a 5459 coredump - etc. 5460 5461 If you hit the warning due to signal overflow, 5462 you might want to try "ulimit -i unlimited". 5463 5464 default: off. 5465 5466 printk.always_kmsg_dump= 5467 Trigger kmsg_dump for cases other than kernel oops or 5468 panics 5469 Format: <bool> (1/Y/y=enable, 0/N/n=disable) 5470 default: disabled 5471 5472 printk.console_no_auto_verbose= 5473 Disable console loglevel raise on oops, panic 5474 or lockdep-detected issues (only if lock debug is on). 5475 With an exception to setups with low baudrate on 5476 serial console, keeping this 0 is a good choice 5477 in order to provide more debug information. 5478 Format: <bool> 5479 default: 0 (auto_verbose is enabled) 5480 5481 printk.debug_non_panic_cpus= 5482 Allows storing messages from non-panic CPUs into 5483 the printk log buffer during panic(). They are 5484 flushed to consoles by the panic-CPU on 5485 a best-effort basis. 5486 Format: <bool> (1/Y/y=enable, 0/N/n=disable) 5487 Default: disabled 5488 5489 printk.devkmsg={on,off,ratelimit} 5490 Control writing to /dev/kmsg. 5491 on - unlimited logging to /dev/kmsg from userspace 5492 off - logging to /dev/kmsg disabled 5493 ratelimit - ratelimit the logging 5494 Default: ratelimit 5495 5496 printk.time= Show timing data prefixed to each printk message line 5497 Format: <bool> (1/Y/y=enable, 0/N/n=disable) 5498 5499 proc_mem.force_override= [KNL] 5500 Format: {always | ptrace | never} 5501 Traditionally /proc/pid/mem allows memory permissions to be 5502 overridden without restrictions. This option may be set to 5503 restrict that. Can be one of: 5504 - 'always': traditional behavior always allows mem overrides. 5505 - 'ptrace': only allow mem overrides for active ptracers. 5506 - 'never': never allow mem overrides. 5507 If not specified, default is the CONFIG_PROC_MEM_* choice. 5508 5509 processor.max_cstate= [HW,ACPI] 5510 Limit processor to maximum C-state 5511 max_cstate=9 overrides any DMI blacklist limit. 5512 5513 processor.nocst [HW,ACPI] 5514 Ignore the _CST method to determine C-states, 5515 instead using the legacy FADT method 5516 5517 profile= [KNL] Enable kernel profiling via /proc/profile 5518 Format: [<profiletype>,]<number> 5519 Param: <profiletype>: "schedule" or "kvm" 5520 [defaults to kernel profiling] 5521 Param: "schedule" - profile schedule points. 5522 Param: "kvm" - profile VM exits. 5523 Param: <number> - step/bucket size as a power of 2 for 5524 statistical time based profiling. 5525 5526 prot_virt= [S390] enable hosting protected virtual machines 5527 isolated from the hypervisor (if hardware supports 5528 that). If enabled, the default kernel base address 5529 might be overridden even when Kernel Address Space 5530 Layout Randomization is disabled. 5531 Format: <bool> 5532 5533 psi= [KNL] Enable or disable pressure stall information 5534 tracking. 5535 Format: <bool> 5536 5537 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 5538 probe for; one of (bare|imps|exps|lifebook|any). 5539 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports 5540 per second. 5541 psmouse.resetafter= [HW,MOUSE] 5542 Try to reset the device after so many bad packets 5543 (0 = never). 5544 psmouse.resolution= 5545 [HW,MOUSE] Set desired mouse resolution, in dpi. 5546 psmouse.smartscroll= 5547 [HW,MOUSE] Controls Logitech smartscroll autorepeat. 5548 0 = disabled, 1 = enabled (default). 5549 5550 pstore.backend= Specify the name of the pstore backend to use 5551 5552 pti= [X86-64] Control Page Table Isolation of user and 5553 kernel address spaces. Disabling this feature 5554 removes hardening, but improves performance of 5555 system calls and interrupts. 5556 5557 on - unconditionally enable 5558 off - unconditionally disable 5559 auto - kernel detects whether your CPU model is 5560 vulnerable to issues that PTI mitigates 5561 5562 Not specifying this option is equivalent to pti=auto. 5563 5564 pty.legacy_count= 5565 [KNL] Number of legacy pty's. Overwrites compiled-in 5566 default number. 5567 5568 quiet [KNL,EARLY] Disable most log messages 5569 5570 r128= [HW,DRM] 5571 5572 radix_hcall_invalidate=on [PPC/PSERIES] 5573 Disable RADIX GTSE feature and use hcall for TLB 5574 invalidate. 5575 5576 raid= [HW,RAID] 5577 See Documentation/admin-guide/md.rst. 5578 5579 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 5580 See Documentation/admin-guide/blockdev/ramdisk.rst. 5581 5582 ramdisk_start= [Deprecated,RAM] RAM disk image start address 5583 5584 random.trust_cpu=off 5585 [KNL,EARLY] Disable trusting the use of the CPU's 5586 random number generator (if available) to 5587 initialize the kernel's RNG. 5588 5589 random.trust_bootloader=off 5590 [KNL,EARLY] Disable trusting the use of the a seed 5591 passed by the bootloader (if available) to 5592 initialize the kernel's RNG. 5593 5594 randomize_kstack_offset= 5595 [KNL,EARLY] Enable or disable kernel stack offset 5596 randomization, which provides roughly 5 bits of 5597 entropy, frustrating memory corruption attacks 5598 that depend on stack address determinism or 5599 cross-syscall address exposures. This is only 5600 available on architectures that have defined 5601 CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET. 5602 Format: <bool> (1/Y/y=enable, 0/N/n=disable) 5603 Default is CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. 5604 5605 ras=option[,option,...] [KNL] RAS-specific options 5606 5607 cec_disable [X86] 5608 Disable the Correctable Errors Collector, 5609 see CONFIG_RAS_CEC help text. 5610 5611 rcu_nocbs[=cpu-list] 5612 [KNL] The optional argument is a cpu list, 5613 as described above. 5614 5615 In kernels built with CONFIG_RCU_NOCB_CPU=y, 5616 enable the no-callback CPU mode, which prevents 5617 such CPUs' callbacks from being invoked in 5618 softirq context. Invocation of such CPUs' RCU 5619 callbacks will instead be offloaded to "rcuox/N" 5620 kthreads created for that purpose, where "x" is 5621 "p" for RCU-preempt, "s" for RCU-sched, and "g" 5622 for the kthreads that mediate grace periods; and 5623 "N" is the CPU number. This reduces OS jitter on 5624 the offloaded CPUs, which can be useful for HPC 5625 and real-time workloads. It can also improve 5626 energy efficiency for asymmetric multiprocessors. 5627 5628 If a cpulist is passed as an argument, the specified 5629 list of CPUs is set to no-callback mode from boot. 5630 5631 Otherwise, if the '=' sign and the cpulist 5632 arguments are omitted, no CPU will be set to 5633 no-callback mode from boot but the mode may be 5634 toggled at runtime via cpusets. 5635 5636 Note that this argument takes precedence over 5637 the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option. 5638 5639 rcu_nocb_poll [KNL] 5640 Rather than requiring that offloaded CPUs 5641 (specified by rcu_nocbs= above) explicitly 5642 awaken the corresponding "rcuoN" kthreads, 5643 make these kthreads poll for callbacks. 5644 This improves the real-time response for the 5645 offloaded CPUs by relieving them of the need to 5646 wake up the corresponding kthread, but degrades 5647 energy efficiency by requiring that the kthreads 5648 periodically wake up to do the polling. 5649 5650 rcutree.blimit= [KNL] 5651 Set maximum number of finished RCU callbacks to 5652 process in one batch. 5653 5654 rcutree.csd_lock_suppress_rcu_stall= [KNL] 5655 Do only a one-line RCU CPU stall warning when 5656 there is an ongoing too-long CSD-lock wait. 5657 5658 rcutree.do_rcu_barrier= [KNL] 5659 Request a call to rcu_barrier(). This is 5660 throttled so that userspace tests can safely 5661 hammer on the sysfs variable if they so choose. 5662 If triggered before the RCU grace-period machinery 5663 is fully active, this will error out with EAGAIN. 5664 5665 rcutree.dump_tree= [KNL] 5666 Dump the structure of the rcu_node combining tree 5667 out at early boot. This is used for diagnostic 5668 purposes, to verify correct tree setup. 5669 5670 rcutree.gp_cleanup_delay= [KNL] 5671 Set the number of jiffies to delay each step of 5672 RCU grace-period cleanup. 5673 5674 rcutree.gp_init_delay= [KNL] 5675 Set the number of jiffies to delay each step of 5676 RCU grace-period initialization. 5677 5678 rcutree.gp_preinit_delay= [KNL] 5679 Set the number of jiffies to delay each step of 5680 RCU grace-period pre-initialization, that is, 5681 the propagation of recent CPU-hotplug changes up 5682 the rcu_node combining tree. 5683 5684 rcutree.jiffies_till_first_fqs= [KNL] 5685 Set delay from grace-period initialization to 5686 first attempt to force quiescent states. 5687 Units are jiffies, minimum value is zero, 5688 and maximum value is HZ. 5689 5690 rcutree.jiffies_till_next_fqs= [KNL] 5691 Set delay between subsequent attempts to force 5692 quiescent states. Units are jiffies, minimum 5693 value is one, and maximum value is HZ. 5694 5695 rcutree.jiffies_till_sched_qs= [KNL] 5696 Set required age in jiffies for a 5697 given grace period before RCU starts 5698 soliciting quiescent-state help from 5699 rcu_note_context_switch() and cond_resched(). 5700 If not specified, the kernel will calculate 5701 a value based on the most recent settings 5702 of rcutree.jiffies_till_first_fqs 5703 and rcutree.jiffies_till_next_fqs. 5704 This calculated value may be viewed in 5705 rcutree.jiffies_to_sched_qs. Any attempt to set 5706 rcutree.jiffies_to_sched_qs will be cheerfully 5707 overwritten. 5708 5709 rcutree.kthread_prio= [KNL,BOOT] 5710 Set the SCHED_FIFO priority of the RCU per-CPU 5711 kthreads (rcuc/N). This value is also used for 5712 the priority of the RCU boost threads (rcub/N) 5713 and for the RCU grace-period kthreads (rcu_bh, 5714 rcu_preempt, and rcu_sched). If RCU_BOOST is 5715 set, valid values are 1-99 and the default is 1 5716 (the least-favored priority). Otherwise, when 5717 RCU_BOOST is not set, valid values are 0-99 and 5718 the default is zero (non-realtime operation). 5719 When RCU_NOCB_CPU is set, also adjust the 5720 priority of NOCB callback kthreads. 5721 5722 rcutree.nocb_nobypass_lim_per_jiffy= [KNL] 5723 On callback-offloaded (rcu_nocbs) CPUs, 5724 RCU reduces the lock contention that would 5725 otherwise be caused by callback floods through 5726 use of the ->nocb_bypass list. However, in the 5727 common non-flooded case, RCU queues directly to 5728 the main ->cblist in order to avoid the extra 5729 overhead of the ->nocb_bypass list and its lock. 5730 But if there are too many callbacks queued during 5731 a single jiffy, RCU pre-queues the callbacks into 5732 the ->nocb_bypass queue. The definition of "too 5733 many" is supplied by this kernel boot parameter. 5734 5735 rcutree.nohz_full_patience_delay= [KNL] 5736 On callback-offloaded (rcu_nocbs) CPUs, avoid 5737 disturbing RCU unless the grace period has 5738 reached the specified age in milliseconds. 5739 Defaults to zero. Large values will be capped 5740 at five seconds. All values will be rounded down 5741 to the nearest value representable by jiffies. 5742 5743 rcutree.qhimark= [KNL] 5744 Set threshold of queued RCU callbacks beyond which 5745 batch limiting is disabled. 5746 5747 rcutree.qlowmark= [KNL] 5748 Set threshold of queued RCU callbacks below which 5749 batch limiting is re-enabled. 5750 5751 rcutree.qovld= [KNL] 5752 Set threshold of queued RCU callbacks beyond which 5753 RCU's force-quiescent-state scan will aggressively 5754 enlist help from cond_resched() and sched IPIs to 5755 help CPUs more quickly reach quiescent states. 5756 Set to less than zero to make this be set based 5757 on rcutree.qhimark at boot time and to zero to 5758 disable more aggressive help enlistment. 5759 5760 rcutree.rcu_delay_page_cache_fill_msec= [KNL] 5761 Set the page-cache refill delay (in milliseconds) 5762 in response to low-memory conditions. The range 5763 of permitted values is in the range 0:100000. 5764 5765 rcutree.rcu_divisor= [KNL] 5766 Set the shift-right count to use to compute 5767 the callback-invocation batch limit bl from 5768 the number of callbacks queued on this CPU. 5769 The result will be bounded below by the value of 5770 the rcutree.blimit kernel parameter. Every bl 5771 callbacks, the softirq handler will exit in 5772 order to allow the CPU to do other work. 5773 5774 Please note that this callback-invocation batch 5775 limit applies only to non-offloaded callback 5776 invocation. Offloaded callbacks are instead 5777 invoked in the context of an rcuoc kthread, which 5778 scheduler will preempt as it does any other task. 5779 5780 rcutree.rcu_fanout_exact= [KNL] 5781 Disable autobalancing of the rcu_node combining 5782 tree. This is used by rcutorture, and might 5783 possibly be useful for architectures having high 5784 cache-to-cache transfer latencies. 5785 5786 rcutree.rcu_fanout_leaf= [KNL] 5787 Change the number of CPUs assigned to each 5788 leaf rcu_node structure. Useful for very 5789 large systems, which will choose the value 64, 5790 and for NUMA systems with large remote-access 5791 latencies, which will choose a value aligned 5792 with the appropriate hardware boundaries. 5793 5794 rcutree.rcu_min_cached_objs= [KNL] 5795 Minimum number of objects which are cached and 5796 maintained per one CPU. Object size is equal 5797 to PAGE_SIZE. The cache allows to reduce the 5798 pressure to page allocator, also it makes the 5799 whole algorithm to behave better in low memory 5800 condition. 5801 5802 rcutree.rcu_nocb_gp_stride= [KNL] 5803 Set the number of NOCB callback kthreads in 5804 each group, which defaults to the square root 5805 of the number of CPUs. Larger numbers reduce 5806 the wakeup overhead on the global grace-period 5807 kthread, but increases that same overhead on 5808 each group's NOCB grace-period kthread. 5809 5810 rcutree.rcu_kick_kthreads= [KNL] 5811 Cause the grace-period kthread to get an extra 5812 wake_up() if it sleeps three times longer than 5813 it should at force-quiescent-state time. 5814 This wake_up() will be accompanied by a 5815 WARN_ONCE() splat and an ftrace_dump(). 5816 5817 rcutree.rcu_resched_ns= [KNL] 5818 Limit the time spend invoking a batch of RCU 5819 callbacks to the specified number of nanoseconds. 5820 By default, this limit is checked only once 5821 every 32 callbacks in order to limit the pain 5822 inflicted by local_clock() overhead. 5823 5824 rcutree.rcu_unlock_delay= [KNL] 5825 In CONFIG_RCU_STRICT_GRACE_PERIOD=y kernels, 5826 this specifies an rcu_read_unlock()-time delay 5827 in microseconds. This defaults to zero. 5828 Larger delays increase the probability of 5829 catching RCU pointer leaks, that is, buggy use 5830 of RCU-protected pointers after the relevant 5831 rcu_read_unlock() has completed. 5832 5833 rcutree.sysrq_rcu= [KNL] 5834 Commandeer a sysrq key to dump out Tree RCU's 5835 rcu_node tree with an eye towards determining 5836 why a new grace period has not yet started. 5837 5838 rcutree.use_softirq= [KNL] 5839 If set to zero, move all RCU_SOFTIRQ processing to 5840 per-CPU rcuc kthreads. Defaults to a non-zero 5841 value, meaning that RCU_SOFTIRQ is used by default. 5842 Specify rcutree.use_softirq=0 to use rcuc kthreads. 5843 5844 But note that CONFIG_PREEMPT_RT=y kernels disable 5845 this kernel boot parameter, forcibly setting it 5846 to zero. 5847 5848 rcutree.enable_rcu_lazy= [KNL] 5849 To save power, batch RCU callbacks and flush after 5850 delay, memory pressure or callback list growing too 5851 big. 5852 5853 rcutree.rcu_normal_wake_from_gp= [KNL] 5854 Reduces a latency of synchronize_rcu() call. This approach 5855 maintains its own track of synchronize_rcu() callers, so it 5856 does not interact with regular callbacks because it does not 5857 use a call_rcu[_hurry]() path. Please note, this is for a 5858 normal grace period. 5859 5860 How to enable it: 5861 5862 echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp 5863 or pass a boot parameter "rcutree.rcu_normal_wake_from_gp=1" 5864 5865 Default is 1 if num_possible_cpus() <= 16 and it is not explicitly 5866 disabled by the boot parameter passing 0. 5867 5868 rcuscale.gp_async= [KNL] 5869 Measure performance of asynchronous 5870 grace-period primitives such as call_rcu(). 5871 5872 rcuscale.gp_async_max= [KNL] 5873 Specify the maximum number of outstanding 5874 callbacks per writer thread. When a writer 5875 thread exceeds this limit, it invokes the 5876 corresponding flavor of rcu_barrier() to allow 5877 previously posted callbacks to drain. 5878 5879 rcuscale.gp_exp= [KNL] 5880 Measure performance of expedited synchronous 5881 grace-period primitives. 5882 5883 rcuscale.holdoff= [KNL] 5884 Set test-start holdoff period. The purpose of 5885 this parameter is to delay the start of the 5886 test until boot completes in order to avoid 5887 interference. 5888 5889 rcuscale.kfree_by_call_rcu= [KNL] 5890 In kernels built with CONFIG_RCU_LAZY=y, test 5891 call_rcu() instead of kfree_rcu(). 5892 5893 rcuscale.kfree_mult= [KNL] 5894 Instead of allocating an object of size kfree_obj, 5895 allocate one of kfree_mult * sizeof(kfree_obj). 5896 Defaults to 1. 5897 5898 rcuscale.kfree_rcu_test= [KNL] 5899 Set to measure performance of kfree_rcu() flooding. 5900 5901 rcuscale.kfree_rcu_test_double= [KNL] 5902 Test the double-argument variant of kfree_rcu(). 5903 If this parameter has the same value as 5904 rcuscale.kfree_rcu_test_single, both the single- 5905 and double-argument variants are tested. 5906 5907 rcuscale.kfree_rcu_test_single= [KNL] 5908 Test the single-argument variant of kfree_rcu(). 5909 If this parameter has the same value as 5910 rcuscale.kfree_rcu_test_double, both the single- 5911 and double-argument variants are tested. 5912 5913 rcuscale.kfree_nthreads= [KNL] 5914 The number of threads running loops of kfree_rcu(). 5915 5916 rcuscale.kfree_alloc_num= [KNL] 5917 Number of allocations and frees done in an iteration. 5918 5919 rcuscale.kfree_loops= [KNL] 5920 Number of loops doing rcuscale.kfree_alloc_num number 5921 of allocations and frees. 5922 5923 rcuscale.minruntime= [KNL] 5924 Set the minimum test run time in seconds. This 5925 does not affect the data-collection interval, 5926 but instead allows better measurement of things 5927 like CPU consumption. 5928 5929 rcuscale.nreaders= [KNL] 5930 Set number of RCU readers. The value -1 selects 5931 N, where N is the number of CPUs. A value 5932 "n" less than -1 selects N-n+1, where N is again 5933 the number of CPUs. For example, -2 selects N 5934 (the number of CPUs), -3 selects N+1, and so on. 5935 A value of "n" less than or equal to -N selects 5936 a single reader. 5937 5938 rcuscale.nwriters= [KNL] 5939 Set number of RCU writers. The values operate 5940 the same as for rcuscale.nreaders. 5941 N, where N is the number of CPUs 5942 5943 rcuscale.scale_type= [KNL] 5944 Specify the RCU implementation to test. 5945 5946 rcuscale.shutdown= [KNL] 5947 Shut the system down after performance tests 5948 complete. This is useful for hands-off automated 5949 testing. 5950 5951 rcuscale.verbose= [KNL] 5952 Enable additional printk() statements. 5953 5954 rcuscale.writer_holdoff= [KNL] 5955 Write-side holdoff between grace periods, 5956 in microseconds. The default of zero says 5957 no holdoff. 5958 5959 rcuscale.writer_holdoff_jiffies= [KNL] 5960 Additional write-side holdoff between grace 5961 periods, but in jiffies. The default of zero 5962 says no holdoff. 5963 5964 rcutorture.fqs_duration= [KNL] 5965 Set duration of force_quiescent_state bursts 5966 in microseconds. 5967 5968 rcutorture.fqs_holdoff= [KNL] 5969 Set holdoff time within force_quiescent_state bursts 5970 in microseconds. 5971 5972 rcutorture.fqs_stutter= [KNL] 5973 Set wait time between force_quiescent_state bursts 5974 in seconds. 5975 5976 rcutorture.fwd_progress= [KNL] 5977 Specifies the number of kthreads to be used 5978 for RCU grace-period forward-progress testing 5979 for the types of RCU supporting this notion. 5980 Defaults to 1 kthread, values less than zero or 5981 greater than the number of CPUs cause the number 5982 of CPUs to be used. 5983 5984 rcutorture.fwd_progress_div= [KNL] 5985 Specify the fraction of a CPU-stall-warning 5986 period to do tight-loop forward-progress testing. 5987 5988 rcutorture.fwd_progress_holdoff= [KNL] 5989 Number of seconds to wait between successive 5990 forward-progress tests. 5991 5992 rcutorture.fwd_progress_need_resched= [KNL] 5993 Enclose cond_resched() calls within checks for 5994 need_resched() during tight-loop forward-progress 5995 testing. 5996 5997 rcutorture.gp_cond= [KNL] 5998 Use conditional/asynchronous update-side 5999 normal-grace-period primitives, if available. 6000 6001 rcutorture.gp_cond_exp= [KNL] 6002 Use conditional/asynchronous update-side 6003 expedited-grace-period primitives, if available. 6004 6005 rcutorture.gp_cond_full= [KNL] 6006 Use conditional/asynchronous update-side 6007 normal-grace-period primitives that also take 6008 concurrent expedited grace periods into account, 6009 if available. 6010 6011 rcutorture.gp_cond_exp_full= [KNL] 6012 Use conditional/asynchronous update-side 6013 expedited-grace-period primitives that also take 6014 concurrent normal grace periods into account, 6015 if available. 6016 6017 rcutorture.gp_cond_wi= [KNL] 6018 Nominal wait interval for normal conditional 6019 grace periods (specified by rcutorture's 6020 gp_cond and gp_cond_full module parameters), 6021 in microseconds. The actual wait interval will 6022 be randomly selected to nanosecond granularity up 6023 to this wait interval. Defaults to 16 jiffies, 6024 for example, 16,000 microseconds on a system 6025 with HZ=1000. 6026 6027 rcutorture.gp_cond_wi_exp= [KNL] 6028 Nominal wait interval for expedited conditional 6029 grace periods (specified by rcutorture's 6030 gp_cond_exp and gp_cond_exp_full module 6031 parameters), in microseconds. The actual wait 6032 interval will be randomly selected to nanosecond 6033 granularity up to this wait interval. Defaults to 6034 128 microseconds. 6035 6036 rcutorture.gp_exp= [KNL] 6037 Use expedited update-side primitives, if available. 6038 6039 rcutorture.gp_normal= [KNL] 6040 Use normal (non-expedited) asynchronous 6041 update-side primitives, if available. 6042 6043 rcutorture.gp_poll= [KNL] 6044 Use polled update-side normal-grace-period 6045 primitives, if available. 6046 6047 rcutorture.gp_poll_exp= [KNL] 6048 Use polled update-side expedited-grace-period 6049 primitives, if available. 6050 6051 rcutorture.gp_poll_full= [KNL] 6052 Use polled update-side normal-grace-period 6053 primitives that also take concurrent expedited 6054 grace periods into account, if available. 6055 6056 rcutorture.gp_poll_exp_full= [KNL] 6057 Use polled update-side expedited-grace-period 6058 primitives that also take concurrent normal 6059 grace periods into account, if available. 6060 6061 rcutorture.gp_poll_wi= [KNL] 6062 Nominal wait interval for normal conditional 6063 grace periods (specified by rcutorture's 6064 gp_poll and gp_poll_full module parameters), 6065 in microseconds. The actual wait interval will 6066 be randomly selected to nanosecond granularity up 6067 to this wait interval. Defaults to 16 jiffies, 6068 for example, 16,000 microseconds on a system 6069 with HZ=1000. 6070 6071 rcutorture.gp_poll_wi_exp= [KNL] 6072 Nominal wait interval for expedited conditional 6073 grace periods (specified by rcutorture's 6074 gp_poll_exp and gp_poll_exp_full module 6075 parameters), in microseconds. The actual wait 6076 interval will be randomly selected to nanosecond 6077 granularity up to this wait interval. Defaults to 6078 128 microseconds. 6079 6080 rcutorture.gp_sync= [KNL] 6081 Use normal (non-expedited) synchronous 6082 update-side primitives, if available. If all 6083 of rcutorture.gp_cond=, rcutorture.gp_exp=, 6084 rcutorture.gp_normal=, and rcutorture.gp_sync= 6085 are zero, rcutorture acts as if is interpreted 6086 they are all non-zero. 6087 6088 rcutorture.gpwrap_lag= [KNL] 6089 Enable grace-period wrap lag testing. Setting 6090 to false prevents the gpwrap lag test from 6091 running. Default is true. 6092 6093 rcutorture.gpwrap_lag_gps= [KNL] 6094 Set the value for grace-period wrap lag during 6095 active lag testing periods. This controls how many 6096 grace periods differences we tolerate between 6097 rdp and rnp's gp_seq before setting overflow flag. 6098 The default is always set to 8. 6099 6100 rcutorture.gpwrap_lag_cycle_mins= [KNL] 6101 Set the total cycle duration for gpwrap lag 6102 testing in minutes. This is the total time for 6103 one complete cycle of active and inactive 6104 testing periods. Default is 30 minutes. 6105 6106 rcutorture.gpwrap_lag_active_mins= [KNL] 6107 Set the duration for which gpwrap lag is active 6108 within each cycle, in minutes. During this time, 6109 the grace-period wrap lag will be set to the 6110 value specified by gpwrap_lag_gps. Default is 6111 5 minutes. 6112 6113 rcutorture.irqreader= [KNL] 6114 Run RCU readers from irq handlers, or, more 6115 accurately, from a timer handler. Not all RCU 6116 flavors take kindly to this sort of thing. 6117 6118 rcutorture.leakpointer= [KNL] 6119 Leak an RCU-protected pointer out of the reader. 6120 This can of course result in splats, and is 6121 intended to test the ability of things like 6122 CONFIG_RCU_STRICT_GRACE_PERIOD=y to detect 6123 such leaks. 6124 6125 rcutorture.n_barrier_cbs= [KNL] 6126 Set callbacks/threads for rcu_barrier() testing. 6127 6128 rcutorture.nfakewriters= [KNL] 6129 Set number of concurrent RCU writers. These just 6130 stress RCU, they don't participate in the actual 6131 test, hence the "fake". 6132 6133 rcutorture.nocbs_nthreads= [KNL] 6134 Set number of RCU callback-offload togglers. 6135 Zero (the default) disables toggling. 6136 6137 rcutorture.nocbs_toggle= [KNL] 6138 Set the delay in milliseconds between successive 6139 callback-offload toggling attempts. 6140 6141 rcutorture.nreaders= [KNL] 6142 Set number of RCU readers. The value -1 selects 6143 N-1, where N is the number of CPUs. A value 6144 "n" less than -1 selects N-n-2, where N is again 6145 the number of CPUs. For example, -2 selects N 6146 (the number of CPUs), -3 selects N+1, and so on. 6147 6148 rcutorture.object_debug= [KNL] 6149 Enable debug-object double-call_rcu() testing. 6150 6151 rcutorture.onoff_holdoff= [KNL] 6152 Set time (s) after boot for CPU-hotplug testing. 6153 6154 rcutorture.onoff_interval= [KNL] 6155 Set time (jiffies) between CPU-hotplug operations, 6156 or zero to disable CPU-hotplug testing. 6157 6158 rcutorture.preempt_duration= [KNL] 6159 Set duration (in milliseconds) of preemptions 6160 by a high-priority FIFO real-time task. Set to 6161 zero (the default) to disable. The CPUs to 6162 preempt are selected randomly from the set that 6163 are online at a given point in time. Races with 6164 CPUs going offline are ignored, with that attempt 6165 at preemption skipped. 6166 6167 rcutorture.preempt_interval= [KNL] 6168 Set interval (in milliseconds, defaulting to one 6169 second) between preemptions by a high-priority 6170 FIFO real-time task. This delay is mediated 6171 by an hrtimer and is further fuzzed to avoid 6172 inadvertent synchronizations. 6173 6174 rcutorture.read_exit_burst= [KNL] 6175 The number of times in a given read-then-exit 6176 episode that a set of read-then-exit kthreads 6177 is spawned. 6178 6179 rcutorture.read_exit_delay= [KNL] 6180 The delay, in seconds, between successive 6181 read-then-exit testing episodes. 6182 6183 rcutorture.reader_flavor= [KNL] 6184 A bit mask indicating which readers to use. 6185 If there is more than one bit set, the readers 6186 are entered from low-order bit up, and are 6187 exited in the opposite order. For SRCU, the 6188 0x1 bit is normal readers, 0x2 NMI-safe readers, 6189 and 0x4 light-weight readers. 6190 6191 rcutorture.shuffle_interval= [KNL] 6192 Set task-shuffle interval (s). Shuffling tasks 6193 allows some CPUs to go into dyntick-idle mode 6194 during the rcutorture test. 6195 6196 rcutorture.shutdown_secs= [KNL] 6197 Set time (s) after boot system shutdown. This 6198 is useful for hands-off automated testing. 6199 6200 rcutorture.stall_cpu= [KNL] 6201 Duration of CPU stall (s) to test RCU CPU stall 6202 warnings, zero to disable. 6203 6204 rcutorture.stall_cpu_block= [KNL] 6205 Sleep while stalling if set. This will result 6206 in warnings from preemptible RCU in addition to 6207 any other stall-related activity. Note that 6208 in kernels built with CONFIG_PREEMPTION=n and 6209 CONFIG_PREEMPT_COUNT=y, this parameter will 6210 cause the CPU to pass through a quiescent state. 6211 Given CONFIG_PREEMPTION=n, this will suppress 6212 RCU CPU stall warnings, but will instead result 6213 in scheduling-while-atomic splats. 6214 6215 Use of this module parameter results in splats. 6216 6217 6218 rcutorture.stall_cpu_holdoff= [KNL] 6219 Time to wait (s) after boot before inducing stall. 6220 6221 rcutorture.stall_cpu_irqsoff= [KNL] 6222 Disable interrupts while stalling if set, but only 6223 on the first stall in the set. 6224 6225 rcutorture.stall_cpu_repeat= [KNL] 6226 Number of times to repeat the stall sequence, 6227 so that rcutorture.stall_cpu_repeat=3 will result 6228 in four stall sequences. 6229 6230 rcutorture.stall_gp_kthread= [KNL] 6231 Duration (s) of forced sleep within RCU 6232 grace-period kthread to test RCU CPU stall 6233 warnings, zero to disable. If both stall_cpu 6234 and stall_gp_kthread are specified, the 6235 kthread is starved first, then the CPU. 6236 6237 rcutorture.stat_interval= [KNL] 6238 Time (s) between statistics printk()s. 6239 6240 rcutorture.stutter= [KNL] 6241 Time (s) to stutter testing, for example, specifying 6242 five seconds causes the test to run for five seconds, 6243 wait for five seconds, and so on. This tests RCU's 6244 ability to transition abruptly to and from idle. 6245 6246 rcutorture.test_boost= [KNL] 6247 Test RCU priority boosting? 0=no, 1=maybe, 2=yes. 6248 "Maybe" means test if the RCU implementation 6249 under test support RCU priority boosting. 6250 6251 rcutorture.test_boost_duration= [KNL] 6252 Duration (s) of each individual boost test. 6253 6254 rcutorture.test_boost_holdoff= [KNL] 6255 Holdoff time (s) from start of test to the start 6256 of RCU priority-boost testing. Defaults to zero, 6257 that is, no holdoff. 6258 6259 rcutorture.test_boost_interval= [KNL] 6260 Interval (s) between each boost test. 6261 6262 rcutorture.test_no_idle_hz= [KNL] 6263 Test RCU's dyntick-idle handling. See also the 6264 rcutorture.shuffle_interval parameter. 6265 6266 rcutorture.torture_type= [KNL] 6267 Specify the RCU implementation to test. 6268 6269 rcutorture.verbose= [KNL] 6270 Enable additional printk() statements. 6271 6272 rcupdate.rcu_cpu_stall_ftrace_dump= [KNL] 6273 Dump ftrace buffer after reporting RCU CPU 6274 stall warning. 6275 6276 rcupdate.rcu_cpu_stall_notifiers= [KNL] 6277 Provide RCU CPU stall notifiers, but see the 6278 warnings in the RCU_CPU_STALL_NOTIFIER Kconfig 6279 option's help text. TL;DR: You almost certainly 6280 do not want rcupdate.rcu_cpu_stall_notifiers. 6281 6282 rcupdate.rcu_cpu_stall_suppress= [KNL] 6283 Suppress RCU CPU stall warning messages. 6284 6285 rcupdate.rcu_cpu_stall_suppress_at_boot= [KNL] 6286 Suppress RCU CPU stall warning messages and 6287 rcutorture writer stall warnings that occur 6288 during early boot, that is, during the time 6289 before the init task is spawned. 6290 6291 rcupdate.rcu_cpu_stall_timeout= [KNL] 6292 Set timeout for RCU CPU stall warning messages. 6293 The value is in seconds and the maximum allowed 6294 value is 300 seconds. 6295 6296 rcupdate.rcu_exp_cpu_stall_timeout= [KNL] 6297 Set timeout for expedited RCU CPU stall warning 6298 messages. The value is in milliseconds 6299 and the maximum allowed value is 21000 6300 milliseconds. Please note that this value is 6301 adjusted to an arch timer tick resolution. 6302 Setting this to zero causes the value from 6303 rcupdate.rcu_cpu_stall_timeout to be used (after 6304 conversion from seconds to milliseconds). 6305 6306 rcupdate.rcu_cpu_stall_cputime= [KNL] 6307 Provide statistics on the cputime and count of 6308 interrupts and tasks during the sampling period. For 6309 multiple continuous RCU stalls, all sampling periods 6310 begin at half of the first RCU stall timeout. 6311 6312 rcupdate.rcu_exp_stall_task_details= [KNL] 6313 Print stack dumps of any tasks blocking the 6314 current expedited RCU grace period during an 6315 expedited RCU CPU stall warning. 6316 6317 rcupdate.rcu_expedited= [KNL] 6318 Use expedited grace-period primitives, for 6319 example, synchronize_rcu_expedited() instead 6320 of synchronize_rcu(). This reduces latency, 6321 but can increase CPU utilization, degrade 6322 real-time latency, and degrade energy efficiency. 6323 No effect on CONFIG_TINY_RCU kernels. 6324 6325 rcupdate.rcu_normal= [KNL] 6326 Use only normal grace-period primitives, 6327 for example, synchronize_rcu() instead of 6328 synchronize_rcu_expedited(). This improves 6329 real-time latency, CPU utilization, and 6330 energy efficiency, but can expose users to 6331 increased grace-period latency. This parameter 6332 overrides rcupdate.rcu_expedited. No effect on 6333 CONFIG_TINY_RCU kernels. 6334 6335 rcupdate.rcu_normal_after_boot= [KNL] 6336 Once boot has completed (that is, after 6337 rcu_end_inkernel_boot() has been invoked), use 6338 only normal grace-period primitives. No effect 6339 on CONFIG_TINY_RCU kernels. 6340 6341 But note that CONFIG_PREEMPT_RT=y kernels enables 6342 this kernel boot parameter, forcibly setting 6343 it to the value one, that is, converting any 6344 post-boot attempt at an expedited RCU grace 6345 period to instead use normal non-expedited 6346 grace-period processing. 6347 6348 rcupdate.rcu_task_collapse_lim= [KNL] 6349 Set the maximum number of callbacks present 6350 at the beginning of a grace period that allows 6351 the RCU Tasks flavors to collapse back to using 6352 a single callback queue. This switching only 6353 occurs when rcupdate.rcu_task_enqueue_lim is 6354 set to the default value of -1. 6355 6356 rcupdate.rcu_task_contend_lim= [KNL] 6357 Set the minimum number of callback-queuing-time 6358 lock-contention events per jiffy required to 6359 cause the RCU Tasks flavors to switch to per-CPU 6360 callback queuing. This switching only occurs 6361 when rcupdate.rcu_task_enqueue_lim is set to 6362 the default value of -1. 6363 6364 rcupdate.rcu_task_enqueue_lim= [KNL] 6365 Set the number of callback queues to use for the 6366 RCU Tasks family of RCU flavors. The default 6367 of -1 allows this to be automatically (and 6368 dynamically) adjusted. This parameter is intended 6369 for use in testing. 6370 6371 rcupdate.rcu_task_lazy_lim= [KNL] 6372 Number of callbacks on a given CPU that will 6373 cancel laziness on that CPU. Use -1 to disable 6374 cancellation of laziness, but be advised that 6375 doing so increases the danger of OOM due to 6376 callback flooding. 6377 6378 rcupdate.rcu_task_stall_info= [KNL] 6379 Set initial timeout in jiffies for RCU task stall 6380 informational messages, which give some indication 6381 of the problem for those not patient enough to 6382 wait for ten minutes. Informational messages are 6383 only printed prior to the stall-warning message 6384 for a given grace period. Disable with a value 6385 less than or equal to zero. Defaults to ten 6386 seconds. A change in value does not take effect 6387 until the beginning of the next grace period. 6388 6389 rcupdate.rcu_task_stall_info_mult= [KNL] 6390 Multiplier for time interval between successive 6391 RCU task stall informational messages for a given 6392 RCU tasks grace period. This value is clamped 6393 to one through ten, inclusive. It defaults to 6394 the value three, so that the first informational 6395 message is printed 10 seconds into the grace 6396 period, the second at 40 seconds, the third at 6397 160 seconds, and then the stall warning at 600 6398 seconds would prevent a fourth at 640 seconds. 6399 6400 rcupdate.rcu_task_stall_timeout= [KNL] 6401 Set timeout in jiffies for RCU task stall 6402 warning messages. Disable with a value less 6403 than or equal to zero. Defaults to ten minutes. 6404 A change in value does not take effect until 6405 the beginning of the next grace period. 6406 6407 rcupdate.rcu_tasks_lazy_ms= [KNL] 6408 Set timeout in milliseconds RCU Tasks asynchronous 6409 callback batching for call_rcu_tasks(). 6410 A negative value will take the default. A value 6411 of zero will disable batching. Batching is 6412 always disabled for synchronize_rcu_tasks(). 6413 6414 rcupdate.rcu_self_test= [KNL] 6415 Run the RCU early boot self tests 6416 6417 rdinit= [KNL] 6418 Format: <full_path> 6419 Run specified binary instead of /init from the ramdisk, 6420 used for early userspace startup. See initrd. 6421 6422 rdrand= [X86,EARLY] 6423 force - Override the decision by the kernel to hide the 6424 advertisement of RDRAND support (this affects 6425 certain AMD processors because of buggy BIOS 6426 support, specifically around the suspend/resume 6427 path). 6428 6429 rdt= [HW,X86,RDT] 6430 Turn on/off individual RDT features. List is: 6431 cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, 6432 mba, smba, bmec, abmc, sdciae, energy[:guid], 6433 perf[:guid]. 6434 E.g. to turn on cmt and turn off mba use: 6435 rdt=cmt,!mba 6436 To turn off all energy telemetry monitoring and ensure that 6437 perf telemetry monitoring associated with guid 0x12345 6438 is enabled use: 6439 rdt=!energy,perf:0x12345 6440 6441 reboot= [KNL] 6442 Format (x86 or x86_64): 6443 [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] | d[efault] \ 6444 [[,]s[mp]#### \ 6445 [[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \ 6446 [[,]f[orce] 6447 Where reboot_mode is one of warm (soft) or cold (hard) or gpio 6448 (prefix with 'panic_' to set mode for panic 6449 reboot only), 6450 reboot_type is one of bios, acpi, kbd, triple, efi, or pci, 6451 reboot_force is either force or not specified, 6452 reboot_cpu is s[mp]#### with #### being the processor 6453 to be used for rebooting. 6454 6455 acpi 6456 Use the ACPI RESET_REG in the FADT. If ACPI is not 6457 configured or the ACPI reset does not work, the reboot 6458 path attempts the reset using the keyboard controller. 6459 6460 bios 6461 Use the CPU reboot vector for warm reset 6462 6463 cold 6464 Set the cold reboot flag 6465 6466 default 6467 There are some built-in platform specific "quirks" 6468 - you may see: "reboot: <name> series board detected. 6469 Selecting <type> for reboots." In the case where you 6470 think the quirk is in error (e.g. you have newer BIOS, 6471 or newer board) using this option will ignore the 6472 built-in quirk table, and use the generic default 6473 reboot actions. 6474 6475 efi 6476 Use efi reset_system runtime service. If EFI is not 6477 configured or the EFI reset does not work, the reboot 6478 path attempts the reset using the keyboard controller. 6479 6480 force 6481 Don't stop other CPUs on reboot. This can make reboot 6482 more reliable in some cases. 6483 6484 kbd 6485 Use the keyboard controller. cold reset (default) 6486 6487 pci 6488 Use a write to the PCI config space register 0xcf9 to 6489 trigger reboot. 6490 6491 triple 6492 Force a triple fault (init) 6493 6494 warm 6495 Don't set the cold reboot flag 6496 6497 Using warm reset will be much faster especially on big 6498 memory systems because the BIOS will not go through 6499 the memory check. Disadvantage is that not all 6500 hardware will be completely reinitialized on reboot so 6501 there may be boot problems on some systems. 6502 6503 6504 refscale.holdoff= [KNL] 6505 Set test-start holdoff period. The purpose of 6506 this parameter is to delay the start of the 6507 test until boot completes in order to avoid 6508 interference. 6509 6510 refscale.lookup_instances= [KNL] 6511 Number of data elements to use for the forms of 6512 SLAB_TYPESAFE_BY_RCU testing. A negative number 6513 is negated and multiplied by nr_cpu_ids, while 6514 zero specifies nr_cpu_ids. 6515 6516 refscale.loops= [KNL] 6517 Set the number of loops over the synchronization 6518 primitive under test. Increasing this number 6519 reduces noise due to loop start/end overhead, 6520 but the default has already reduced the per-pass 6521 noise to a handful of picoseconds on ca. 2020 6522 x86 laptops. 6523 6524 refscale.nreaders= [KNL] 6525 Set number of readers. The default value of -1 6526 selects N, where N is roughly 75% of the number 6527 of CPUs. A value of zero is an interesting choice. 6528 6529 refscale.nruns= [KNL] 6530 Set number of runs, each of which is dumped onto 6531 the console log. 6532 6533 refscale.readdelay= [KNL] 6534 Set the read-side critical-section duration, 6535 measured in microseconds. 6536 6537 refscale.scale_type= [KNL] 6538 Specify the read-protection implementation to test. 6539 6540 refscale.shutdown= [KNL] 6541 Shut down the system at the end of the performance 6542 test. This defaults to 1 (shut it down) when 6543 refscale is built into the kernel and to 0 (leave 6544 it running) when refscale is built as a module. 6545 6546 refscale.verbose= [KNL] 6547 Enable additional printk() statements. 6548 6549 refscale.verbose_batched= [KNL] 6550 Batch the additional printk() statements. If zero 6551 (the default) or negative, print everything. Otherwise, 6552 print every Nth verbose statement, where N is the value 6553 specified. 6554 6555 regulator_ignore_unused 6556 [REGULATOR] 6557 Prevents regulator framework from disabling regulators 6558 that are unused, due no driver claiming them. This may 6559 be useful for debug and development, but should not be 6560 needed on a platform with proper driver support. 6561 6562 relax_domain_level= 6563 [KNL, SMP] Set scheduler's default relax_domain_level. 6564 See Documentation/admin-guide/cgroup-v1/cpusets.rst. 6565 6566 reserve= [KNL,BUGS] Force kernel to ignore I/O ports or memory 6567 Format: <base1>,<size1>[,<base2>,<size2>,...] 6568 Reserve I/O ports or memory so the kernel won't use 6569 them. If <base> is less than 0x10000, the region 6570 is assumed to be I/O ports; otherwise it is memory. 6571 6572 reserve_mem= [RAM] 6573 Format: nn[KMG]:<align>:<label> 6574 Reserve physical memory and label it with a name that 6575 other subsystems can use to access it. This is typically 6576 used for systems that do not wipe the RAM, and this command 6577 line will try to reserve the same physical memory on 6578 soft reboots. Note, it is not guaranteed to be the same 6579 location. For example, if anything about the system changes 6580 or if booting a different kernel. It can also fail if KASLR 6581 places the kernel at the location of where the RAM reservation 6582 was from a previous boot, the new reservation will be at a 6583 different location. 6584 Any subsystem using this feature must add a way to verify 6585 that the contents of the physical memory is from a previous 6586 boot, as there may be cases where the memory will not be 6587 located at the same location. 6588 6589 The format is size:align:label for example, to request 6590 12 megabytes of 4096 alignment for ramoops: 6591 6592 reserve_mem=12M:4096:oops ramoops.mem_name=oops 6593 6594 reservetop= [X86-32,EARLY] 6595 Format: nn[KMG] 6596 Reserves a hole at the top of the kernel virtual 6597 address space. 6598 6599 reset_devices [KNL] Force drivers to reset the underlying device 6600 during initialization. 6601 6602 resume= [SWSUSP] 6603 Specify the partition device for software suspend 6604 Format: 6605 {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>} 6606 6607 resume_offset= [SWSUSP] 6608 Specify the offset from the beginning of the partition 6609 given by "resume=" at which the swap header is located, 6610 in <PAGE_SIZE> units (needed only for swap files). 6611 See Documentation/power/swsusp-and-swap-files.rst 6612 6613 resumedelay= [HIBERNATION] Delay (in seconds) to pause before attempting to 6614 read the resume files 6615 6616 resumewait [HIBERNATION] Wait (indefinitely) for resume device to show up. 6617 Useful for devices that are detected asynchronously 6618 (e.g. USB and MMC devices). 6619 6620 retain_initrd [RAM] Keep initrd memory after extraction. After boot, it will 6621 be accessible via /sys/firmware/initrd. 6622 6623 retbleed= [X86] Control mitigation of RETBleed (Arbitrary 6624 Speculative Code Execution with Return Instructions) 6625 vulnerability. 6626 6627 AMD-based UNRET and IBPB mitigations alone do not stop 6628 sibling threads from influencing the predictions of other 6629 sibling threads. For that reason, STIBP is used on pro- 6630 cessors that support it, and mitigate SMT on processors 6631 that don't. 6632 6633 off - no mitigation 6634 auto - automatically select a mitigation 6635 auto,nosmt - automatically select a mitigation, 6636 disabling SMT if necessary for 6637 the full mitigation (only on Zen1 6638 and older without STIBP). 6639 ibpb - On AMD, mitigate short speculation 6640 windows on basic block boundaries too. 6641 Safe, highest perf impact. It also 6642 enables STIBP if present. Not suitable 6643 on Intel. 6644 ibpb,nosmt - Like "ibpb" above but will disable SMT 6645 when STIBP is not available. This is 6646 the alternative for systems which do not 6647 have STIBP. 6648 unret - Force enable untrained return thunks, 6649 only effective on AMD f15h-f17h based 6650 systems. 6651 unret,nosmt - Like unret, but will disable SMT when STIBP 6652 is not available. This is the alternative for 6653 systems which do not have STIBP. 6654 6655 Selecting 'auto' will choose a mitigation method at run 6656 time according to the CPU. 6657 6658 Not specifying this option is equivalent to retbleed=auto. 6659 6660 rfkill.default_state= 6661 0 "airplane mode". All wifi, bluetooth, wimax, gps, fm, 6662 etc. communication is blocked by default. 6663 1 Unblocked. 6664 6665 rfkill.master_switch_mode= 6666 0 The "airplane mode" button does nothing. 6667 1 The "airplane mode" button toggles between everything 6668 blocked and the previous configuration. 6669 2 The "airplane mode" button toggles between everything 6670 blocked and everything unblocked. 6671 6672 ring3mwait=disable 6673 [KNL] Disable ring 3 MONITOR/MWAIT feature on supported 6674 CPUs. 6675 6676 riscv_isa_fallback [RISCV,EARLY] 6677 When CONFIG_RISCV_ISA_FALLBACK is not enabled, permit 6678 falling back to detecting extension support by parsing 6679 "riscv,isa" property on devicetree systems when the 6680 replacement properties are not found. See the Kconfig 6681 entry for RISCV_ISA_FALLBACK. 6682 6683 riscv_nousercfi= 6684 all Disable user CFI ABI to userspace even if cpu extension 6685 are available. 6686 bcfi Disable user backward CFI ABI to userspace even if 6687 the shadow stack extension is available. 6688 fcfi Disable user forward CFI ABI to userspace even if the 6689 landing pad extension is available. 6690 6691 ro [KNL] Mount root device read-only on boot 6692 6693 rodata= [KNL,EARLY] 6694 on Mark read-only kernel memory as read-only (default). 6695 off Leave read-only kernel memory writable for debugging. 6696 noalias Mark read-only kernel memory as read-only but retain 6697 writable aliases in the direct map for regions outside 6698 of the kernel image. [arm64] 6699 6700 rockchip.usb_uart 6701 [EARLY] 6702 Enable the uart passthrough on the designated usb port 6703 on Rockchip SoCs. When active, the signals of the 6704 debug-uart get routed to the D+ and D- pins of the usb 6705 port and the regular usb controller gets disabled. 6706 6707 root= [KNL] Root filesystem 6708 Usually this is a block device specifier of some kind, 6709 see the early_lookup_bdev comment in 6710 block/early-lookup.c for details. 6711 Alternatively this can be "ram" for the legacy initial 6712 ramdisk, "nfs" and "cifs" for root on a network file 6713 system, or "mtd" and "ubi" for mounting from raw flash. 6714 6715 rootdelay= [KNL] Delay (in seconds) to pause before attempting to 6716 mount the root filesystem 6717 6718 rootflags= [KNL] Set root filesystem mount option string 6719 6720 rseq_slice_ext= [KNL] RSEQ based time slice extension 6721 Format: boolean 6722 Control enablement of RSEQ based time slice extension. 6723 Default is 'on'. 6724 6725 initramfs_options= [KNL] 6726 Specify mount options for the initramfs mount. 6727 6728 rootfstype= [KNL] Set root filesystem type 6729 6730 rootwait [KNL] Wait (indefinitely) for root device to show up. 6731 Useful for devices that are detected asynchronously 6732 (e.g. USB and MMC devices). 6733 6734 rootwait= [KNL] Maximum time (in seconds) to wait for root device 6735 to show up before attempting to mount the root 6736 filesystem. 6737 6738 rproc_mem=nn[KMG][@address] 6739 [KNL,ARM,CMA] Remoteproc physical memory block. 6740 Memory area to be used by remote processor image, 6741 managed by CMA. 6742 6743 rseq_debug= [KNL] Enable or disable restartable sequence 6744 debug mode. Defaults to CONFIG_RSEQ_DEBUG_DEFAULT_ENABLE. 6745 Format: <bool> 6746 6747 rt_group_sched= [KNL] Enable or disable SCHED_RR/FIFO group scheduling 6748 when CONFIG_RT_GROUP_SCHED=y. Defaults to 6749 !CONFIG_RT_GROUP_SCHED_DEFAULT_DISABLED. 6750 Format: <bool> 6751 6752 rw [KNL] Mount root device read-write on boot 6753 6754 S [KNL] Run init in single mode 6755 6756 s390_iommu= [HW,S390] 6757 Set s390 IOTLB flushing mode 6758 strict 6759 With strict flushing every unmap operation will result 6760 in an IOTLB flush. Default is lazy flushing before 6761 reuse, which is faster. Deprecated, equivalent to 6762 iommu.strict=1. 6763 6764 s390_iommu_aperture= [KNL,S390] 6765 Specifies the size of the per device DMA address space 6766 accessible through the DMA and IOMMU APIs as a decimal 6767 factor of the size of main memory. 6768 The default is 1 meaning that one can concurrently use 6769 as many DMA addresses as physical memory is installed, 6770 if supported by hardware, and thus map all of memory 6771 once. With a value of 2 one can map all of memory twice 6772 and so on. As a special case a factor of 0 imposes no 6773 restrictions other than those given by hardware at the 6774 cost of significant additional memory use for tables. 6775 6776 sa1100ir [NET] 6777 See drivers/net/irda/sa1100_ir.c. 6778 6779 sched_proxy_exec= [KNL] 6780 Enables or disables "proxy execution" style 6781 solution to mutex-based priority inversion. 6782 Format: <bool> 6783 6784 sched_verbose [KNL,EARLY] Enables verbose scheduler debug messages. 6785 6786 schedstats= [KNL,X86] Enable or disable scheduled statistics. 6787 Allowed values are enable and disable. This feature 6788 incurs a small amount of overhead in the scheduler 6789 but is useful for debugging and performance tuning. 6790 6791 sched_thermal_decay_shift= 6792 [Deprecated] 6793 [KNL, SMP] Set a decay shift for scheduler thermal 6794 pressure signal. Thermal pressure signal follows the 6795 default decay period of other scheduler pelt 6796 signals(usually 32 ms but configurable). Setting 6797 sched_thermal_decay_shift will left shift the decay 6798 period for the thermal pressure signal by the shift 6799 value. 6800 i.e. with the default pelt decay period of 32 ms 6801 sched_thermal_decay_shift thermal pressure decay pr 6802 1 64 ms 6803 2 128 ms 6804 and so on. 6805 Format: integer between 0 and 10 6806 Default is 0. 6807 6808 scftorture.holdoff= [KNL] 6809 Number of seconds to hold off before starting 6810 test. Defaults to zero for module insertion and 6811 to 10 seconds for built-in smp_call_function() 6812 tests. 6813 6814 scftorture.longwait= [KNL] 6815 Request ridiculously long waits randomly selected 6816 up to the chosen limit in seconds. Zero (the 6817 default) disables this feature. Please note 6818 that requesting even small non-zero numbers of 6819 seconds can result in RCU CPU stall warnings, 6820 softlockup complaints, and so on. 6821 6822 scftorture.nthreads= [KNL] 6823 Number of kthreads to spawn to invoke the 6824 smp_call_function() family of functions. 6825 The default of -1 specifies a number of kthreads 6826 equal to the number of CPUs. 6827 6828 scftorture.onoff_holdoff= [KNL] 6829 Number seconds to wait after the start of the 6830 test before initiating CPU-hotplug operations. 6831 6832 scftorture.onoff_interval= [KNL] 6833 Number seconds to wait between successive 6834 CPU-hotplug operations. Specifying zero (which 6835 is the default) disables CPU-hotplug operations. 6836 6837 scftorture.shutdown_secs= [KNL] 6838 The number of seconds following the start of the 6839 test after which to shut down the system. The 6840 default of zero avoids shutting down the system. 6841 Non-zero values are useful for automated tests. 6842 6843 scftorture.stat_interval= [KNL] 6844 The number of seconds between outputting the 6845 current test statistics to the console. A value 6846 of zero disables statistics output. 6847 6848 scftorture.stutter_cpus= [KNL] 6849 The number of jiffies to wait between each change 6850 to the set of CPUs under test. 6851 6852 scftorture.use_cpus_read_lock= [KNL] 6853 Use use_cpus_read_lock() instead of the default 6854 preempt_disable() to disable CPU hotplug 6855 while invoking one of the smp_call_function*() 6856 functions. 6857 6858 scftorture.verbose= [KNL] 6859 Enable additional printk() statements. 6860 6861 scftorture.weight_single= [KNL] 6862 The probability weighting to use for the 6863 smp_call_function_single() function with a zero 6864 "wait" parameter. A value of -1 selects the 6865 default if all other weights are -1. However, 6866 if at least one weight has some other value, a 6867 value of -1 will instead select a weight of zero. 6868 6869 scftorture.weight_single_wait= [KNL] 6870 The probability weighting to use for the 6871 smp_call_function_single() function with a 6872 non-zero "wait" parameter. See weight_single. 6873 6874 scftorture.weight_many= [KNL] 6875 The probability weighting to use for the 6876 smp_call_function_many() function with a zero 6877 "wait" parameter. See weight_single. 6878 Note well that setting a high probability for 6879 this weighting can place serious IPI load 6880 on the system. 6881 6882 scftorture.weight_many_wait= [KNL] 6883 The probability weighting to use for the 6884 smp_call_function_many() function with a 6885 non-zero "wait" parameter. See weight_single 6886 and weight_many. 6887 6888 scftorture.weight_all= [KNL] 6889 The probability weighting to use for the 6890 smp_call_function_all() function with a zero 6891 "wait" parameter. See weight_single and 6892 weight_many. 6893 6894 scftorture.weight_all_wait= [KNL] 6895 The probability weighting to use for the 6896 smp_call_function_all() function with a 6897 non-zero "wait" parameter. See weight_single 6898 and weight_many. 6899 6900 sdw_mclk_divider=[SDW] 6901 Specify the MCLK divider for Intel SoundWire buses in 6902 case the BIOS does not provide the clock rate properly. 6903 6904 skew_tick= [KNL,EARLY] Offset the periodic timer tick per cpu to mitigate 6905 xtime_lock contention on larger systems, and/or RCU lock 6906 contention on all systems with CONFIG_MAXSMP set. 6907 Format: { "0" | "1" } 6908 0 -- disable. (may be 1 via CONFIG_CMDLINE="skew_tick=1" 6909 1 -- enable. 6910 Note: increases power consumption, thus should only be 6911 enabled if running jitter sensitive (HPC/RT) workloads. 6912 6913 security= [SECURITY] Choose a legacy "major" security module to 6914 enable at boot. This has been deprecated by the 6915 "lsm=" parameter. 6916 6917 selinux= [SELINUX] Disable or enable SELinux at boot time. 6918 Format: { "0" | "1" } 6919 See security/selinux/Kconfig help text. 6920 0 -- disable. 6921 1 -- enable. 6922 Default value is 1. 6923 6924 serialnumber [BUGS=X86-32] 6925 6926 sev=option[,option...] [X86-64] 6927 6928 debug 6929 Enable debug messages. 6930 6931 nosnp 6932 Do not enable SEV-SNP (applies to host/hypervisor 6933 only). Setting 'nosnp' avoids the RMP check overhead 6934 in memory accesses when users do not want to run 6935 SEV-SNP guests. 6936 6937 shapers= [NET] 6938 Maximal number of shapers. 6939 6940 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller 6941 Limit apic dumping. The parameter defines the maximal 6942 number of local apics being dumped. Also it is possible 6943 to set it to "all" by meaning -- no limit here. 6944 Format: { 1 (default) | 2 | ... | all }. 6945 The parameter valid if only apic=debug or 6946 apic=verbose is specified. 6947 Example: apic=debug show_lapic=all 6948 6949 slab_debug[=options[,slabs][;[options[,slabs]]...] [MM] 6950 Enabling slab_debug allows one to determine the 6951 culprit if slab objects become corrupted. Enabling 6952 slab_debug can create guard zones around objects and 6953 may poison objects when not in use. Also tracks the 6954 last alloc / free. For more information see 6955 Documentation/admin-guide/mm/slab.rst. 6956 (slub_debug legacy name also accepted for now) 6957 6958 Using this option implies the "no_hash_pointers" 6959 option which can be undone by adding the 6960 "hash_pointers=always" option. 6961 6962 slab_max_order= [MM] 6963 Determines the maximum allowed order for slabs. 6964 A high setting may cause OOMs due to memory 6965 fragmentation. For more information see 6966 Documentation/admin-guide/mm/slab.rst. 6967 (slub_max_order legacy name also accepted for now) 6968 6969 slab_merge [MM] 6970 Enable merging of slabs with similar size when the 6971 kernel is built without CONFIG_SLAB_MERGE_DEFAULT. 6972 (slub_merge legacy name also accepted for now) 6973 6974 slab_min_objects= [MM] 6975 The minimum number of objects per slab. SLUB will 6976 increase the slab order up to slab_max_order to 6977 generate a sufficiently large slab able to contain 6978 the number of objects indicated. The higher the number 6979 of objects the smaller the overhead of tracking slabs 6980 and the less frequently locks need to be acquired. 6981 For more information see 6982 Documentation/admin-guide/mm/slab.rst. 6983 (slub_min_objects legacy name also accepted for now) 6984 6985 slab_min_order= [MM] 6986 Determines the minimum page order for slabs. Must be 6987 lower or equal to slab_max_order. For more information see 6988 Documentation/admin-guide/mm/slab.rst. 6989 (slub_min_order legacy name also accepted for now) 6990 6991 slab_nomerge [MM] 6992 Disable merging of slabs with similar size. May be 6993 necessary if there is some reason to distinguish 6994 allocs to different slabs, especially in hardened 6995 environments where the risk of heap overflows and 6996 layout control by attackers can usually be 6997 frustrated by disabling merging. This will reduce 6998 most of the exposure of a heap attack to a single 6999 cache (risks via metadata attacks are mostly 7000 unchanged). Debug options disable merging on their 7001 own. 7002 For more information see 7003 Documentation/admin-guide/mm/slab.rst. 7004 (slub_nomerge legacy name also accepted for now) 7005 7006 slab_strict_numa [MM] 7007 Support memory policies on a per object level 7008 in the slab allocator. The default is for memory 7009 policies to be applied at the folio level when 7010 a new folio is needed or a partial folio is 7011 retrieved from the lists. Increases overhead 7012 in the slab fastpaths but gains more accurate 7013 NUMA kernel object placement which helps with slow 7014 interconnects in NUMA systems. 7015 7016 slram= [HW,MTD] 7017 7018 smart2= [HW] 7019 Format: <io1>[,<io2>[,...,<io8>]] 7020 7021 smp.csd_lock_timeout= [KNL] 7022 Specify the period of time in milliseconds 7023 that smp_call_function() and friends will wait 7024 for a CPU to release the CSD lock. This is 7025 useful when diagnosing bugs involving CPUs 7026 disabling interrupts for extended periods 7027 of time. Defaults to 5,000 milliseconds, and 7028 setting a value of zero disables this feature. 7029 This feature may be more efficiently disabled 7030 using the csdlock_debug- kernel parameter. 7031 7032 smp.panic_on_ipistall= [KNL] 7033 If a csd_lock_timeout extends for more than 7034 the specified number of milliseconds, panic the 7035 system. By default, let CSD-lock acquisition 7036 take as long as they take. Specifying 300,000 7037 for this value provides a 5-minute timeout. 7038 7039 smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices 7040 smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port 7041 smsc-ircc2.ircc_sir= [HW] SIR base I/O port 7042 smsc-ircc2.ircc_fir= [HW] FIR base I/O port 7043 smsc-ircc2.ircc_irq= [HW] IRQ line 7044 smsc-ircc2.ircc_dma= [HW] DMA channel 7045 smsc-ircc2.ircc_transceiver= [HW] Transceiver type: 7046 0: Toshiba Satellite 1800 (GP data pin select) 7047 1: Fast pin select (default) 7048 2: ATC IRMode 7049 7050 smt= [KNL,MIPS,S390,EARLY] Set the maximum number of threads 7051 (logical CPUs) to use per physical CPU on systems 7052 capable of symmetric multithreading (SMT). Will 7053 be capped to the actual hardware limit. 7054 Format: <integer> 7055 Default: -1 (no limit) 7056 7057 softlockup_panic= 7058 [KNL] Should the soft-lockup detector generate panics. 7059 Format: <int> 7060 7061 A value of non-zero instructs the soft-lockup detector 7062 to panic the machine when a soft-lockup duration exceeds 7063 N thresholds. It is also controlled by the kernel.softlockup_panic 7064 sysctl and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the 7065 respective build-time switch to that functionality. 7066 7067 softlockup_all_cpu_backtrace= 7068 [KNL] Should the soft-lockup detector generate 7069 backtraces on all cpus. 7070 Format: 0 | 1 7071 7072 sonypi.*= [HW] Sony Programmable I/O Control Device driver 7073 See Documentation/admin-guide/laptops/sonypi.rst 7074 7075 spectre_bhi= [X86] Control mitigation of Branch History Injection 7076 (BHI) vulnerability. This setting affects the 7077 deployment of the HW BHI control and the SW BHB 7078 clearing sequence. 7079 7080 on - (default) Enable the HW or SW mitigation as 7081 needed. This protects the kernel from 7082 both syscalls and VMs. 7083 vmexit - On systems which don't have the HW mitigation 7084 available, enable the SW mitigation on vmexit 7085 ONLY. On such systems, the host kernel is 7086 protected from VM-originated BHI attacks, but 7087 may still be vulnerable to syscall attacks. 7088 off - Disable the mitigation. 7089 7090 spectre_v2= [X86,EARLY] Control mitigation of Spectre variant 2 7091 (indirect branch speculation) vulnerability. 7092 The default operation protects the kernel from 7093 user space attacks. 7094 7095 on - unconditionally enable, implies 7096 spectre_v2_user=on 7097 off - unconditionally disable, implies 7098 spectre_v2_user=off 7099 auto - kernel detects whether your CPU model is 7100 vulnerable 7101 7102 Selecting 'on' will, and 'auto' may, choose a 7103 mitigation method at run time according to the 7104 CPU, the available microcode, the setting of the 7105 CONFIG_MITIGATION_RETPOLINE configuration option, 7106 and the compiler with which the kernel was built. 7107 7108 Selecting 'on' will also enable the mitigation 7109 against user space to user space task attacks. 7110 Selecting specific mitigation does not force enable 7111 user mitigations. 7112 7113 Selecting 'off' will disable both the kernel and 7114 the user space protections. 7115 7116 Specific mitigations can also be selected manually: 7117 7118 retpoline - replace indirect branches 7119 retpoline,generic - Retpolines 7120 retpoline,lfence - LFENCE; indirect branch 7121 retpoline,amd - alias for retpoline,lfence 7122 eibrs - Enhanced/Auto IBRS 7123 eibrs,retpoline - Enhanced/Auto IBRS + Retpolines 7124 eibrs,lfence - Enhanced/Auto IBRS + LFENCE 7125 ibrs - use IBRS to protect kernel 7126 7127 Not specifying this option is equivalent to 7128 spectre_v2=auto. 7129 7130 spectre_v2_user= 7131 [X86] Control mitigation of Spectre variant 2 7132 (indirect branch speculation) vulnerability between 7133 user space tasks 7134 7135 on - Unconditionally enable mitigations. Is 7136 enforced by spectre_v2=on 7137 7138 off - Unconditionally disable mitigations. Is 7139 enforced by spectre_v2=off 7140 7141 prctl - Indirect branch speculation is enabled, 7142 but mitigation can be enabled via prctl 7143 per thread. The mitigation control state 7144 is inherited on fork. 7145 7146 prctl,ibpb 7147 - Like "prctl" above, but only STIBP is 7148 controlled per thread. IBPB is issued 7149 always when switching between different user 7150 space processes. 7151 7152 seccomp 7153 - Same as "prctl" above, but all seccomp 7154 threads will enable the mitigation unless 7155 they explicitly opt out. 7156 7157 seccomp,ibpb 7158 - Like "seccomp" above, but only STIBP is 7159 controlled per thread. IBPB is issued 7160 always when switching between different 7161 user space processes. 7162 7163 auto - Kernel selects the mitigation depending on 7164 the available CPU features and vulnerability. 7165 7166 Default mitigation: "prctl" 7167 7168 Not specifying this option is equivalent to 7169 spectre_v2_user=auto. 7170 7171 spec_rstack_overflow= 7172 [X86,EARLY] Control RAS overflow mitigation on AMD Zen CPUs 7173 7174 off - Disable mitigation 7175 microcode - Enable microcode mitigation only 7176 safe-ret - Enable sw-only safe RET mitigation (default) 7177 ibpb - Enable mitigation by issuing IBPB on 7178 kernel entry 7179 ibpb-vmexit - Issue IBPB only on VMEXIT 7180 (cloud-specific mitigation) 7181 7182 spec_store_bypass_disable= 7183 [HW,EARLY] Control Speculative Store Bypass (SSB) Disable mitigation 7184 (Speculative Store Bypass vulnerability) 7185 7186 Certain CPUs are vulnerable to an exploit against a 7187 a common industry wide performance optimization known 7188 as "Speculative Store Bypass" in which recent stores 7189 to the same memory location may not be observed by 7190 later loads during speculative execution. The idea 7191 is that such stores are unlikely and that they can 7192 be detected prior to instruction retirement at the 7193 end of a particular speculation execution window. 7194 7195 In vulnerable processors, the speculatively forwarded 7196 store can be used in a cache side channel attack, for 7197 example to read memory to which the attacker does not 7198 directly have access (e.g. inside sandboxed code). 7199 7200 This parameter controls whether the Speculative Store 7201 Bypass optimization is used. 7202 7203 On x86 the options are: 7204 7205 on - Unconditionally disable Speculative Store Bypass 7206 off - Unconditionally enable Speculative Store Bypass 7207 auto - Kernel detects whether the CPU model contains an 7208 implementation of Speculative Store Bypass and 7209 picks the most appropriate mitigation. If the 7210 CPU is not vulnerable, "off" is selected. If the 7211 CPU is vulnerable the default mitigation is 7212 architecture and Kconfig dependent. See below. 7213 prctl - Control Speculative Store Bypass per thread 7214 via prctl. Speculative Store Bypass is enabled 7215 for a process by default. The state of the control 7216 is inherited on fork. 7217 seccomp - Same as "prctl" above, but all seccomp threads 7218 will disable SSB unless they explicitly opt out. 7219 7220 Default mitigations: 7221 X86: "prctl" 7222 7223 On powerpc the options are: 7224 7225 on,auto - On Power8 and Power9 insert a store-forwarding 7226 barrier on kernel entry and exit. On Power7 7227 perform a software flush on kernel entry and 7228 exit. 7229 off - No action. 7230 7231 Not specifying this option is equivalent to 7232 spec_store_bypass_disable=auto. 7233 7234 split_lock_detect= 7235 [X86] Enable split lock detection or bus lock detection 7236 7237 When enabled (and if hardware support is present), atomic 7238 instructions that access data across cache line 7239 boundaries will result in an alignment check exception 7240 for split lock detection or a debug exception for 7241 bus lock detection. 7242 7243 off - not enabled 7244 7245 warn - the kernel will emit rate-limited warnings 7246 about applications triggering the #AC 7247 exception or the #DB exception. This mode is 7248 the default on CPUs that support split lock 7249 detection or bus lock detection. Default 7250 behavior is by #AC if both features are 7251 enabled in hardware. 7252 7253 fatal - the kernel will send SIGBUS to applications 7254 that trigger the #AC exception or the #DB 7255 exception. Default behavior is by #AC if 7256 both features are enabled in hardware. 7257 7258 ratelimit:N - 7259 Set system wide rate limit to N bus locks 7260 per second for bus lock detection. 7261 0 < N <= 1000. 7262 7263 N/A for split lock detection. 7264 7265 7266 If an #AC exception is hit in the kernel or in 7267 firmware (i.e. not while executing in user mode) 7268 the kernel will oops in either "warn" or "fatal" 7269 mode. 7270 7271 #DB exception for bus lock is triggered only when 7272 CPL > 0. 7273 7274 srbds= [X86,INTEL,EARLY] 7275 Control the Special Register Buffer Data Sampling 7276 (SRBDS) mitigation. 7277 7278 Certain CPUs are vulnerable to an MDS-like 7279 exploit which can leak bits from the random 7280 number generator. 7281 7282 By default, this issue is mitigated by 7283 microcode. However, the microcode fix can cause 7284 the RDRAND and RDSEED instructions to become 7285 much slower. Among other effects, this will 7286 result in reduced throughput from /dev/urandom. 7287 7288 The microcode mitigation can be disabled with 7289 the following option: 7290 7291 off: Disable mitigation and remove 7292 performance impact to RDRAND and RDSEED 7293 7294 srcutree.big_cpu_lim [KNL] 7295 Specifies the number of CPUs constituting a 7296 large system, such that srcu_struct structures 7297 should immediately allocate an srcu_node array. 7298 This kernel-boot parameter defaults to 128, 7299 but takes effect only when the low-order four 7300 bits of srcutree.convert_to_big is equal to 3 7301 (decide at boot). 7302 7303 srcutree.convert_to_big [KNL] 7304 Specifies under what conditions an SRCU tree 7305 srcu_struct structure will be converted to big 7306 form, that is, with an rcu_node tree: 7307 7308 0: Never. 7309 1: At init_srcu_struct() time. 7310 2: When rcutorture decides to. 7311 3: Decide at boot time (default). 7312 0x1X: Above plus if high contention. 7313 7314 Either way, the srcu_node tree will be sized based 7315 on the actual runtime number of CPUs (nr_cpu_ids) 7316 instead of the compile-time CONFIG_NR_CPUS. 7317 7318 srcutree.counter_wrap_check [KNL] 7319 Specifies how frequently to check for 7320 grace-period sequence counter wrap for the 7321 srcu_data structure's ->srcu_gp_seq_needed field. 7322 The greater the number of bits set in this kernel 7323 parameter, the less frequently counter wrap will 7324 be checked for. Note that the bottom two bits 7325 are ignored. 7326 7327 srcutree.exp_holdoff [KNL] 7328 Specifies how many nanoseconds must elapse 7329 since the end of the last SRCU grace period for 7330 a given srcu_struct until the next normal SRCU 7331 grace period will be considered for automatic 7332 expediting. Set to zero to disable automatic 7333 expediting. 7334 7335 srcutree.srcu_max_nodelay [KNL] 7336 Specifies the number of no-delay instances 7337 per jiffy for which the SRCU grace period 7338 worker thread will be rescheduled with zero 7339 delay. Beyond this limit, worker thread will 7340 be rescheduled with a sleep delay of one jiffy. 7341 7342 srcutree.srcu_max_nodelay_phase [KNL] 7343 Specifies the per-grace-period phase, number of 7344 non-sleeping polls of readers. Beyond this limit, 7345 grace period worker thread will be rescheduled 7346 with a sleep delay of one jiffy, between each 7347 rescan of the readers, for a grace period phase. 7348 7349 srcutree.srcu_retry_check_delay [KNL] 7350 Specifies number of microseconds of non-sleeping 7351 delay between each non-sleeping poll of readers. 7352 7353 srcutree.small_contention_lim [KNL] 7354 Specifies the number of update-side contention 7355 events per jiffy will be tolerated before 7356 initiating a conversion of an srcu_struct 7357 structure to big form. Note that the value of 7358 srcutree.convert_to_big must have the 0x10 bit 7359 set for contention-based conversions to occur. 7360 7361 ssbd= [ARM64,HW,EARLY] 7362 Speculative Store Bypass Disable control 7363 7364 On CPUs that are vulnerable to the Speculative 7365 Store Bypass vulnerability and offer a 7366 firmware based mitigation, this parameter 7367 indicates how the mitigation should be used: 7368 7369 force-on: Unconditionally enable mitigation for 7370 for both kernel and userspace 7371 force-off: Unconditionally disable mitigation for 7372 for both kernel and userspace 7373 kernel: Always enable mitigation in the 7374 kernel, and offer a prctl interface 7375 to allow userspace to register its 7376 interest in being mitigated too. 7377 7378 stack_guard_gap= [MM] 7379 override the default stack gap protection. The value 7380 is in page units and it defines how many pages prior 7381 to (for stacks growing down) resp. after (for stacks 7382 growing up) the main stack are reserved for no other 7383 mapping. Default value is 256 pages. 7384 7385 stack_depot_disable= [KNL,EARLY] 7386 Setting this to true through kernel command line will 7387 disable the stack depot thereby saving the static memory 7388 consumed by the stack hash table. By default this is set 7389 to false. 7390 7391 stack_depot_max_pools= [KNL,EARLY] 7392 Specify the maximum number of pools to use for storing 7393 stack traces. Pools are allocated on-demand up to this 7394 limit. Default value is 8191 pools. 7395 7396 stacktrace [FTRACE] 7397 Enable the stack tracer on boot up. 7398 7399 stacktrace_filter=[function-list] 7400 [FTRACE] Limit the functions that the stack tracer 7401 will trace at boot up. function-list is a comma-separated 7402 list of functions. This list can be changed at run 7403 time by the stack_trace_filter file in the debugfs 7404 tracing directory. Note, this enables stack tracing 7405 and the stacktrace above is not needed. 7406 7407 sti= [PARISC,HW] 7408 Format: <num> 7409 Set the STI (builtin display/keyboard on the HP-PARISC 7410 machines) console (graphic card) which should be used 7411 as the initial boot-console. 7412 See also comment in drivers/video/console/sticore.c. 7413 7414 sti_font= [HW] 7415 See comment in drivers/video/console/sticore.c. 7416 7417 stifb= [HW] 7418 Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]] 7419 7420 strict_sas_size= 7421 [X86] 7422 Format: <bool> 7423 Enable or disable strict sigaltstack size checks 7424 against the required signal frame size which 7425 depends on the supported FPU features. This can 7426 be used to filter out binaries which have 7427 not yet been made aware of AT_MINSIGSTKSZ. 7428 7429 stress_hpt [PPC,EARLY] 7430 Limits the number of kernel HPT entries in the hash 7431 page table to increase the rate of hash page table 7432 faults on kernel addresses. 7433 7434 stress_slb [PPC,EARLY] 7435 Limits the number of kernel SLB entries, and flushes 7436 them frequently to increase the rate of SLB faults 7437 on kernel addresses. 7438 7439 no_slb_preload [PPC,EARLY] 7440 Disables slb preloading for userspace. 7441 7442 sunrpc.min_resvport= 7443 sunrpc.max_resvport= 7444 [NFS,SUNRPC] 7445 SunRPC servers often require that client requests 7446 originate from a privileged port (i.e. a port in the 7447 range 0 < portnr < 1024). 7448 An administrator who wishes to reserve some of these 7449 ports for other uses may adjust the range that the 7450 kernel's sunrpc client considers to be privileged 7451 using these two parameters to set the minimum and 7452 maximum port values. 7453 7454 sunrpc.svc_rpc_per_connection_limit= 7455 [NFS,SUNRPC] 7456 Limit the number of requests that the server will 7457 process in parallel from a single connection. 7458 The default value is 0 (no limit). 7459 7460 sunrpc.pool_mode= 7461 [NFS] 7462 Control how the NFS server code allocates CPUs to 7463 service thread pools. Depending on how many NICs 7464 you have and where their interrupts are bound, this 7465 option will affect which CPUs will do NFS serving. 7466 Note: this parameter cannot be changed while the 7467 NFS server is running. 7468 7469 auto the server chooses an appropriate mode 7470 automatically using heuristics 7471 global a single global pool contains all CPUs 7472 percpu one pool for each CPU 7473 pernode one pool for each NUMA node (equivalent 7474 to global on non-NUMA machines) 7475 7476 sunrpc.tcp_slot_table_entries= 7477 sunrpc.udp_slot_table_entries= 7478 [NFS,SUNRPC] 7479 Sets the upper limit on the number of simultaneous 7480 RPC calls that can be sent from the client to a 7481 server. Increasing these values may allow you to 7482 improve throughput, but will also increase the 7483 amount of memory reserved for use by the client. 7484 7485 suspend.pm_test_delay= 7486 [SUSPEND] 7487 Sets the number of seconds to remain in a suspend test 7488 mode before resuming the system (see 7489 /sys/power/pm_test). Only available when CONFIG_PM_DEBUG 7490 is set. Default value is 5. 7491 7492 svm= [PPC] 7493 Format: { on | off | y | n | 1 | 0 } 7494 This parameter controls use of the Protected 7495 Execution Facility on pSeries. 7496 7497 swiotlb= [ARM,PPC,MIPS,X86,S390,EARLY] 7498 Format: { <int> [,<int>] | force | noforce } 7499 <int> -- Number of I/O TLB slabs 7500 <int> -- Second integer after comma. Number of swiotlb 7501 areas with their own lock. Will be rounded up 7502 to a power of 2. 7503 force -- force using of bounce buffers even if they 7504 wouldn't be automatically used by the kernel 7505 noforce -- Never use bounce buffers (for debugging) 7506 7507 switches= [HW,M68k,EARLY] 7508 7509 sysctl.*= [KNL] 7510 Set a sysctl parameter, right before loading the init 7511 process, as if the value was written to the respective 7512 /proc/sys/... file. Both '.' and '/' are recognized as 7513 separators. Unrecognized parameters and invalid values 7514 are reported in the kernel log. Sysctls registered 7515 later by a loaded module cannot be set this way. 7516 Example: sysctl.vm.swappiness=40 7517 7518 sysrq_always_enabled 7519 [KNL] 7520 Ignore sysrq setting - this boot parameter will 7521 neutralize any effect of /proc/sys/kernel/sysrq. 7522 Useful for debugging. 7523 7524 tcpmhash_entries= [KNL,NET] 7525 Set the number of tcp_metrics_hash slots. 7526 Default value is 8192 or 16384 depending on total 7527 ram pages. This is used to specify the TCP metrics 7528 cache size. See Documentation/networking/ip-sysctl.rst 7529 "tcp_no_metrics_save" section for more details. 7530 7531 tdfx= [HW,DRM] 7532 7533 test_suspend= [SUSPEND] 7534 Format: { "mem" | "standby" | "freeze" }[,N] 7535 Specify "mem" (for Suspend-to-RAM) or "standby" (for 7536 standby suspend) or "freeze" (for suspend type freeze) 7537 as the system sleep state during system startup with 7538 the optional capability to repeat N number of times. 7539 The system is woken from this state using a 7540 wakeup-capable RTC alarm. 7541 7542 thash_entries= [KNL,NET] 7543 Set number of hash buckets for TCP connection 7544 7545 thermal.act= [HW,ACPI] 7546 -1: disable all active trip points in all thermal zones 7547 <degrees C>: override all lowest active trip points 7548 7549 thermal.crt= [HW,ACPI] 7550 -1: disable all critical trip points in all thermal zones 7551 <degrees C>: override all critical trip points 7552 7553 thermal.off= [HW,ACPI] 7554 1: disable ACPI thermal control 7555 7556 thermal.psv= [HW,ACPI] 7557 -1: disable all passive trip points 7558 <degrees C>: override all passive trip points to this 7559 value 7560 7561 thermal.tzp= [HW,ACPI] 7562 Specify global default ACPI thermal zone polling rate 7563 <deci-seconds>: poll all this frequency 7564 0: no polling (default) 7565 7566 thp_anon= [KNL] 7567 Format: <size>[KMG],<size>[KMG]:<state>;<size>[KMG]-<size>[KMG]:<state> 7568 state is one of "always", "madvise", "never" or "inherit". 7569 Control the default behavior of the system with respect 7570 to anonymous transparent hugepages. 7571 Can be used multiple times for multiple anon THP sizes. 7572 See Documentation/admin-guide/mm/transhuge.rst for more 7573 details. 7574 7575 threadirqs [KNL,EARLY] 7576 Force threading of all interrupt handlers except those 7577 marked explicitly IRQF_NO_THREAD. 7578 7579 thp_shmem= [KNL] 7580 Format: <size>[KMG],<size>[KMG]:<policy>;<size>[KMG]-<size>[KMG]:<policy> 7581 Control the default policy of each hugepage size for the 7582 internal shmem mount. <policy> is one of policies available 7583 for the shmem mount ("always", "inherit", "never", "within_size", 7584 and "advise"). 7585 It can be used multiple times for multiple shmem THP sizes. 7586 See Documentation/admin-guide/mm/transhuge.rst for more 7587 details. 7588 7589 topology= [S390,EARLY] 7590 Format: {off | on} 7591 Specify if the kernel should make use of the cpu 7592 topology information if the hardware supports this. 7593 The scheduler will make use of this information and 7594 e.g. base its process migration decisions on it. 7595 Default is on. 7596 7597 torture.disable_onoff_at_boot= [KNL] 7598 Prevent the CPU-hotplug component of torturing 7599 until after init has spawned. 7600 7601 torture.ftrace_dump_at_shutdown= [KNL] 7602 Dump the ftrace buffer at torture-test shutdown, 7603 even if there were no errors. This can be a 7604 very costly operation when many torture tests 7605 are running concurrently, especially on systems 7606 with rotating-rust storage. 7607 7608 torture.verbose_sleep_frequency= [KNL] 7609 Specifies how many verbose printk()s should be 7610 emitted between each sleep. The default of zero 7611 disables verbose-printk() sleeping. 7612 7613 torture.verbose_sleep_duration= [KNL] 7614 Duration of each verbose-printk() sleep in jiffies. 7615 7616 tpm.disable_pcr_integrity= [HW,TPM] 7617 Do not protect PCR registers from unintended physical 7618 access, or interposers in the bus by the means of 7619 having an integrity protected session wrapped around 7620 TPM2_PCR_Extend command. Consider this in a situation 7621 where TPM is heavily utilized by IMA, thus protection 7622 causing a major performance hit, and the space where 7623 machines are deployed is by other means guarded. 7624 7625 tpm_crb_ffa.busy_timeout_ms= [ARM64,TPM] 7626 Maximum time in milliseconds to retry sending a message 7627 to the TPM service before giving up. This parameter controls 7628 how long the system will continue retrying when the TPM 7629 service is busy. 7630 Format: <unsigned int> 7631 Default: 2000 (2 seconds) 7632 7633 tpm_suspend_pcr=[HW,TPM] 7634 Format: integer pcr id 7635 Specify that at suspend time, the tpm driver 7636 should extend the specified pcr with zeros, 7637 as a workaround for some chips which fail to 7638 flush the last written pcr on TPM_SaveState. 7639 This will guarantee that all the other pcrs 7640 are saved. 7641 7642 tpm_tis.interrupts= [HW,TPM] 7643 Enable interrupts for the MMIO based physical layer 7644 for the FIFO interface. By default it is set to false 7645 (0). For more information about TPM hardware interfaces 7646 defined by Trusted Computing Group (TCG) see 7647 https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ 7648 7649 tp_printk [FTRACE] 7650 Have the tracepoints sent to printk as well as the 7651 tracing ring buffer. This is useful for early boot up 7652 where the system hangs or reboots and does not give the 7653 option for reading the tracing buffer or performing a 7654 ftrace_dump_on_oops. 7655 7656 To turn off having tracepoints sent to printk, 7657 echo 0 > /proc/sys/kernel/tracepoint_printk 7658 Note, echoing 1 into this file without the 7659 tp_printk kernel cmdline option has no effect. 7660 7661 The tp_printk_stop_on_boot (see below) can also be used 7662 to stop the printing of events to console at 7663 late_initcall_sync. 7664 7665 ** CAUTION ** 7666 7667 Having tracepoints sent to printk() and activating high 7668 frequency tracepoints such as irq or sched, can cause 7669 the system to live lock. 7670 7671 tp_printk_stop_on_boot [FTRACE] 7672 When tp_printk (above) is set, it can cause a lot of noise 7673 on the console. It may be useful to only include the 7674 printing of events during boot up, as user space may 7675 make the system inoperable. 7676 7677 This command line option will stop the printing of events 7678 to console at the late_initcall_sync() time frame. 7679 7680 trace_buf_size=nn[KMG] 7681 [FTRACE] will set tracing buffer size on each cpu. 7682 7683 trace_clock= [FTRACE] Set the clock used for tracing events 7684 at boot up. 7685 local - Use the per CPU time stamp counter 7686 (converted into nanoseconds). Fast, but 7687 depending on the architecture, may not be 7688 in sync between CPUs. 7689 global - Event time stamps are synchronized across 7690 CPUs. May be slower than the local clock, 7691 but better for some race conditions. 7692 counter - Simple counting of events (1, 2, ..) 7693 note, some counts may be skipped due to the 7694 infrastructure grabbing the clock more than 7695 once per event. 7696 uptime - Use jiffies as the time stamp. 7697 perf - Use the same clock that perf uses. 7698 mono - Use ktime_get_mono_fast_ns() for time stamps. 7699 mono_raw - Use ktime_get_raw_fast_ns() for time 7700 stamps. 7701 boot - Use ktime_get_boot_fast_ns() for time stamps. 7702 Architectures may add more clocks. See 7703 Documentation/trace/ftrace.rst for more details. 7704 7705 trace_event=[event-list] 7706 [FTRACE] Set and start specified trace events in order 7707 to facilitate early boot debugging. The event-list is a 7708 comma-separated list of trace events to enable. See 7709 also Documentation/trace/events.rst 7710 7711 To enable modules, use :mod: keyword: 7712 7713 trace_event=:mod:<module> 7714 7715 The value before :mod: will only enable specific events 7716 that are part of the module. See the above mentioned 7717 document for more information. 7718 7719 trace_instance=[instance-info] 7720 [FTRACE] Create a ring buffer instance early in boot up. 7721 This will be listed in: 7722 7723 /sys/kernel/tracing/instances 7724 7725 Events can be enabled at the time the instance is created 7726 via: 7727 7728 trace_instance=<name>,<system1>:<event1>,<system2>:<event2> 7729 7730 Note, the "<system*>:" portion is optional if the event is 7731 unique. 7732 7733 trace_instance=foo,sched:sched_switch,irq_handler_entry,initcall 7734 7735 will enable the "sched_switch" event (note, the "sched:" is optional, and 7736 the same thing would happen if it was left off). The irq_handler_entry 7737 event, and all events under the "initcall" system. 7738 7739 Flags can be added to the instance to modify its behavior when it is 7740 created. The flags are separated by '^'. 7741 7742 The available flags are: 7743 7744 traceoff - Have the tracing instance tracing disabled after it is created. 7745 traceprintk - Have trace_printk() write into this trace instance 7746 (note, "printk" and "trace_printk" can also be used) 7747 7748 trace_instance=foo^traceoff^traceprintk,sched,irq 7749 7750 The flags must come before the defined events. 7751 7752 If memory has been reserved (see memmap for x86), the instance 7753 can use that memory: 7754 7755 memmap=12M$0x284500000 trace_instance=boot_map@0x284500000:12M 7756 7757 The above will create a "boot_map" instance that uses the physical 7758 memory at 0x284500000 that is 12Megs. The per CPU buffers of that 7759 instance will be split up accordingly. 7760 7761 Alternatively, the memory can be reserved by the reserve_mem option: 7762 7763 reserve_mem=12M:4096:trace trace_instance=boot_map@trace 7764 7765 This will reserve 12 megabytes at boot up with a 4096 byte alignment 7766 and place the ring buffer in this memory. Note that due to KASLR, the 7767 memory may not be the same location each time, which will not preserve 7768 the buffer content. 7769 7770 Also note that the layout of the ring buffer data may change between 7771 kernel versions where the validator will fail and reset the ring buffer 7772 if the layout is not the same as the previous kernel. 7773 7774 If the ring buffer is used for persistent bootups and has events enabled, 7775 it is recommend to disable tracing so that events from a previous boot do not 7776 mix with events of the current boot (unless you are debugging a random crash 7777 at boot up). 7778 7779 reserve_mem=12M:4096:trace trace_instance=boot_map^traceoff^traceprintk@trace,sched,irq 7780 7781 Note, saving the trace buffer across reboots does require that the system 7782 is set up to not wipe memory. For instance, CONFIG_RESET_ATTACK_MITIGATION 7783 can force a memory reset on boot which will clear any trace that was stored. 7784 This is just one of many ways that can clear memory. Make sure your system 7785 keeps the content of memory across reboots before relying on this option. 7786 7787 NB: Both the mapped address and size must be page aligned for the architecture. 7788 7789 See also Documentation/trace/debugging.rst 7790 7791 7792 trace_options=[option-list] 7793 [FTRACE] Enable or disable tracer options at boot. 7794 The option-list is a comma delimited list of options 7795 that can be enabled or disabled just as if you were 7796 to echo the option name into 7797 7798 /sys/kernel/tracing/trace_options 7799 7800 For example, to enable stacktrace option (to dump the 7801 stack trace of each event), add to the command line: 7802 7803 trace_options=stacktrace 7804 7805 See also Documentation/trace/ftrace.rst "trace options" 7806 section. 7807 7808 trace_trigger=[trigger-list] 7809 [FTRACE] Add an event trigger on specific events. 7810 Set a trigger on top of a specific event, with an optional 7811 filter. 7812 7813 The format is "trace_trigger=<event>.<trigger>[ if <filter>],..." 7814 Where more than one trigger may be specified that are comma delimited. 7815 7816 For example: 7817 7818 trace_trigger="sched_switch.stacktrace if prev_state == 2" 7819 7820 The above will enable the "stacktrace" trigger on the "sched_switch" 7821 event but only trigger it if the "prev_state" of the "sched_switch" 7822 event is "2" (TASK_UNINTERRUPTIBLE). 7823 7824 See also "Event triggers" in Documentation/trace/events.rst 7825 7826 7827 traceoff_after_boot 7828 [FTRACE] Sometimes tracing is used to debug issues 7829 during the boot process. Since the trace buffer has a 7830 limited amount of storage, it may be prudent to 7831 disable tracing after the boot is finished, otherwise 7832 the critical information may be overwritten. With this 7833 option, the main tracing buffer will be turned off at 7834 the end of the boot process. 7835 7836 traceoff_on_warning 7837 [FTRACE] enable this option to disable tracing when a 7838 warning is hit. This turns off "tracing_on". Tracing can 7839 be enabled again by echoing '1' into the "tracing_on" 7840 file located in /sys/kernel/tracing/ 7841 7842 This option is useful, as it disables the trace before 7843 the WARNING dump is called, which prevents the trace to 7844 be filled with content caused by the warning output. 7845 7846 This option can also be set at run time via the sysctl 7847 option: kernel/traceoff_on_warning 7848 7849 transparent_hugepage= 7850 [KNL] 7851 Format: [always|madvise|never] 7852 Can be used to control the default behavior of the system 7853 with respect to transparent hugepages. 7854 See Documentation/admin-guide/mm/transhuge.rst 7855 for more details. 7856 7857 transparent_hugepage_shmem= [KNL] 7858 Format: [always|within_size|advise|never|deny|force] 7859 Can be used to control the hugepage allocation policy for 7860 the internal shmem mount. 7861 See Documentation/admin-guide/mm/transhuge.rst 7862 for more details. 7863 7864 transparent_hugepage_tmpfs= [KNL] 7865 Format: [always|within_size|advise|never] 7866 Can be used to control the default hugepage allocation policy 7867 for the tmpfs mount. 7868 See Documentation/admin-guide/mm/transhuge.rst 7869 for more details. 7870 7871 trusted.source= [KEYS] 7872 Format: <string> 7873 This parameter identifies the trust source as a backend 7874 for trusted keys implementation. Supported trust 7875 sources: 7876 - "tpm" 7877 - "tee" 7878 - "caam" 7879 - "dcp" 7880 - "pkwm" 7881 If not specified then it defaults to iterating through 7882 the trust source list starting with TPM and assigns the 7883 first trust source as a backend which is initialized 7884 successfully during iteration. 7885 7886 trusted.rng= [KEYS] 7887 Format: <string> 7888 The RNG used to generate key material for trusted keys. 7889 Can be one of: 7890 - "kernel" 7891 - the same value as trusted.source: "tpm" or "tee" 7892 - "default" 7893 If not specified, "default" is used. In this case, 7894 the RNG's choice is left to each individual trust source. 7895 7896 trusted.dcp_use_otp_key 7897 This is intended to be used in combination with 7898 trusted.source=dcp and will select the DCP OTP key 7899 instead of the DCP UNIQUE key blob encryption. 7900 7901 trusted.dcp_skip_zk_test 7902 This is intended to be used in combination with 7903 trusted.source=dcp and will disable the check if the 7904 blob key is all zeros. This is helpful for situations where 7905 having this key zero'ed is acceptable. E.g. in testing 7906 scenarios. 7907 7908 tsa= [X86] Control mitigation for Transient Scheduler 7909 Attacks on AMD CPUs. Search the following in your 7910 favourite search engine for more details: 7911 7912 "Technical guidance for mitigating transient scheduler 7913 attacks". 7914 7915 off - disable the mitigation 7916 on - enable the mitigation (default) 7917 user - mitigate only user/kernel transitions 7918 vm - mitigate only guest/host transitions 7919 7920 7921 tsc= Disable clocksource stability checks for TSC. 7922 Format: <string> 7923 [x86] reliable: mark tsc clocksource as reliable, this 7924 disables clocksource verification at runtime, as well 7925 as the stability checks done at bootup. Used to enable 7926 high-resolution timer mode on older hardware, and in 7927 virtualized environment. 7928 [x86] noirqtime: Do not use TSC to do irq accounting. 7929 Used to run time disable IRQ_TIME_ACCOUNTING on any 7930 platforms where RDTSC is slow and this accounting 7931 can add overhead. 7932 [x86] unstable: mark the TSC clocksource as unstable, this 7933 marks the TSC unconditionally unstable at bootup and 7934 avoids any further wobbles once the TSC watchdog notices. 7935 [x86] nowatchdog: disable clocksource watchdog. Used 7936 in situations with strict latency requirements (where 7937 interruptions from clocksource watchdog are not 7938 acceptable). 7939 [x86] recalibrate: force recalibration against a HW timer 7940 (HPET or PM timer) on systems whose TSC frequency was 7941 obtained from HW or FW using either an MSR or CPUID(0x15). 7942 Warn if the difference is more than 500 ppm. 7943 [x86] watchdog: Enforce the clocksource watchdog on TSC 7944 7945 tsc_early_khz= [X86,EARLY] Skip early TSC calibration and use the given 7946 value instead. Useful when the early TSC frequency discovery 7947 procedure is not reliable, such as on overclocked systems 7948 with CPUID.16h support and partial CPUID.15h support. 7949 Format: <unsigned int> 7950 7951 tsx= [X86] Control Transactional Synchronization 7952 Extensions (TSX) feature in Intel processors that 7953 support TSX control. 7954 7955 This parameter controls the TSX feature. The options are: 7956 7957 on - Enable TSX on the system. Although there are 7958 mitigations for all known security vulnerabilities, 7959 TSX has been known to be an accelerator for 7960 several previous speculation-related CVEs, and 7961 so there may be unknown security risks associated 7962 with leaving it enabled. 7963 7964 off - Disable TSX on the system. (Note that this 7965 option takes effect only on newer CPUs which are 7966 not vulnerable to MDS, i.e., have 7967 MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1 and which get 7968 the new IA32_TSX_CTRL MSR through a microcode 7969 update. This new MSR allows for the reliable 7970 deactivation of the TSX functionality.) 7971 7972 auto - Disable TSX if X86_BUG_TAA is present, 7973 otherwise enable TSX on the system. 7974 7975 Not specifying this option is equivalent to tsx=off. 7976 7977 See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst 7978 for more details. 7979 7980 tsx_async_abort= [X86,INTEL,EARLY] Control mitigation for the TSX Async 7981 Abort (TAA) vulnerability. 7982 7983 Similar to Micro-architectural Data Sampling (MDS) 7984 certain CPUs that support Transactional 7985 Synchronization Extensions (TSX) are vulnerable to an 7986 exploit against CPU internal buffers which can forward 7987 information to a disclosure gadget under certain 7988 conditions. 7989 7990 In vulnerable processors, the speculatively forwarded 7991 data can be used in a cache side channel attack, to 7992 access data to which the attacker does not have direct 7993 access. 7994 7995 This parameter controls the TAA mitigation. The 7996 options are: 7997 7998 full - Enable TAA mitigation on vulnerable CPUs 7999 if TSX is enabled. 8000 8001 full,nosmt - Enable TAA mitigation and disable SMT on 8002 vulnerable CPUs. If TSX is disabled, SMT 8003 is not disabled because CPU is not 8004 vulnerable to cross-thread TAA attacks. 8005 off - Unconditionally disable TAA mitigation 8006 8007 On MDS-affected machines, tsx_async_abort=off can be 8008 prevented by an active MDS mitigation as both vulnerabilities 8009 are mitigated with the same mechanism so in order to disable 8010 this mitigation, you need to specify mds=off too. 8011 8012 Not specifying this option is equivalent to 8013 tsx_async_abort=full. On CPUs which are MDS affected 8014 and deploy MDS mitigation, TAA mitigation is not 8015 required and doesn't provide any additional 8016 mitigation. 8017 8018 For details see: 8019 Documentation/admin-guide/hw-vuln/tsx_async_abort.rst 8020 8021 turbografx.map[2|3]= [HW,JOY] 8022 TurboGraFX parallel port interface 8023 Format: 8024 <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7> 8025 See also Documentation/input/devices/joystick-parport.rst 8026 8027 udbg-immortal [PPC] When debugging early kernel crashes that 8028 happen after console_init() and before a proper 8029 console driver takes over, this boot options might 8030 help "seeing" what's going on. 8031 8032 uhash_entries= [KNL,NET] 8033 Set number of hash buckets for UDP/UDP-Lite connections 8034 8035 uhci-hcd.ignore_oc= 8036 [USB] Ignore overcurrent events (default N). 8037 Some badly-designed motherboards generate lots of 8038 bogus events, for ports that aren't wired to 8039 anything. Set this parameter to avoid log spamming. 8040 Note that genuine overcurrent events won't be 8041 reported either. 8042 8043 unaligned_scalar_speed= 8044 [RISCV] 8045 Format: {slow | fast | unsupported} 8046 Allow skipping scalar unaligned access speed tests. This 8047 is useful for testing alternative code paths and to skip 8048 the tests in environments where they run too slowly. All 8049 CPUs must have the same scalar unaligned access speed. 8050 8051 unaligned_vector_speed= 8052 [RISCV] 8053 Format: {slow | fast | unsupported} 8054 Allow skipping vector unaligned access speed tests. This 8055 is useful for testing alternative code paths and to skip 8056 the tests in environments where they run too slowly. All 8057 CPUs must have the same vector unaligned access speed. 8058 8059 unknown_nmi_panic 8060 [X86] Cause panic on unknown NMI. 8061 8062 unwind_debug [X86-64,EARLY] 8063 Enable unwinder debug output. This can be 8064 useful for debugging certain unwinder error 8065 conditions, including corrupt stacks and 8066 bad/missing unwinder metadata. 8067 8068 usbcore.authorized_default= 8069 [USB] Default USB device authorization: 8070 (default -1 = authorized (same as 1), 8071 0 = not authorized, 1 = authorized, 2 = authorized 8072 if device connected to internal port) 8073 8074 usbcore.autosuspend= 8075 [USB] The autosuspend time delay (in seconds) used 8076 for newly-detected USB devices (default 2). This 8077 is the time required before an idle device will be 8078 autosuspended. Devices for which the delay is set 8079 to a negative value won't be autosuspended at all. 8080 8081 usbcore.usbfs_snoop= 8082 [USB] Set to log all usbfs traffic (default 0 = off). 8083 8084 usbcore.usbfs_snoop_max= 8085 [USB] Maximum number of bytes to snoop in each URB 8086 (default = 65536). 8087 8088 usbcore.blinkenlights= 8089 [USB] Set to cycle leds on hubs (default 0 = off). 8090 8091 usbcore.old_scheme_first= 8092 [USB] Start with the old device initialization 8093 scheme (default 0 = off). 8094 8095 usbcore.usbfs_memory_mb= 8096 [USB] Memory limit (in MB) for buffers allocated by 8097 usbfs (default = 16, 0 = max = 2047). 8098 8099 usbcore.use_both_schemes= 8100 [USB] Try the other device initialization scheme 8101 if the first one fails (default 1 = enabled). 8102 8103 usbcore.initial_descriptor_timeout= 8104 [USB] Specifies timeout for the initial 64-byte 8105 USB_REQ_GET_DESCRIPTOR request in milliseconds 8106 (default 5000 = 5.0 seconds). 8107 8108 usbcore.nousb [USB] Disable the USB subsystem 8109 8110 usbcore.quirks= 8111 [USB] A list of quirk entries to augment the built-in 8112 usb core quirk list. List entries are separated by 8113 commas. Each entry has the form 8114 VendorID:ProductID:Flags. The IDs are 4-digit hex 8115 numbers and Flags is a set of letters. Each letter 8116 will change the built-in quirk; setting it if it is 8117 clear and clearing it if it is set. The letters have 8118 the following meanings: 8119 a = USB_QUIRK_STRING_FETCH_255 (string 8120 descriptors must not be fetched using 8121 a 255-byte read); 8122 b = USB_QUIRK_RESET_RESUME (device can't resume 8123 correctly so reset it instead); 8124 c = USB_QUIRK_NO_SET_INTF (device can't handle 8125 Set-Interface requests); 8126 d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't 8127 handle its Configuration or Interface 8128 strings); 8129 e = USB_QUIRK_RESET (device can't be reset 8130 (e.g morph devices), don't use reset); 8131 f = USB_QUIRK_HONOR_BNUMINTERFACES (device has 8132 more interface descriptions than the 8133 bNumInterfaces count, and can't handle 8134 talking to these interfaces); 8135 g = USB_QUIRK_DELAY_INIT (device needs a pause 8136 during initialization, after we read 8137 the device descriptor); 8138 h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For 8139 high speed and super speed interrupt 8140 endpoints, the USB 2.0 and USB 3.0 spec 8141 require the interval in microframes (1 8142 microframe = 125 microseconds) to be 8143 calculated as interval = 2 ^ 8144 (bInterval-1). 8145 Devices with this quirk report their 8146 bInterval as the result of this 8147 calculation instead of the exponent 8148 variable used in the calculation); 8149 i = USB_QUIRK_DEVICE_QUALIFIER (device can't 8150 handle device_qualifier descriptor 8151 requests); 8152 j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device 8153 generates spurious wakeup, ignore 8154 remote wakeup capability); 8155 k = USB_QUIRK_NO_LPM (device can't handle Link 8156 Power Management); 8157 l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL 8158 (Device reports its bInterval as linear 8159 frames instead of the USB 2.0 8160 calculation); 8161 m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs 8162 to be disconnected before suspend to 8163 prevent spurious wakeup); 8164 n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a 8165 pause after every control message); 8166 o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra 8167 delay after resetting its port); 8168 p = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT 8169 (Reduce timeout of the SET_ADDRESS 8170 request from 5000 ms to 500 ms); 8171 q = USB_QUIRK_FORCE_ONE_CONFIG (Device 8172 claims zero configurations, 8173 forcing to 1); 8174 Example: quirks=0781:5580:bk,0a5c:5834:gij 8175 8176 usbhid.mousepoll= 8177 [USBHID] The interval which mice are to be polled at. 8178 8179 usbhid.jspoll= 8180 [USBHID] The interval which joysticks are to be polled at. 8181 8182 usbhid.kbpoll= 8183 [USBHID] The interval which keyboards are to be polled at. 8184 8185 usb-storage.delay_use= 8186 [UMS] The delay in seconds before a new device is 8187 scanned for Logical Units (default 1). 8188 Optionally the delay in milliseconds if the value has 8189 suffix with "ms". 8190 Example: delay_use=2567ms 8191 8192 usb-storage.quirks= 8193 [UMS] A list of quirks entries to supplement or 8194 override the built-in unusual_devs list. List 8195 entries are separated by commas. Each entry has 8196 the form VID:PID:Flags where VID and PID are Vendor 8197 and Product ID values (4-digit hex numbers) and 8198 Flags is a set of characters, each corresponding 8199 to a common usb-storage quirk flag as follows: 8200 a = SANE_SENSE (collect more than 18 bytes 8201 of sense data, not on uas); 8202 b = BAD_SENSE (don't collect more than 18 8203 bytes of sense data, not on uas); 8204 c = FIX_CAPACITY (decrease the reported 8205 device capacity by one sector); 8206 d = NO_READ_DISC_INFO (don't use 8207 READ_DISC_INFO command, not on uas); 8208 e = NO_READ_CAPACITY_16 (don't use 8209 READ_CAPACITY_16 command); 8210 f = NO_REPORT_OPCODES (don't use report opcodes 8211 command, uas only); 8212 g = MAX_SECTORS_240 (don't transfer more than 8213 240 sectors at a time, uas only); 8214 h = CAPACITY_HEURISTICS (decrease the 8215 reported device capacity by one 8216 sector if the number is odd); 8217 i = IGNORE_DEVICE (don't bind to this 8218 device); 8219 j = NO_REPORT_LUNS (don't use report luns 8220 command, uas only); 8221 k = NO_SAME (do not use WRITE_SAME, uas only) 8222 l = NOT_LOCKABLE (don't try to lock and 8223 unlock ejectable media, not on uas); 8224 m = MAX_SECTORS_64 (don't transfer more 8225 than 64 sectors = 32 KB at a time, 8226 not on uas); 8227 n = INITIAL_READ10 (force a retry of the 8228 initial READ(10) command, not on uas); 8229 o = CAPACITY_OK (accept the capacity 8230 reported by the device, not on uas); 8231 p = WRITE_CACHE (the device cache is ON 8232 by default, not on uas); 8233 r = IGNORE_RESIDUE (the device reports 8234 bogus residue values, not on uas); 8235 s = SINGLE_LUN (the device has only one 8236 Logical Unit); 8237 t = NO_ATA_1X (don't allow ATA(12) and ATA(16) 8238 commands, uas only); 8239 u = IGNORE_UAS (don't bind to the uas driver); 8240 w = NO_WP_DETECT (don't test whether the 8241 medium is write-protected). 8242 y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE 8243 even if the device claims no cache, 8244 not on uas) 8245 Example: quirks=0419:aaf5:rl,0421:0433:rc 8246 8247 user_debug= [KNL,ARM] 8248 Format: <int> 8249 See arch/arm/Kconfig.debug help text. 8250 1 - undefined instruction events 8251 2 - system calls 8252 4 - invalid data aborts 8253 8 - SIGSEGV faults 8254 16 - SIGBUS faults 8255 Example: user_debug=31 8256 8257 vdso= [X86,SH,SPARC] 8258 On X86_32, this is an alias for vdso32=. Otherwise: 8259 8260 vdso=1: enable VDSO (the default) 8261 vdso=0: disable VDSO mapping 8262 8263 vdso32= [X86] Control the 32-bit vDSO 8264 vdso32=1: enable 32-bit VDSO 8265 vdso32=0 or vdso32=2: disable 32-bit VDSO 8266 8267 See the help text for CONFIG_COMPAT_VDSO for more 8268 details. If CONFIG_COMPAT_VDSO is set, the default is 8269 vdso32=0; otherwise, the default is vdso32=1. 8270 8271 For compatibility with older kernels, vdso32=2 is an 8272 alias for vdso32=0. 8273 8274 Try vdso32=0 if you encounter an error that says: 8275 dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed! 8276 8277 video= [FB,EARLY] Frame buffer configuration 8278 See Documentation/fb/modedb.rst. 8279 8280 video.brightness_switch_enabled= [ACPI] 8281 Format: [0|1] 8282 If set to 1, on receiving an ACPI notify event 8283 generated by hotkey, video driver will adjust brightness 8284 level and then send out the event to user space through 8285 the allocated input device. If set to 0, video driver 8286 will only send out the event without touching backlight 8287 brightness level. 8288 default: 1 8289 8290 virtio_mmio.device= 8291 [VMMIO] Memory mapped virtio (platform) device. 8292 8293 <size>@<baseaddr>:<irq>[:<id>] 8294 where: 8295 <size> := size (can use standard suffixes 8296 like K, M and G) 8297 <baseaddr> := physical base address 8298 <irq> := interrupt number (as passed to 8299 request_irq()) 8300 <id> := (optional) platform device id 8301 example: 8302 virtio_mmio.device=1K@0x100b0000:48:7 8303 8304 Can be used multiple times for multiple devices. 8305 8306 vga= [BOOT,X86-32] Select a particular video mode 8307 See Documentation/arch/x86/boot.rst and 8308 Documentation/admin-guide/svga.rst. 8309 Use vga=ask for menu. 8310 This is actually a boot loader parameter; the value is 8311 passed to the kernel using a special protocol. 8312 8313 vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y. 8314 May slow down system boot speed, especially when 8315 enabled on systems with a large amount of memory. 8316 All options are enabled by default, and this 8317 interface is meant to allow for selectively 8318 enabling or disabling specific virtual memory 8319 debugging features. 8320 8321 Available options are: 8322 P Enable page structure init time poisoning 8323 - Disable all of the above options 8324 8325 vmalloc=nn[KMG] [KNL,BOOT,EARLY] Forces the vmalloc area to have an 8326 exact size of <nn>. This can be used to increase 8327 the minimum size (128MB on x86, arm32 platforms). 8328 It can also be used to decrease the size and leave more room 8329 for directly mapped kernel RAM. Note that this parameter does 8330 not exist on many other platforms (including arm64, alpha, 8331 loongarch, arc, csky, hexagon, microblaze, mips, nios2, openrisc, 8332 parisc, m64k, powerpc, riscv, sh, um, xtensa, s390, sparc). 8333 8334 vmcp_cma=nn[MG] [KNL,S390,EARLY] 8335 Sets the memory size reserved for contiguous memory 8336 allocations for the vmcp device driver. 8337 8338 vmhalt= [KNL,S390] Perform z/VM CP command after system halt. 8339 Format: <command> 8340 8341 vmpanic= [KNL,S390] Perform z/VM CP command after kernel panic. 8342 Format: <command> 8343 8344 vmpoff= [KNL,S390] Perform z/VM CP command after power off. 8345 Format: <command> 8346 8347 vmscape= [X86] Controls mitigation for VMscape attacks. 8348 VMscape attacks can leak information from a userspace 8349 hypervisor to a guest via speculative side-channels. 8350 8351 off - disable the mitigation 8352 ibpb - use Indirect Branch Prediction Barrier 8353 (IBPB) mitigation (default) 8354 force - force vulnerability detection even on 8355 unaffected processors 8356 8357 vsyscall= [X86-64,EARLY] 8358 Controls the behavior of vsyscalls (i.e. calls to 8359 fixed addresses of 0xffffffffff600x00 from legacy 8360 code). Most statically-linked binaries and older 8361 versions of glibc use these calls. Because these 8362 functions are at fixed addresses, they make nice 8363 targets for exploits that can control RIP. 8364 8365 emulate Vsyscalls turn into traps and are emulated 8366 reasonably safely. The vsyscall page is 8367 readable. This disables the Linear 8368 Address Space Separation (LASS) security 8369 feature and makes the system less secure. 8370 8371 xonly [default] Vsyscalls turn into traps and are 8372 emulated reasonably safely. The vsyscall 8373 page is not readable. 8374 8375 none Vsyscalls don't work at all. This makes 8376 them quite hard to use for exploits but 8377 might break your system. 8378 8379 vt.color= [VT] Default text color. 8380 Format: 0xYX, X = foreground, Y = background. 8381 Default: 0x07 = light gray on black. 8382 8383 vt.cur_default= [VT] Default cursor shape. 8384 Format: 0xCCBBAA, where AA, BB, and CC are the same as 8385 the parameters of the <Esc>[?A;B;Cc escape sequence; 8386 see vga-softcursor.rst. Default: 2 = underline. 8387 8388 vt.default_blu= [VT] 8389 Format: <blue0>,<blue1>,<blue2>,...,<blue15> 8390 Change the default blue palette of the console. 8391 This is a 16-member array composed of values 8392 ranging from 0-255. 8393 8394 vt.default_grn= [VT] 8395 Format: <green0>,<green1>,<green2>,...,<green15> 8396 Change the default green palette of the console. 8397 This is a 16-member array composed of values 8398 ranging from 0-255. 8399 8400 vt.default_red= [VT] 8401 Format: <red0>,<red1>,<red2>,...,<red15> 8402 Change the default red palette of the console. 8403 This is a 16-member array composed of values 8404 ranging from 0-255. 8405 8406 vt.default_utf8= 8407 [VT] 8408 Format=<0|1> 8409 Set system-wide default UTF-8 mode for all tty's. 8410 Default is 1, i.e. UTF-8 mode is enabled for all 8411 newly opened terminals. 8412 8413 vt.global_cursor_default= 8414 [VT] 8415 Format=<-1|0|1> 8416 Set system-wide default for whether a cursor 8417 is shown on new VTs. Default is -1, 8418 i.e. cursors will be created by default unless 8419 overridden by individual drivers. 0 will hide 8420 cursors, 1 will display them. 8421 8422 vt.italic= [VT] Default color for italic text; 0-15. 8423 Default: 2 = green. 8424 8425 vt.underline= [VT] Default color for underlined text; 0-15. 8426 Default: 3 = cyan. 8427 8428 watchdog timers [HW,WDT] For information on watchdog timers, 8429 see Documentation/watchdog/watchdog-parameters.rst 8430 or other driver-specific files in the 8431 Documentation/watchdog/ directory. 8432 8433 watchdog_thresh= 8434 [KNL] 8435 Set the hard lockup detector stall duration 8436 threshold in seconds. The soft lockup detector 8437 threshold is set to twice the value. A value of 0 8438 disables both lockup detectors. Default is 10 8439 seconds. 8440 8441 workqueue.unbound_cpus= 8442 [KNL,SMP] Specify to constrain one or some CPUs 8443 to use in unbound workqueues. 8444 Format: <cpu-list> 8445 By default, all online CPUs are available for 8446 unbound workqueues. 8447 8448 workqueue.watchdog_thresh= 8449 If CONFIG_WQ_WATCHDOG is configured, workqueue can 8450 warn stall conditions and dump internal state to 8451 help debugging. 0 disables workqueue stall 8452 detection; otherwise, it's the stall threshold 8453 duration in seconds. The default value is 30 and 8454 it can be updated at runtime by writing to the 8455 corresponding sysfs file. 8456 8457 workqueue.panic_on_stall=<uint> 8458 Panic when workqueue stall is detected by 8459 CONFIG_WQ_WATCHDOG. It sets the number times of the 8460 stall to trigger panic. 8461 8462 The default is set by CONFIG_BOOTPARAM_WQ_STALL_PANIC, 8463 which is 0 (disabled) if not configured. 8464 8465 workqueue.panic_on_stall_time=<uint> 8466 Panic when a workqueue stall has been continuous for 8467 the specified number of seconds. Unlike panic_on_stall 8468 which counts accumulated stall events, this triggers 8469 based on the duration of a single continuous stall. 8470 8471 The default is 0, which disables the time-based panic. 8472 8473 workqueue.cpu_intensive_thresh_us= 8474 Per-cpu work items which run for longer than this 8475 threshold are automatically considered CPU intensive 8476 and excluded from concurrency management to prevent 8477 them from noticeably delaying other per-cpu work 8478 items. Default is 10000 (10ms). 8479 8480 If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel 8481 will report the work functions which violate this 8482 threshold repeatedly. They are likely good 8483 candidates for using WQ_UNBOUND workqueues instead. 8484 8485 workqueue.cpu_intensive_warning_thresh=<uint> 8486 If CONFIG_WQ_CPU_INTENSIVE_REPORT is set, the kernel 8487 will report the work functions which violate the 8488 intensive_threshold_us repeatedly. In order to prevent 8489 spurious warnings, start printing only after a work 8490 function has violated this threshold number of times. 8491 8492 The default is 4 times. 0 disables the warning. 8493 8494 workqueue.power_efficient 8495 Per-cpu workqueues are generally preferred because 8496 they show better performance thanks to cache 8497 locality; unfortunately, per-cpu workqueues tend to 8498 be more power hungry than unbound workqueues. 8499 8500 Enabling this makes the per-cpu workqueues which 8501 were observed to contribute significantly to power 8502 consumption unbound, leading to measurably lower 8503 power usage at the cost of small performance 8504 overhead. 8505 8506 The default value of this parameter is determined by 8507 the config option CONFIG_WQ_POWER_EFFICIENT_DEFAULT. 8508 8509 workqueue.default_affinity_scope= 8510 Select the default affinity scope to use for unbound 8511 workqueues. Can be one of "cpu", "smt", "cache", 8512 "cache_shard", "numa" and "system". Default is 8513 "cache_shard". For more 8514 information, see the Affinity Scopes section in 8515 Documentation/core-api/workqueue.rst. 8516 8517 This can be changed after boot by writing to the 8518 matching /sys/module/workqueue/parameters file. All 8519 workqueues with the "default" affinity scope will be 8520 updated accordingly. 8521 8522 workqueue.debug_force_rr_cpu 8523 Workqueue used to implicitly guarantee that work 8524 items queued without explicit CPU specified are put 8525 on the local CPU. This guarantee is no longer true 8526 and while local CPU is still preferred work items 8527 may be put on foreign CPUs. This debug option 8528 forces round-robin CPU selection to flush out 8529 usages which depend on the now broken guarantee. 8530 When enabled, memory and cache locality will be 8531 impacted. 8532 8533 writecombine= [LOONGARCH,EARLY] Control the MAT (Memory Access 8534 Type) of ioremap_wc(). 8535 8536 on - Enable writecombine, use WUC for ioremap_wc() 8537 off - Disable writecombine, use SUC for ioremap_wc() 8538 8539 x2apic_phys [X86-64,APIC,EARLY] Use x2apic physical mode instead of 8540 default x2apic cluster mode on platforms 8541 supporting x2apic. 8542 8543 xen_512gb_limit [KNL,X86-64,XEN] 8544 Restricts the kernel running paravirtualized under Xen 8545 to use only up to 512 GB of RAM. The reason to do so is 8546 crash analysis tools and Xen tools for doing domain 8547 save/restore/migration must be enabled to handle larger 8548 domains. 8549 8550 xen_console_io [XEN,EARLY] 8551 Boolean option to enable/disable the usage of the Xen 8552 console_io hypercalls to read and write to the console. 8553 Mostly useful for debugging and development. 8554 8555 xen_emul_unplug= [HW,X86,XEN,EARLY] 8556 Unplug Xen emulated devices 8557 Format: [unplug0,][unplug1] 8558 ide-disks -- unplug primary master IDE devices 8559 aux-ide-disks -- unplug non-primary-master IDE devices 8560 nics -- unplug network devices 8561 all -- unplug all emulated devices (NICs and IDE disks) 8562 unnecessary -- unplugging emulated devices is 8563 unnecessary even if the host did not respond to 8564 the unplug protocol 8565 never -- do not unplug even if version check succeeds 8566 8567 xen_legacy_crash [X86,XEN,EARLY] 8568 Crash from Xen panic notifier, without executing late 8569 panic() code such as dumping handler. 8570 8571 xen_mc_debug [X86,XEN,EARLY] 8572 Enable multicall debugging when running as a Xen PV guest. 8573 Enabling this feature will reduce performance a little 8574 bit, so it should only be enabled for obtaining extended 8575 debug data in case of multicall errors. 8576 8577 xen_msr_safe= [X86,XEN,EARLY] 8578 Format: <bool> 8579 Select whether to always use non-faulting (safe) MSR 8580 access functions when running as Xen PV guest. The 8581 default value is controlled by CONFIG_XEN_PV_MSR_SAFE. 8582 8583 xen_nopv [X86] 8584 Disables the PV optimizations forcing the HVM guest to 8585 run as generic HVM guest with no PV drivers. 8586 This option is obsoleted by the "nopv" option, which 8587 has equivalent effect for XEN platform. 8588 8589 xen_no_vector_callback 8590 [KNL,X86,XEN,EARLY] Disable the vector callback for Xen 8591 event channel interrupts. 8592 8593 xen_scrub_pages= [XEN] 8594 Boolean option to control scrubbing pages before giving them back 8595 to Xen, for use by other domains. Can be also changed at runtime 8596 with /sys/devices/system/xen_memory/xen_memory0/scrub_pages. 8597 Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT. 8598 8599 xen_timer_slop= [X86-64,XEN,EARLY] 8600 Set the timer slop (in nanoseconds) for the virtual Xen 8601 timers (default is 100000). This adjusts the minimum 8602 delta of virtualized Xen timers, where lower values 8603 improve timer resolution at the expense of processing 8604 more timer interrupts. 8605 8606 xen.balloon_boot_timeout= [XEN] 8607 The time (in seconds) to wait before giving up to boot 8608 in case initial ballooning fails to free enough memory. 8609 Applies only when running as HVM or PVH guest and 8610 started with less memory configured than allowed at 8611 max. Default is 180. 8612 8613 xen.event_eoi_delay= [XEN] 8614 How long to delay EOI handling in case of event 8615 storms (jiffies). Default is 10. 8616 8617 xen.event_loop_timeout= [XEN] 8618 After which time (jiffies) the event handling loop 8619 should start to delay EOI handling. Default is 2. 8620 8621 xen.fifo_events= [XEN] 8622 Boolean parameter to disable using fifo event handling 8623 even if available. Normally fifo event handling is 8624 preferred over the 2-level event handling, as it is 8625 fairer and the number of possible event channels is 8626 much higher. Default is on (use fifo events). 8627 8628 xirc2ps_cs= [NET,PCMCIA] 8629 Format: 8630 <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] 8631 8632 xive= [PPC] 8633 By default on POWER9 and above, the kernel will 8634 natively use the XIVE interrupt controller. This option 8635 allows the fallback firmware mode to be used: 8636 8637 off Fallback to firmware control of XIVE interrupt 8638 controller on both pseries and powernv 8639 platforms. Only useful on POWER9 and above. 8640 8641 xive.store-eoi=off [PPC] 8642 By default on POWER10 and above, the kernel will use 8643 stores for EOI handling when the XIVE interrupt mode 8644 is active. This option allows the XIVE driver to use 8645 loads instead, as on POWER9. 8646 8647 xhci-hcd.quirks [USB,KNL] 8648 A hex value specifying bitmask with supplemental xhci 8649 host controller quirks. Meaning of each bit can be 8650 consulted in header drivers/usb/host/xhci.h. 8651 8652 xmon [PPC,EARLY] 8653 Format: { early | on | rw | ro | off } 8654 Controls if xmon debugger is enabled. Default is off. 8655 Passing only "xmon" is equivalent to "xmon=early". 8656 early Call xmon as early as possible on boot; xmon 8657 debugger is called from setup_arch(). 8658 on xmon debugger hooks will be installed so xmon 8659 is only called on a kernel crash. Default mode, 8660 i.e. either "ro" or "rw" mode, is controlled 8661 with CONFIG_XMON_DEFAULT_RO_MODE. 8662 rw xmon debugger hooks will be installed so xmon 8663 is called only on a kernel crash, mode is write, 8664 meaning SPR registers, memory and, other data 8665 can be written using xmon commands. 8666 ro same as "rw" option above but SPR registers, 8667 memory, and other data can't be written using 8668 xmon commands. 8669 off xmon is disabled. 8670