1*4882a593Smuzhiyun acpi= [HW,ACPI,X86,ARM64] 2*4882a593Smuzhiyun Advanced Configuration and Power Interface 3*4882a593Smuzhiyun Format: { force | on | off | strict | noirq | rsdt | 4*4882a593Smuzhiyun copy_dsdt } 5*4882a593Smuzhiyun force -- enable ACPI if default was off 6*4882a593Smuzhiyun on -- enable ACPI but allow fallback to DT [arm64] 7*4882a593Smuzhiyun off -- disable ACPI if default was on 8*4882a593Smuzhiyun noirq -- do not use ACPI for IRQ routing 9*4882a593Smuzhiyun strict -- Be less tolerant of platforms that are not 10*4882a593Smuzhiyun strictly ACPI specification compliant. 11*4882a593Smuzhiyun rsdt -- prefer RSDT over (default) XSDT 12*4882a593Smuzhiyun copy_dsdt -- copy DSDT to memory 13*4882a593Smuzhiyun For ARM64, ONLY "acpi=off", "acpi=on" or "acpi=force" 14*4882a593Smuzhiyun are available 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun See also Documentation/power/runtime_pm.rst, pci=noacpi 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun acpi_apic_instance= [ACPI, IOAPIC] 19*4882a593Smuzhiyun Format: <int> 20*4882a593Smuzhiyun 2: use 2nd APIC table, if available 21*4882a593Smuzhiyun 1,0: use 1st APIC table 22*4882a593Smuzhiyun default: 0 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun acpi_backlight= [HW,ACPI] 25*4882a593Smuzhiyun { vendor | video | native | none } 26*4882a593Smuzhiyun If set to vendor, prefer vendor-specific driver 27*4882a593Smuzhiyun (e.g. thinkpad_acpi, sony_acpi, etc.) instead 28*4882a593Smuzhiyun of the ACPI video.ko driver. 29*4882a593Smuzhiyun If set to video, use the ACPI video.ko driver. 30*4882a593Smuzhiyun If set to native, use the device's native backlight mode. 31*4882a593Smuzhiyun If set to none, disable the ACPI backlight interface. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun acpi_force_32bit_fadt_addr 34*4882a593Smuzhiyun force FADT to use 32 bit addresses rather than the 35*4882a593Smuzhiyun 64 bit X_* addresses. Some firmware have broken 64 36*4882a593Smuzhiyun bit addresses for force ACPI ignore these and use 37*4882a593Smuzhiyun the older legacy 32 bit addresses. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun acpica_no_return_repair [HW, ACPI] 40*4882a593Smuzhiyun Disable AML predefined validation mechanism 41*4882a593Smuzhiyun This mechanism can repair the evaluation result to make 42*4882a593Smuzhiyun the return objects more ACPI specification compliant. 43*4882a593Smuzhiyun This option is useful for developers to identify the 44*4882a593Smuzhiyun root cause of an AML interpreter issue when the issue 45*4882a593Smuzhiyun has something to do with the repair mechanism. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun acpi.debug_layer= [HW,ACPI,ACPI_DEBUG] 48*4882a593Smuzhiyun acpi.debug_level= [HW,ACPI,ACPI_DEBUG] 49*4882a593Smuzhiyun Format: <int> 50*4882a593Smuzhiyun CONFIG_ACPI_DEBUG must be enabled to produce any ACPI 51*4882a593Smuzhiyun debug output. Bits in debug_layer correspond to a 52*4882a593Smuzhiyun _COMPONENT in an ACPI source file, e.g., 53*4882a593Smuzhiyun #define _COMPONENT ACPI_PCI_COMPONENT 54*4882a593Smuzhiyun Bits in debug_level correspond to a level in 55*4882a593Smuzhiyun ACPI_DEBUG_PRINT statements, e.g., 56*4882a593Smuzhiyun ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... 57*4882a593Smuzhiyun The debug_level mask defaults to "info". See 58*4882a593Smuzhiyun Documentation/firmware-guide/acpi/debug.rst for more information about 59*4882a593Smuzhiyun debug layers and levels. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun Enable processor driver info messages: 62*4882a593Smuzhiyun acpi.debug_layer=0x20000000 63*4882a593Smuzhiyun Enable PCI/PCI interrupt routing info messages: 64*4882a593Smuzhiyun acpi.debug_layer=0x400000 65*4882a593Smuzhiyun Enable AML "Debug" output, i.e., stores to the Debug 66*4882a593Smuzhiyun object while interpreting AML: 67*4882a593Smuzhiyun acpi.debug_layer=0xffffffff acpi.debug_level=0x2 68*4882a593Smuzhiyun Enable all messages related to ACPI hardware: 69*4882a593Smuzhiyun acpi.debug_layer=0x2 acpi.debug_level=0xffffffff 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun Some values produce so much output that the system is 72*4882a593Smuzhiyun unusable. The "log_buf_len" parameter may be useful 73*4882a593Smuzhiyun if you need to capture more output. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun acpi_enforce_resources= [ACPI] 76*4882a593Smuzhiyun { strict | lax | no } 77*4882a593Smuzhiyun Check for resource conflicts between native drivers 78*4882a593Smuzhiyun and ACPI OperationRegions (SystemIO and SystemMemory 79*4882a593Smuzhiyun only). IO ports and memory declared in ACPI might be 80*4882a593Smuzhiyun used by the ACPI subsystem in arbitrary AML code and 81*4882a593Smuzhiyun can interfere with legacy drivers. 82*4882a593Smuzhiyun strict (default): access to resources claimed by ACPI 83*4882a593Smuzhiyun is denied; legacy drivers trying to access reserved 84*4882a593Smuzhiyun resources will fail to bind to device using them. 85*4882a593Smuzhiyun lax: access to resources claimed by ACPI is allowed; 86*4882a593Smuzhiyun legacy drivers trying to access reserved resources 87*4882a593Smuzhiyun will bind successfully but a warning message is logged. 88*4882a593Smuzhiyun no: ACPI OperationRegions are not marked as reserved, 89*4882a593Smuzhiyun no further checks are performed. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun acpi_force_table_verification [HW,ACPI] 92*4882a593Smuzhiyun Enable table checksum verification during early stage. 93*4882a593Smuzhiyun By default, this is disabled due to x86 early mapping 94*4882a593Smuzhiyun size limitation. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun acpi_irq_balance [HW,ACPI] 97*4882a593Smuzhiyun ACPI will balance active IRQs 98*4882a593Smuzhiyun default in APIC mode 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun acpi_irq_nobalance [HW,ACPI] 101*4882a593Smuzhiyun ACPI will not move active IRQs (default) 102*4882a593Smuzhiyun default in PIC mode 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA 105*4882a593Smuzhiyun Format: <irq>,<irq>... 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for 108*4882a593Smuzhiyun use by PCI 109*4882a593Smuzhiyun Format: <irq>,<irq>... 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun acpi_mask_gpe= [HW,ACPI] 112*4882a593Smuzhiyun Due to the existence of _Lxx/_Exx, some GPEs triggered 113*4882a593Smuzhiyun by unsupported hardware/firmware features can result in 114*4882a593Smuzhiyun GPE floodings that cannot be automatically disabled by 115*4882a593Smuzhiyun the GPE dispatcher. 116*4882a593Smuzhiyun This facility can be used to prevent such uncontrolled 117*4882a593Smuzhiyun GPE floodings. 118*4882a593Smuzhiyun Format: <byte> 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun acpi_no_auto_serialize [HW,ACPI] 121*4882a593Smuzhiyun Disable auto-serialization of AML methods 122*4882a593Smuzhiyun AML control methods that contain the opcodes to create 123*4882a593Smuzhiyun named objects will be marked as "Serialized" by the 124*4882a593Smuzhiyun auto-serialization feature. 125*4882a593Smuzhiyun This feature is enabled by default. 126*4882a593Smuzhiyun This option allows to turn off the feature. 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun acpi_no_memhotplug [ACPI] Disable memory hotplug. Useful for kdump 129*4882a593Smuzhiyun kernels. 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun acpi_no_static_ssdt [HW,ACPI] 132*4882a593Smuzhiyun Disable installation of static SSDTs at early boot time 133*4882a593Smuzhiyun By default, SSDTs contained in the RSDT/XSDT will be 134*4882a593Smuzhiyun installed automatically and they will appear under 135*4882a593Smuzhiyun /sys/firmware/acpi/tables. 136*4882a593Smuzhiyun This option turns off this feature. 137*4882a593Smuzhiyun Note that specifying this option does not affect 138*4882a593Smuzhiyun dynamic table installation which will install SSDT 139*4882a593Smuzhiyun tables to /sys/firmware/acpi/tables/dynamic. 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun acpi_no_watchdog [HW,ACPI,WDT] 142*4882a593Smuzhiyun Ignore the ACPI-based watchdog interface (WDAT) and let 143*4882a593Smuzhiyun a native driver control the watchdog device instead. 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun acpi_rsdp= [ACPI,EFI,KEXEC] 146*4882a593Smuzhiyun Pass the RSDP address to the kernel, mostly used 147*4882a593Smuzhiyun on machines running EFI runtime service to boot the 148*4882a593Smuzhiyun second kernel for kdump. 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS 151*4882a593Smuzhiyun Format: To spoof as Windows 98: ="Microsoft Windows" 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun acpi_rev_override [ACPI] Override the _REV object to return 5 (instead 154*4882a593Smuzhiyun of 2 which is mandated by ACPI 6) as the supported ACPI 155*4882a593Smuzhiyun specification revision (when using this switch, it may 156*4882a593Smuzhiyun be necessary to carry out a cold reboot _twice_ in a 157*4882a593Smuzhiyun row to make it take effect on the platform firmware). 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun acpi_osi= [HW,ACPI] Modify list of supported OS interface strings 160*4882a593Smuzhiyun acpi_osi="string1" # add string1 161*4882a593Smuzhiyun acpi_osi="!string2" # remove string2 162*4882a593Smuzhiyun acpi_osi=!* # remove all strings 163*4882a593Smuzhiyun acpi_osi=! # disable all built-in OS vendor 164*4882a593Smuzhiyun strings 165*4882a593Smuzhiyun acpi_osi=!! # enable all built-in OS vendor 166*4882a593Smuzhiyun strings 167*4882a593Smuzhiyun acpi_osi= # disable all strings 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun 'acpi_osi=!' can be used in combination with single or 170*4882a593Smuzhiyun multiple 'acpi_osi="string1"' to support specific OS 171*4882a593Smuzhiyun vendor string(s). Note that such command can only 172*4882a593Smuzhiyun affect the default state of the OS vendor strings, thus 173*4882a593Smuzhiyun it cannot affect the default state of the feature group 174*4882a593Smuzhiyun strings and the current state of the OS vendor strings, 175*4882a593Smuzhiyun specifying it multiple times through kernel command line 176*4882a593Smuzhiyun is meaningless. This command is useful when one do not 177*4882a593Smuzhiyun care about the state of the feature group strings which 178*4882a593Smuzhiyun should be controlled by the OSPM. 179*4882a593Smuzhiyun Examples: 180*4882a593Smuzhiyun 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent 181*4882a593Smuzhiyun to 'acpi_osi="Windows 2000" acpi_osi=!', they all 182*4882a593Smuzhiyun can make '_OSI("Windows 2000")' TRUE. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun 'acpi_osi=' cannot be used in combination with other 185*4882a593Smuzhiyun 'acpi_osi=' command lines, the _OSI method will not 186*4882a593Smuzhiyun exist in the ACPI namespace. NOTE that such command can 187*4882a593Smuzhiyun only affect the _OSI support state, thus specifying it 188*4882a593Smuzhiyun multiple times through kernel command line is also 189*4882a593Smuzhiyun meaningless. 190*4882a593Smuzhiyun Examples: 191*4882a593Smuzhiyun 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)' 192*4882a593Smuzhiyun FALSE. 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun 'acpi_osi=!*' can be used in combination with single or 195*4882a593Smuzhiyun multiple 'acpi_osi="string1"' to support specific 196*4882a593Smuzhiyun string(s). Note that such command can affect the 197*4882a593Smuzhiyun current state of both the OS vendor strings and the 198*4882a593Smuzhiyun feature group strings, thus specifying it multiple times 199*4882a593Smuzhiyun through kernel command line is meaningful. But it may 200*4882a593Smuzhiyun still not able to affect the final state of a string if 201*4882a593Smuzhiyun there are quirks related to this string. This command 202*4882a593Smuzhiyun is useful when one want to control the state of the 203*4882a593Smuzhiyun feature group strings to debug BIOS issues related to 204*4882a593Smuzhiyun the OSPM features. 205*4882a593Smuzhiyun Examples: 206*4882a593Smuzhiyun 1. 'acpi_osi="Module Device" acpi_osi=!*' can make 207*4882a593Smuzhiyun '_OSI("Module Device")' FALSE. 208*4882a593Smuzhiyun 2. 'acpi_osi=!* acpi_osi="Module Device"' can make 209*4882a593Smuzhiyun '_OSI("Module Device")' TRUE. 210*4882a593Smuzhiyun 3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is 211*4882a593Smuzhiyun equivalent to 212*4882a593Smuzhiyun 'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"' 213*4882a593Smuzhiyun and 214*4882a593Smuzhiyun 'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!', 215*4882a593Smuzhiyun they all will make '_OSI("Windows 2000")' TRUE. 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun acpi_pm_good [X86] 218*4882a593Smuzhiyun Override the pmtimer bug detection: force the kernel 219*4882a593Smuzhiyun to assume that this machine's pmtimer latches its value 220*4882a593Smuzhiyun and always returns good values. 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode 223*4882a593Smuzhiyun Format: { level | edge | high | low } 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun acpi_skip_timer_override [HW,ACPI] 226*4882a593Smuzhiyun Recognize and ignore IRQ0/pin2 Interrupt Override. 227*4882a593Smuzhiyun For broken nForce2 BIOS resulting in XT-PIC timer. 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun acpi_sleep= [HW,ACPI] Sleep options 230*4882a593Smuzhiyun Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, 231*4882a593Smuzhiyun old_ordering, nonvs, sci_force_enable, nobl } 232*4882a593Smuzhiyun See Documentation/power/video.rst for information on 233*4882a593Smuzhiyun s3_bios and s3_mode. 234*4882a593Smuzhiyun s3_beep is for debugging; it makes the PC's speaker beep 235*4882a593Smuzhiyun as soon as the kernel's real-mode entry point is called. 236*4882a593Smuzhiyun s4_nohwsig prevents ACPI hardware signature from being 237*4882a593Smuzhiyun used during resume from hibernation. 238*4882a593Smuzhiyun old_ordering causes the ACPI 1.0 ordering of the _PTS 239*4882a593Smuzhiyun control method, with respect to putting devices into 240*4882a593Smuzhiyun low power states, to be enforced (the ACPI 2.0 ordering 241*4882a593Smuzhiyun of _PTS is used by default). 242*4882a593Smuzhiyun nonvs prevents the kernel from saving/restoring the 243*4882a593Smuzhiyun ACPI NVS memory during suspend/hibernation and resume. 244*4882a593Smuzhiyun sci_force_enable causes the kernel to set SCI_EN directly 245*4882a593Smuzhiyun on resume from S1/S3 (which is against the ACPI spec, 246*4882a593Smuzhiyun but some broken systems don't work without it). 247*4882a593Smuzhiyun nobl causes the internal blacklist of systems known to 248*4882a593Smuzhiyun behave incorrectly in some ways with respect to system 249*4882a593Smuzhiyun suspend and resume to be ignored (use wisely). 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun acpi_use_timer_override [HW,ACPI] 252*4882a593Smuzhiyun Use timer override. For some broken Nvidia NF5 boards 253*4882a593Smuzhiyun that require a timer override, but don't have HPET 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun add_efi_memmap [EFI; X86] Include EFI memory map in 256*4882a593Smuzhiyun kernel's map of available physical RAM. 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun agp= [AGP] 259*4882a593Smuzhiyun { off | try_unsupported } 260*4882a593Smuzhiyun off: disable AGP support 261*4882a593Smuzhiyun try_unsupported: try to drive unsupported chipsets 262*4882a593Smuzhiyun (may crash computer or cause data corruption) 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun ALSA [HW,ALSA] 265*4882a593Smuzhiyun See Documentation/sound/alsa-configuration.rst 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun alignment= [KNL,ARM] 268*4882a593Smuzhiyun Allow the default userspace alignment fault handler 269*4882a593Smuzhiyun behaviour to be specified. Bit 0 enables warnings, 270*4882a593Smuzhiyun bit 1 enables fixups, and bit 2 sends a segfault. 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun align_va_addr= [X86-64] 273*4882a593Smuzhiyun Align virtual addresses by clearing slice [14:12] when 274*4882a593Smuzhiyun allocating a VMA at process creation time. This option 275*4882a593Smuzhiyun gives you up to 3% performance improvement on AMD F15h 276*4882a593Smuzhiyun machines (where it is enabled by default) for a 277*4882a593Smuzhiyun CPU-intensive style benchmark, and it can vary highly in 278*4882a593Smuzhiyun a microbenchmark depending on workload and compiler. 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun 32: only for 32-bit processes 281*4882a593Smuzhiyun 64: only for 64-bit processes 282*4882a593Smuzhiyun on: enable for both 32- and 64-bit processes 283*4882a593Smuzhiyun off: disable for both 32- and 64-bit processes 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun alloc_snapshot [FTRACE] 286*4882a593Smuzhiyun Allocate the ftrace snapshot buffer on boot up when the 287*4882a593Smuzhiyun main buffer is allocated. This is handy if debugging 288*4882a593Smuzhiyun and you need to use tracing_snapshot() on boot up, and 289*4882a593Smuzhiyun do not want to use tracing_snapshot_alloc() as it needs 290*4882a593Smuzhiyun to be done where GFP_KERNEL allocations are allowed. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun allow_file_spec_access 293*4882a593Smuzhiyun Allow speculative faults on file backed pages. 294*4882a593Smuzhiyun Speculative faults are enabled only for those vm_ops 295*4882a593Smuzhiyun that implement and return true for allow_speculation 296*4882a593Smuzhiyun callback. 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun allow_mismatched_32bit_el0 [ARM64] 299*4882a593Smuzhiyun Allow execve() of 32-bit applications and setting of the 300*4882a593Smuzhiyun PER_LINUX32 personality on systems where only a strict 301*4882a593Smuzhiyun subset of the CPUs support 32-bit EL0. When this 302*4882a593Smuzhiyun parameter is present, the set of CPUs supporting 32-bit 303*4882a593Smuzhiyun EL0 is indicated by /sys/devices/system/cpu/aarch32_el0 304*4882a593Smuzhiyun and hot-unplug operations may be restricted. 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun amd_iommu= [HW,X86-64] 307*4882a593Smuzhiyun Pass parameters to the AMD IOMMU driver in the system. 308*4882a593Smuzhiyun Possible values are: 309*4882a593Smuzhiyun fullflush - enable flushing of IO/TLB entries when 310*4882a593Smuzhiyun they are unmapped. Otherwise they are 311*4882a593Smuzhiyun flushed before they will be reused, which 312*4882a593Smuzhiyun is a lot of faster 313*4882a593Smuzhiyun off - do not initialize any AMD IOMMU found in 314*4882a593Smuzhiyun the system 315*4882a593Smuzhiyun force_isolation - Force device isolation for all 316*4882a593Smuzhiyun devices. The IOMMU driver is not 317*4882a593Smuzhiyun allowed anymore to lift isolation 318*4882a593Smuzhiyun requirements as needed. This option 319*4882a593Smuzhiyun does not override iommu=pt 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun amd_iommu_dump= [HW,X86-64] 322*4882a593Smuzhiyun Enable AMD IOMMU driver option to dump the ACPI table 323*4882a593Smuzhiyun for AMD IOMMU. With this option enabled, AMD IOMMU 324*4882a593Smuzhiyun driver will print ACPI tables for AMD IOMMU during 325*4882a593Smuzhiyun IOMMU initialization. 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun amd_iommu_intr= [HW,X86-64] 328*4882a593Smuzhiyun Specifies one of the following AMD IOMMU interrupt 329*4882a593Smuzhiyun remapping modes: 330*4882a593Smuzhiyun legacy - Use legacy interrupt remapping mode. 331*4882a593Smuzhiyun vapic - Use virtual APIC mode, which allows IOMMU 332*4882a593Smuzhiyun to inject interrupts directly into guest. 333*4882a593Smuzhiyun This mode requires kvm-amd.avic=1. 334*4882a593Smuzhiyun (Default when IOMMU HW support is present.) 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun amijoy.map= [HW,JOY] Amiga joystick support 337*4882a593Smuzhiyun Map of devices attached to JOY0DAT and JOY1DAT 338*4882a593Smuzhiyun Format: <a>,<b> 339*4882a593Smuzhiyun See also Documentation/input/joydev/joystick.rst 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun analog.map= [HW,JOY] Analog joystick and gamepad support 342*4882a593Smuzhiyun Specifies type or capabilities of an analog joystick 343*4882a593Smuzhiyun connected to one of 16 gameports 344*4882a593Smuzhiyun Format: <type1>,<type2>,..<type16> 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun apc= [HW,SPARC] 347*4882a593Smuzhiyun Power management functions (SPARCstation-4/5 + deriv.) 348*4882a593Smuzhiyun Format: noidle 349*4882a593Smuzhiyun Disable APC CPU standby support. SPARCstation-Fox does 350*4882a593Smuzhiyun not play well with APC CPU idle - disable it if you have 351*4882a593Smuzhiyun APC and your system crashes randomly. 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun apic= [APIC,X86] Advanced Programmable Interrupt Controller 354*4882a593Smuzhiyun Change the output verbosity while booting 355*4882a593Smuzhiyun Format: { quiet (default) | verbose | debug } 356*4882a593Smuzhiyun Change the amount of debugging information output 357*4882a593Smuzhiyun when initialising the APIC and IO-APIC components. 358*4882a593Smuzhiyun For X86-32, this can also be used to specify an APIC 359*4882a593Smuzhiyun driver name. 360*4882a593Smuzhiyun Format: apic=driver_name 361*4882a593Smuzhiyun Examples: apic=bigsmp 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun apic_extnmi= [APIC,X86] External NMI delivery setting 364*4882a593Smuzhiyun Format: { bsp (default) | all | none } 365*4882a593Smuzhiyun bsp: External NMI is delivered only to CPU 0 366*4882a593Smuzhiyun all: External NMIs are broadcast to all CPUs as a 367*4882a593Smuzhiyun backup of CPU 0 368*4882a593Smuzhiyun none: External NMI is masked for all CPUs. This is 369*4882a593Smuzhiyun useful so that a dump capture kernel won't be 370*4882a593Smuzhiyun shot down by NMI 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun autoconf= [IPV6] 373*4882a593Smuzhiyun See Documentation/networking/ipv6.rst. 374*4882a593Smuzhiyun 375*4882a593Smuzhiyun show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller 376*4882a593Smuzhiyun Limit apic dumping. The parameter defines the maximal 377*4882a593Smuzhiyun number of local apics being dumped. Also it is possible 378*4882a593Smuzhiyun to set it to "all" by meaning -- no limit here. 379*4882a593Smuzhiyun Format: { 1 (default) | 2 | ... | all }. 380*4882a593Smuzhiyun The parameter valid if only apic=debug or 381*4882a593Smuzhiyun apic=verbose is specified. 382*4882a593Smuzhiyun Example: apic=debug show_lapic=all 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun apm= [APM] Advanced Power Management 385*4882a593Smuzhiyun See header of arch/x86/kernel/apm_32.c. 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards 388*4882a593Smuzhiyun Format: <io>,<irq>,<nodeID> 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun arm64.nobti [ARM64] Unconditionally disable Branch Target 391*4882a593Smuzhiyun Identification support 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun arm64.nopauth [ARM64] Unconditionally disable Pointer Authentication 394*4882a593Smuzhiyun support 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun arm64.nomte [ARM64] Unconditionally disable Memory Tagging Extension 397*4882a593Smuzhiyun support 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun ataflop= [HW,M68k] 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun atarimouse= [HW,MOUSE] Atari Mouse 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess, 404*4882a593Smuzhiyun EzKey and similar keyboards 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun atkbd.reset= [HW] Reset keyboard during initialization 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun atkbd.set= [HW] Select keyboard code set 409*4882a593Smuzhiyun Format: <int> (2 = AT (default), 3 = PS/2) 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar 412*4882a593Smuzhiyun keyboards 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun atkbd.softraw= [HW] Choose between synthetic and real raw mode 415*4882a593Smuzhiyun Format: <bool> (0 = real, 1 = synthetic (default)) 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun atkbd.softrepeat= [HW] 418*4882a593Smuzhiyun Use software keyboard repeat 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun audit= [KNL] Enable the audit sub-system 421*4882a593Smuzhiyun Format: { "0" | "1" | "off" | "on" } 422*4882a593Smuzhiyun 0 | off - kernel audit is disabled and can not be 423*4882a593Smuzhiyun enabled until the next reboot 424*4882a593Smuzhiyun unset - kernel audit is initialized but disabled and 425*4882a593Smuzhiyun will be fully enabled by the userspace auditd. 426*4882a593Smuzhiyun 1 | on - kernel audit is initialized and partially 427*4882a593Smuzhiyun enabled, storing at most audit_backlog_limit 428*4882a593Smuzhiyun messages in RAM until it is fully enabled by the 429*4882a593Smuzhiyun userspace auditd. 430*4882a593Smuzhiyun Default: unset 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun audit_backlog_limit= [KNL] Set the audit queue size limit. 433*4882a593Smuzhiyun Format: <int> (must be >=0) 434*4882a593Smuzhiyun Default: 64 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun bau= [X86_UV] Enable the BAU on SGI UV. The default 437*4882a593Smuzhiyun behavior is to disable the BAU (i.e. bau=0). 438*4882a593Smuzhiyun Format: { "0" | "1" } 439*4882a593Smuzhiyun 0 - Disable the BAU. 440*4882a593Smuzhiyun 1 - Enable the BAU. 441*4882a593Smuzhiyun unset - Disable the BAU. 442*4882a593Smuzhiyun 443*4882a593Smuzhiyun baycom_epp= [HW,AX25] 444*4882a593Smuzhiyun Format: <io>,<mode> 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem 447*4882a593Smuzhiyun Format: <io>,<mode> 448*4882a593Smuzhiyun See header of drivers/net/hamradio/baycom_par.c. 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun baycom_ser_fdx= [HW,AX25] 451*4882a593Smuzhiyun BayCom Serial Port AX.25 Modem (Full Duplex Mode) 452*4882a593Smuzhiyun Format: <io>,<irq>,<mode>[,<baud>] 453*4882a593Smuzhiyun See header of drivers/net/hamradio/baycom_ser_fdx.c. 454*4882a593Smuzhiyun 455*4882a593Smuzhiyun baycom_ser_hdx= [HW,AX25] 456*4882a593Smuzhiyun BayCom Serial Port AX.25 Modem (Half Duplex Mode) 457*4882a593Smuzhiyun Format: <io>,<irq>,<mode> 458*4882a593Smuzhiyun See header of drivers/net/hamradio/baycom_ser_hdx.c. 459*4882a593Smuzhiyun 460*4882a593Smuzhiyun blkdevparts= Manual partition parsing of block device(s) for 461*4882a593Smuzhiyun embedded devices based on command line input. 462*4882a593Smuzhiyun See Documentation/block/cmdline-partition.rst 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun boot_delay= Milliseconds to delay each printk during boot. 465*4882a593Smuzhiyun Values larger than 10 seconds (10000) are changed to 466*4882a593Smuzhiyun no delay (0). 467*4882a593Smuzhiyun Format: integer 468*4882a593Smuzhiyun 469*4882a593Smuzhiyun bootconfig [KNL] 470*4882a593Smuzhiyun Extended command line options can be added to an initrd 471*4882a593Smuzhiyun and this will cause the kernel to look for it. 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun See Documentation/admin-guide/bootconfig.rst 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun bert_disable [ACPI] 476*4882a593Smuzhiyun Disable BERT OS support on buggy BIOSes. 477*4882a593Smuzhiyun 478*4882a593Smuzhiyun bgrt_disable [ACPI][X86] 479*4882a593Smuzhiyun Disable BGRT to avoid flickering OEM logo. 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards) 482*4882a593Smuzhiyun bttv.radio= Most important insmod options are available as 483*4882a593Smuzhiyun kernel args too. 484*4882a593Smuzhiyun bttv.pll= See Documentation/admin-guide/media/bttv.rst 485*4882a593Smuzhiyun bttv.tuner= 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun bulk_remove=off [PPC] This parameter disables the use of the pSeries 488*4882a593Smuzhiyun firmware feature for flushing multiple hpte entries 489*4882a593Smuzhiyun at a time. 490*4882a593Smuzhiyun 491*4882a593Smuzhiyun c101= [NET] Moxa C101 synchronous serial card 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection. 494*4882a593Smuzhiyun Sometimes CPU hardware bugs make them report the cache 495*4882a593Smuzhiyun size incorrectly. The kernel will attempt work arounds 496*4882a593Smuzhiyun to fix known problems, but for some CPUs it is not 497*4882a593Smuzhiyun possible to determine what the correct size should be. 498*4882a593Smuzhiyun This option provides an override for these situations. 499*4882a593Smuzhiyun 500*4882a593Smuzhiyun carrier_timeout= 501*4882a593Smuzhiyun [NET] Specifies amount of time (in seconds) that 502*4882a593Smuzhiyun the kernel should wait for a network carrier. By default 503*4882a593Smuzhiyun it waits 120 seconds. 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun ca_keys= [KEYS] This parameter identifies a specific key(s) on 506*4882a593Smuzhiyun the system trusted keyring to be used for certificate 507*4882a593Smuzhiyun trust validation. 508*4882a593Smuzhiyun format: { id:<keyid> | builtin } 509*4882a593Smuzhiyun 510*4882a593Smuzhiyun cca= [MIPS] Override the kernel pages' cache coherency 511*4882a593Smuzhiyun algorithm. Accepted values range from 0 to 7 512*4882a593Smuzhiyun inclusive. See arch/mips/include/asm/pgtable-bits.h 513*4882a593Smuzhiyun for platform specific values (SB1, Loongson3 and 514*4882a593Smuzhiyun others). 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun ccw_timeout_log [S390] 517*4882a593Smuzhiyun See Documentation/s390/common_io.rst for details. 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun cgroup_disable= [KNL] Disable a particular controller or optional feature 520*4882a593Smuzhiyun Format: {name of the controller(s) or feature(s) to disable} 521*4882a593Smuzhiyun The effects of cgroup_disable=foo are: 522*4882a593Smuzhiyun - foo isn't auto-mounted if you mount all cgroups in 523*4882a593Smuzhiyun a single hierarchy 524*4882a593Smuzhiyun - foo isn't visible as an individually mountable 525*4882a593Smuzhiyun subsystem 526*4882a593Smuzhiyun - if foo is an optional feature then the feature is 527*4882a593Smuzhiyun disabled and corresponding cgroup files are not 528*4882a593Smuzhiyun created 529*4882a593Smuzhiyun {Currently only "memory" controller deal with this and 530*4882a593Smuzhiyun cut the overhead, others just disable the usage. So 531*4882a593Smuzhiyun only cgroup_disable=memory is actually worthy} 532*4882a593Smuzhiyun Specifying "pressure" disables per-cgroup pressure 533*4882a593Smuzhiyun stall information accounting feature 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun cgroup_no_v1= [KNL] Disable cgroup controllers and named hierarchies in v1 536*4882a593Smuzhiyun Format: { { controller | "all" | "named" } 537*4882a593Smuzhiyun [,{ controller | "all" | "named" }...] } 538*4882a593Smuzhiyun Like cgroup_disable, but only applies to cgroup v1; 539*4882a593Smuzhiyun the blacklisted controllers remain available in cgroup2. 540*4882a593Smuzhiyun "all" blacklists all controllers and "named" disables 541*4882a593Smuzhiyun named mounts. Specifying both "all" and "named" disables 542*4882a593Smuzhiyun all v1 hierarchies. 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun cgroup.memory= [KNL] Pass options to the cgroup memory controller. 545*4882a593Smuzhiyun Format: <string> 546*4882a593Smuzhiyun nosocket -- Disable socket memory accounting. 547*4882a593Smuzhiyun nokmem -- Disable kernel memory accounting. 548*4882a593Smuzhiyun 549*4882a593Smuzhiyun checkreqprot [SELINUX] Set initial checkreqprot flag value. 550*4882a593Smuzhiyun Format: { "0" | "1" } 551*4882a593Smuzhiyun See security/selinux/Kconfig help text. 552*4882a593Smuzhiyun 0 -- check protection applied by kernel (includes 553*4882a593Smuzhiyun any implied execute protection). 554*4882a593Smuzhiyun 1 -- check protection requested by application. 555*4882a593Smuzhiyun Default value is set via a kernel config option. 556*4882a593Smuzhiyun Value can be changed at runtime via 557*4882a593Smuzhiyun /sys/fs/selinux/checkreqprot. 558*4882a593Smuzhiyun Setting checkreqprot to 1 is deprecated. 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun cio_ignore= [S390] 561*4882a593Smuzhiyun See Documentation/s390/common_io.rst for details. 562*4882a593Smuzhiyun clk_ignore_unused 563*4882a593Smuzhiyun [CLK] 564*4882a593Smuzhiyun Prevents the clock framework from automatically gating 565*4882a593Smuzhiyun clocks that have not been explicitly enabled by a Linux 566*4882a593Smuzhiyun device driver but are enabled in hardware at reset or 567*4882a593Smuzhiyun by the bootloader/firmware. Note that this does not 568*4882a593Smuzhiyun force such clocks to be always-on nor does it reserve 569*4882a593Smuzhiyun those clocks in any way. This parameter is useful for 570*4882a593Smuzhiyun debug and development, but should not be needed on a 571*4882a593Smuzhiyun platform with proper driver support. For more 572*4882a593Smuzhiyun information, see Documentation/driver-api/clk.rst. 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun clock= [BUGS=X86-32, HW] gettimeofday clocksource override. 575*4882a593Smuzhiyun [Deprecated] 576*4882a593Smuzhiyun Forces specified clocksource (if available) to be used 577*4882a593Smuzhiyun when calculating gettimeofday(). If specified 578*4882a593Smuzhiyun clocksource is not available, it defaults to PIT. 579*4882a593Smuzhiyun Format: { pit | tsc | cyclone | pmtmr } 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun clocksource= Override the default clocksource 582*4882a593Smuzhiyun Format: <string> 583*4882a593Smuzhiyun Override the default clocksource and use the clocksource 584*4882a593Smuzhiyun with the name specified. 585*4882a593Smuzhiyun Some clocksource names to choose from, depending on 586*4882a593Smuzhiyun the platform: 587*4882a593Smuzhiyun [all] jiffies (this is the base, fallback clocksource) 588*4882a593Smuzhiyun [ACPI] acpi_pm 589*4882a593Smuzhiyun [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, 590*4882a593Smuzhiyun pxa_timer,timer3,32k_counter,timer0_1 591*4882a593Smuzhiyun [X86-32] pit,hpet,tsc; 592*4882a593Smuzhiyun scx200_hrt on Geode; cyclone on IBM x440 593*4882a593Smuzhiyun [MIPS] MIPS 594*4882a593Smuzhiyun [PARISC] cr16 595*4882a593Smuzhiyun [S390] tod 596*4882a593Smuzhiyun [SH] SuperH 597*4882a593Smuzhiyun [SPARC64] tick 598*4882a593Smuzhiyun [X86-64] hpet,tsc 599*4882a593Smuzhiyun 600*4882a593Smuzhiyun clocksource.arm_arch_timer.evtstrm= 601*4882a593Smuzhiyun [ARM,ARM64] 602*4882a593Smuzhiyun Format: <bool> 603*4882a593Smuzhiyun Enable/disable the eventstream feature of the ARM 604*4882a593Smuzhiyun architected timer so that code using WFE-based polling 605*4882a593Smuzhiyun loops can be debugged more effectively on production 606*4882a593Smuzhiyun systems. 607*4882a593Smuzhiyun 608*4882a593Smuzhiyun clocksource.max_cswd_read_retries= [KNL] 609*4882a593Smuzhiyun Number of clocksource_watchdog() retries due to 610*4882a593Smuzhiyun external delays before the clock will be marked 611*4882a593Smuzhiyun unstable. Defaults to three retries, that is, 612*4882a593Smuzhiyun four attempts to read the clock under test. 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun clearcpuid=BITNUM[,BITNUM...] [X86] 615*4882a593Smuzhiyun Disable CPUID feature X for the kernel. See 616*4882a593Smuzhiyun arch/x86/include/asm/cpufeatures.h for the valid bit 617*4882a593Smuzhiyun numbers. Note the Linux specific bits are not necessarily 618*4882a593Smuzhiyun stable over kernel options, but the vendor specific 619*4882a593Smuzhiyun ones should be. 620*4882a593Smuzhiyun Also note that user programs calling CPUID directly 621*4882a593Smuzhiyun or using the feature without checking anything 622*4882a593Smuzhiyun will still see it. This just prevents it from 623*4882a593Smuzhiyun being used by the kernel or shown in /proc/cpuinfo. 624*4882a593Smuzhiyun Also note the kernel might malfunction if you disable 625*4882a593Smuzhiyun some critical bits. 626*4882a593Smuzhiyun 627*4882a593Smuzhiyun cma=nn[MG]@[start[MG][-end[MG]]] 628*4882a593Smuzhiyun [KNL,CMA] 629*4882a593Smuzhiyun Sets the size of kernel global memory area for 630*4882a593Smuzhiyun contiguous memory allocations and optionally the 631*4882a593Smuzhiyun placement constraint by the physical address range of 632*4882a593Smuzhiyun memory allocations. A value of 0 disables CMA 633*4882a593Smuzhiyun altogether. For more information, see 634*4882a593Smuzhiyun kernel/dma/contiguous.c 635*4882a593Smuzhiyun 636*4882a593Smuzhiyun cma_pernuma=nn[MG] 637*4882a593Smuzhiyun [ARM64,KNL] 638*4882a593Smuzhiyun Sets the size of kernel per-numa memory area for 639*4882a593Smuzhiyun contiguous memory allocations. A value of 0 disables 640*4882a593Smuzhiyun per-numa CMA altogether. And If this option is not 641*4882a593Smuzhiyun specificed, the default value is 0. 642*4882a593Smuzhiyun With per-numa CMA enabled, DMA users on node nid will 643*4882a593Smuzhiyun first try to allocate buffer from the pernuma area 644*4882a593Smuzhiyun which is located in node nid, if the allocation fails, 645*4882a593Smuzhiyun they will fallback to the global default memory area. 646*4882a593Smuzhiyun 647*4882a593Smuzhiyun cmo_free_hint= [PPC] Format: { yes | no } 648*4882a593Smuzhiyun Specify whether pages are marked as being inactive 649*4882a593Smuzhiyun when they are freed. This is used in CMO environments 650*4882a593Smuzhiyun to determine OS memory pressure for page stealing by 651*4882a593Smuzhiyun a hypervisor. 652*4882a593Smuzhiyun Default: yes 653*4882a593Smuzhiyun 654*4882a593Smuzhiyun coherent_pool=nn[KMG] [ARM,KNL] 655*4882a593Smuzhiyun Sets the size of memory pool for coherent, atomic dma 656*4882a593Smuzhiyun allocations, by default set to 256K. 657*4882a593Smuzhiyun 658*4882a593Smuzhiyun com20020= [HW,NET] ARCnet - COM20020 chipset 659*4882a593Smuzhiyun Format: 660*4882a593Smuzhiyun <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]] 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers) 663*4882a593Smuzhiyun Format: <io>[,<irq>] 664*4882a593Smuzhiyun 665*4882a593Smuzhiyun com90xx= [HW,NET] 666*4882a593Smuzhiyun ARCnet - COM90xx chipset (memory-mapped buffers) 667*4882a593Smuzhiyun Format: <io>[,<irq>[,<memstart>]] 668*4882a593Smuzhiyun 669*4882a593Smuzhiyun condev= [HW,S390] console device 670*4882a593Smuzhiyun conmode= 671*4882a593Smuzhiyun 672*4882a593Smuzhiyun console= [KNL] Output console device and options. 673*4882a593Smuzhiyun 674*4882a593Smuzhiyun tty<n> Use the virtual console device <n>. 675*4882a593Smuzhiyun 676*4882a593Smuzhiyun ttyS<n>[,options] 677*4882a593Smuzhiyun ttyUSB0[,options] 678*4882a593Smuzhiyun Use the specified serial port. The options are of 679*4882a593Smuzhiyun the form "bbbbpnf", where "bbbb" is the baud rate, 680*4882a593Smuzhiyun "p" is parity ("n", "o", or "e"), "n" is number of 681*4882a593Smuzhiyun bits, and "f" is flow control ("r" for RTS or 682*4882a593Smuzhiyun omit it). Default is "9600n8". 683*4882a593Smuzhiyun 684*4882a593Smuzhiyun See Documentation/admin-guide/serial-console.rst for more 685*4882a593Smuzhiyun information. See 686*4882a593Smuzhiyun Documentation/networking/netconsole.rst for an 687*4882a593Smuzhiyun alternative. 688*4882a593Smuzhiyun 689*4882a593Smuzhiyun uart[8250],io,<addr>[,options] 690*4882a593Smuzhiyun uart[8250],mmio,<addr>[,options] 691*4882a593Smuzhiyun uart[8250],mmio16,<addr>[,options] 692*4882a593Smuzhiyun uart[8250],mmio32,<addr>[,options] 693*4882a593Smuzhiyun uart[8250],0x<addr>[,options] 694*4882a593Smuzhiyun Start an early, polled-mode console on the 8250/16550 695*4882a593Smuzhiyun UART at the specified I/O port or MMIO address, 696*4882a593Smuzhiyun switching to the matching ttyS device later. 697*4882a593Smuzhiyun MMIO inter-register address stride is either 8-bit 698*4882a593Smuzhiyun (mmio), 16-bit (mmio16), or 32-bit (mmio32). 699*4882a593Smuzhiyun If none of [io|mmio|mmio16|mmio32], <addr> is assumed 700*4882a593Smuzhiyun to be equivalent to 'mmio'. 'options' are specified in 701*4882a593Smuzhiyun the same format described for ttyS above; if unspecified, 702*4882a593Smuzhiyun the h/w is not re-initialized. 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun hvc<n> Use the hypervisor console device <n>. This is for 705*4882a593Smuzhiyun both Xen and PowerPC hypervisors. 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun If the device connected to the port is not a TTY but a braille 708*4882a593Smuzhiyun device, prepend "brl," before the device type, for instance 709*4882a593Smuzhiyun console=brl,ttyS0 710*4882a593Smuzhiyun For now, only VisioBraille is supported. 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun console_msg_format= 713*4882a593Smuzhiyun [KNL] Change console messages format 714*4882a593Smuzhiyun default 715*4882a593Smuzhiyun By default we print messages on consoles in 716*4882a593Smuzhiyun "[time stamp] text\n" format (time stamp may not be 717*4882a593Smuzhiyun printed, depending on CONFIG_PRINTK_TIME or 718*4882a593Smuzhiyun `printk_time' param). 719*4882a593Smuzhiyun syslog 720*4882a593Smuzhiyun Switch to syslog format: "<%u>[time stamp] text\n" 721*4882a593Smuzhiyun IOW, each message will have a facility and loglevel 722*4882a593Smuzhiyun prefix. The format is similar to one used by syslog() 723*4882a593Smuzhiyun syscall, or to executing "dmesg -S --raw" or to reading 724*4882a593Smuzhiyun from /proc/kmsg. 725*4882a593Smuzhiyun 726*4882a593Smuzhiyun consoleblank= [KNL] The console blank (screen saver) timeout in 727*4882a593Smuzhiyun seconds. A value of 0 disables the blank timer. 728*4882a593Smuzhiyun Defaults to 0. 729*4882a593Smuzhiyun 730*4882a593Smuzhiyun coredump_filter= 731*4882a593Smuzhiyun [KNL] Change the default value for 732*4882a593Smuzhiyun /proc/<pid>/coredump_filter. 733*4882a593Smuzhiyun See also Documentation/filesystems/proc.rst. 734*4882a593Smuzhiyun 735*4882a593Smuzhiyun coresight_cpu_debug.enable 736*4882a593Smuzhiyun [ARM,ARM64] 737*4882a593Smuzhiyun Format: <bool> 738*4882a593Smuzhiyun Enable/disable the CPU sampling based debugging. 739*4882a593Smuzhiyun 0: default value, disable debugging 740*4882a593Smuzhiyun 1: enable debugging at boot time 741*4882a593Smuzhiyun 742*4882a593Smuzhiyun cpuidle.off=1 [CPU_IDLE] 743*4882a593Smuzhiyun disable the cpuidle sub-system 744*4882a593Smuzhiyun 745*4882a593Smuzhiyun cpuidle.governor= 746*4882a593Smuzhiyun [CPU_IDLE] Name of the cpuidle governor to use. 747*4882a593Smuzhiyun 748*4882a593Smuzhiyun cpufreq.off=1 [CPU_FREQ] 749*4882a593Smuzhiyun disable the cpufreq sub-system 750*4882a593Smuzhiyun 751*4882a593Smuzhiyun cpufreq.default_governor= 752*4882a593Smuzhiyun [CPU_FREQ] Name of the default cpufreq governor or 753*4882a593Smuzhiyun policy to use. This governor must be registered in the 754*4882a593Smuzhiyun kernel before the cpufreq driver probes. 755*4882a593Smuzhiyun 756*4882a593Smuzhiyun cpu_init_udelay=N 757*4882a593Smuzhiyun [X86] Delay for N microsec between assert and de-assert 758*4882a593Smuzhiyun of APIC INIT to start processors. This delay occurs 759*4882a593Smuzhiyun on every CPU online, such as boot, and resume from suspend. 760*4882a593Smuzhiyun Default: 10000 761*4882a593Smuzhiyun 762*4882a593Smuzhiyun cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver 763*4882a593Smuzhiyun Format: 764*4882a593Smuzhiyun <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] 765*4882a593Smuzhiyun 766*4882a593Smuzhiyun crashkernel=size[KMG][@offset[KMG]] 767*4882a593Smuzhiyun [KNL] Using kexec, Linux can switch to a 'crash kernel' 768*4882a593Smuzhiyun upon panic. This parameter reserves the physical 769*4882a593Smuzhiyun memory region [offset, offset + size] for that kernel 770*4882a593Smuzhiyun image. If '@offset' is omitted, then a suitable offset 771*4882a593Smuzhiyun is selected automatically. 772*4882a593Smuzhiyun [KNL, X86-64] Select a region under 4G first, and 773*4882a593Smuzhiyun fall back to reserve region above 4G when '@offset' 774*4882a593Smuzhiyun hasn't been specified. 775*4882a593Smuzhiyun See Documentation/admin-guide/kdump/kdump.rst for further details. 776*4882a593Smuzhiyun 777*4882a593Smuzhiyun crashkernel=range1:size1[,range2:size2,...][@offset] 778*4882a593Smuzhiyun [KNL] Same as above, but depends on the memory 779*4882a593Smuzhiyun in the running system. The syntax of range is 780*4882a593Smuzhiyun start-[end] where start and end are both 781*4882a593Smuzhiyun a memory unit (amount[KMG]). See also 782*4882a593Smuzhiyun Documentation/admin-guide/kdump/kdump.rst for an example. 783*4882a593Smuzhiyun 784*4882a593Smuzhiyun crashkernel=size[KMG],high 785*4882a593Smuzhiyun [KNL, X86-64] range could be above 4G. Allow kernel 786*4882a593Smuzhiyun to allocate physical memory region from top, so could 787*4882a593Smuzhiyun be above 4G if system have more than 4G ram installed. 788*4882a593Smuzhiyun Otherwise memory region will be allocated below 4G, if 789*4882a593Smuzhiyun available. 790*4882a593Smuzhiyun It will be ignored if crashkernel=X is specified. 791*4882a593Smuzhiyun crashkernel=size[KMG],low 792*4882a593Smuzhiyun [KNL, X86-64] range under 4G. When crashkernel=X,high 793*4882a593Smuzhiyun is passed, kernel could allocate physical memory region 794*4882a593Smuzhiyun above 4G, that cause second kernel crash on system 795*4882a593Smuzhiyun that require some amount of low memory, e.g. swiotlb 796*4882a593Smuzhiyun requires at least 64M+32K low memory, also enough extra 797*4882a593Smuzhiyun low memory is needed to make sure DMA buffers for 32-bit 798*4882a593Smuzhiyun devices won't run out. Kernel would try to allocate at 799*4882a593Smuzhiyun at least 256M below 4G automatically. 800*4882a593Smuzhiyun This one let user to specify own low range under 4G 801*4882a593Smuzhiyun for second kernel instead. 802*4882a593Smuzhiyun 0: to disable low allocation. 803*4882a593Smuzhiyun It will be ignored when crashkernel=X,high is not used 804*4882a593Smuzhiyun or memory reserved is below 4G. 805*4882a593Smuzhiyun 806*4882a593Smuzhiyun cryptomgr.notests 807*4882a593Smuzhiyun [KNL] Disable crypto self-tests 808*4882a593Smuzhiyun 809*4882a593Smuzhiyun cs89x0_dma= [HW,NET] 810*4882a593Smuzhiyun Format: <dma> 811*4882a593Smuzhiyun 812*4882a593Smuzhiyun cs89x0_media= [HW,NET] 813*4882a593Smuzhiyun Format: { rj45 | aui | bnc } 814*4882a593Smuzhiyun 815*4882a593Smuzhiyun dasd= [HW,NET] 816*4882a593Smuzhiyun See header of drivers/s390/block/dasd_devmap.c. 817*4882a593Smuzhiyun 818*4882a593Smuzhiyun db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port 819*4882a593Smuzhiyun (one device per port) 820*4882a593Smuzhiyun Format: <port#>,<type> 821*4882a593Smuzhiyun See also Documentation/input/devices/joystick-parport.rst 822*4882a593Smuzhiyun 823*4882a593Smuzhiyun ddebug_query= [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot 824*4882a593Smuzhiyun time. See 825*4882a593Smuzhiyun Documentation/admin-guide/dynamic-debug-howto.rst for 826*4882a593Smuzhiyun details. Deprecated, see dyndbg. 827*4882a593Smuzhiyun 828*4882a593Smuzhiyun debug [KNL] Enable kernel debugging (events log level). 829*4882a593Smuzhiyun 830*4882a593Smuzhiyun debug_boot_weak_hash 831*4882a593Smuzhiyun [KNL] Enable printing [hashed] pointers early in the 832*4882a593Smuzhiyun boot sequence. If enabled, we use a weak hash instead 833*4882a593Smuzhiyun of siphash to hash pointers. Use this option if you are 834*4882a593Smuzhiyun seeing instances of '(___ptrval___)') and need to see a 835*4882a593Smuzhiyun value (hashed pointer) instead. Cryptographically 836*4882a593Smuzhiyun insecure, please do not use on production kernels. 837*4882a593Smuzhiyun 838*4882a593Smuzhiyun debug_locks_verbose= 839*4882a593Smuzhiyun [KNL] verbose self-tests 840*4882a593Smuzhiyun Format=<0|1> 841*4882a593Smuzhiyun Print debugging info while doing the locking API 842*4882a593Smuzhiyun self-tests. 843*4882a593Smuzhiyun We default to 0 (no extra messages), setting it to 844*4882a593Smuzhiyun 1 will print _a lot_ more information - normally 845*4882a593Smuzhiyun only useful to kernel developers. 846*4882a593Smuzhiyun 847*4882a593Smuzhiyun debug_objects [KNL] Enable object debugging 848*4882a593Smuzhiyun 849*4882a593Smuzhiyun no_debug_objects 850*4882a593Smuzhiyun [KNL] Disable object debugging 851*4882a593Smuzhiyun 852*4882a593Smuzhiyun debug_guardpage_minorder= 853*4882a593Smuzhiyun [KNL] When CONFIG_DEBUG_PAGEALLOC is set, this 854*4882a593Smuzhiyun parameter allows control of the order of pages that will 855*4882a593Smuzhiyun be intentionally kept free (and hence protected) by the 856*4882a593Smuzhiyun buddy allocator. Bigger value increase the probability 857*4882a593Smuzhiyun of catching random memory corruption, but reduce the 858*4882a593Smuzhiyun amount of memory for normal system use. The maximum 859*4882a593Smuzhiyun possible value is MAX_ORDER/2. Setting this parameter 860*4882a593Smuzhiyun to 1 or 2 should be enough to identify most random 861*4882a593Smuzhiyun memory corruption problems caused by bugs in kernel or 862*4882a593Smuzhiyun driver code when a CPU writes to (or reads from) a 863*4882a593Smuzhiyun random memory location. Note that there exists a class 864*4882a593Smuzhiyun of memory corruptions problems caused by buggy H/W or 865*4882a593Smuzhiyun F/W or by drivers badly programing DMA (basically when 866*4882a593Smuzhiyun memory is written at bus level and the CPU MMU is 867*4882a593Smuzhiyun bypassed) which are not detectable by 868*4882a593Smuzhiyun CONFIG_DEBUG_PAGEALLOC, hence this option will not help 869*4882a593Smuzhiyun tracking down these problems. 870*4882a593Smuzhiyun 871*4882a593Smuzhiyun debug_pagealloc= 872*4882a593Smuzhiyun [KNL] When CONFIG_DEBUG_PAGEALLOC is set, this parameter 873*4882a593Smuzhiyun enables the feature at boot time. By default, it is 874*4882a593Smuzhiyun disabled and the system will work mostly the same as a 875*4882a593Smuzhiyun kernel built without CONFIG_DEBUG_PAGEALLOC. 876*4882a593Smuzhiyun Note: to get most of debug_pagealloc error reports, it's 877*4882a593Smuzhiyun useful to also enable the page_owner functionality. 878*4882a593Smuzhiyun on: enable the feature 879*4882a593Smuzhiyun 880*4882a593Smuzhiyun debugfs= [KNL] This parameter enables what is exposed to userspace 881*4882a593Smuzhiyun and debugfs internal clients. 882*4882a593Smuzhiyun Format: { on, no-mount, off } 883*4882a593Smuzhiyun on: All functions are enabled. 884*4882a593Smuzhiyun no-mount: 885*4882a593Smuzhiyun Filesystem is not registered but kernel clients can 886*4882a593Smuzhiyun access APIs and a crashkernel can be used to read 887*4882a593Smuzhiyun its content. There is nothing to mount. 888*4882a593Smuzhiyun off: Filesystem is not registered and clients 889*4882a593Smuzhiyun get a -EPERM as result when trying to register files 890*4882a593Smuzhiyun or directories within debugfs. 891*4882a593Smuzhiyun This is equivalent of the runtime functionality if 892*4882a593Smuzhiyun debugfs was not enabled in the kernel at all. 893*4882a593Smuzhiyun Default value is set in build-time with a kernel configuration. 894*4882a593Smuzhiyun 895*4882a593Smuzhiyun debugpat [X86] Enable PAT debugging 896*4882a593Smuzhiyun 897*4882a593Smuzhiyun decnet.addr= [HW,NET] 898*4882a593Smuzhiyun Format: <area>[,<node>] 899*4882a593Smuzhiyun See also Documentation/networking/decnet.rst. 900*4882a593Smuzhiyun 901*4882a593Smuzhiyun default_hugepagesz= 902*4882a593Smuzhiyun [HW] The size of the default HugeTLB page. This is 903*4882a593Smuzhiyun the size represented by the legacy /proc/ hugepages 904*4882a593Smuzhiyun APIs. In addition, this is the default hugetlb size 905*4882a593Smuzhiyun used for shmget(), mmap() and mounting hugetlbfs 906*4882a593Smuzhiyun filesystems. If not specified, defaults to the 907*4882a593Smuzhiyun architecture's default huge page size. Huge page 908*4882a593Smuzhiyun sizes are architecture dependent. See also 909*4882a593Smuzhiyun Documentation/admin-guide/mm/hugetlbpage.rst. 910*4882a593Smuzhiyun Format: size[KMG] 911*4882a593Smuzhiyun 912*4882a593Smuzhiyun deferred_probe_timeout= 913*4882a593Smuzhiyun [KNL] Debugging option to set a timeout in seconds for 914*4882a593Smuzhiyun deferred probe to give up waiting on dependencies to 915*4882a593Smuzhiyun probe. Only specific dependencies (subsystems or 916*4882a593Smuzhiyun drivers) that have opted in will be ignored. A timeout of 0 917*4882a593Smuzhiyun will timeout at the end of initcalls. This option will also 918*4882a593Smuzhiyun dump out devices still on the deferred probe list after 919*4882a593Smuzhiyun retrying. 920*4882a593Smuzhiyun 921*4882a593Smuzhiyun dfltcc= [HW,S390] 922*4882a593Smuzhiyun Format: { on | off | def_only | inf_only | always } 923*4882a593Smuzhiyun on: s390 zlib hardware support for compression on 924*4882a593Smuzhiyun level 1 and decompression (default) 925*4882a593Smuzhiyun off: No s390 zlib hardware support 926*4882a593Smuzhiyun def_only: s390 zlib hardware support for deflate 927*4882a593Smuzhiyun only (compression on level 1) 928*4882a593Smuzhiyun inf_only: s390 zlib hardware support for inflate 929*4882a593Smuzhiyun only (decompression) 930*4882a593Smuzhiyun always: Same as 'on' but ignores the selected compression 931*4882a593Smuzhiyun level always using hardware support (used for debugging) 932*4882a593Smuzhiyun 933*4882a593Smuzhiyun dhash_entries= [KNL] 934*4882a593Smuzhiyun Set number of hash buckets for dentry cache. 935*4882a593Smuzhiyun 936*4882a593Smuzhiyun disable_1tb_segments [PPC] 937*4882a593Smuzhiyun Disables the use of 1TB hash page table segments. This 938*4882a593Smuzhiyun causes the kernel to fall back to 256MB segments which 939*4882a593Smuzhiyun can be useful when debugging issues that require an SLB 940*4882a593Smuzhiyun miss to occur. 941*4882a593Smuzhiyun 942*4882a593Smuzhiyun disable_dma32= [KNL] 943*4882a593Smuzhiyun Dynamically disable ZONE_DMA32 on kernels compiled with 944*4882a593Smuzhiyun CONFIG_ZONE_DMA32=y. 945*4882a593Smuzhiyun 946*4882a593Smuzhiyun stress_slb [PPC] 947*4882a593Smuzhiyun Limits the number of kernel SLB entries, and flushes 948*4882a593Smuzhiyun them frequently to increase the rate of SLB faults 949*4882a593Smuzhiyun on kernel addresses. 950*4882a593Smuzhiyun 951*4882a593Smuzhiyun disable= [IPV6] 952*4882a593Smuzhiyun See Documentation/networking/ipv6.rst. 953*4882a593Smuzhiyun 954*4882a593Smuzhiyun hardened_usercopy= 955*4882a593Smuzhiyun [KNL] Under CONFIG_HARDENED_USERCOPY, whether 956*4882a593Smuzhiyun hardening is enabled for this boot. Hardened 957*4882a593Smuzhiyun usercopy checking is used to protect the kernel 958*4882a593Smuzhiyun from reading or writing beyond known memory 959*4882a593Smuzhiyun allocation boundaries as a proactive defense 960*4882a593Smuzhiyun against bounds-checking flaws in the kernel's 961*4882a593Smuzhiyun copy_to_user()/copy_from_user() interface. 962*4882a593Smuzhiyun on Perform hardened usercopy checks (default). 963*4882a593Smuzhiyun off Disable hardened usercopy checks. 964*4882a593Smuzhiyun 965*4882a593Smuzhiyun disable_radix [PPC] 966*4882a593Smuzhiyun Disable RADIX MMU mode on POWER9 967*4882a593Smuzhiyun 968*4882a593Smuzhiyun radix_hcall_invalidate=on [PPC/PSERIES] 969*4882a593Smuzhiyun Disable RADIX GTSE feature and use hcall for TLB 970*4882a593Smuzhiyun invalidate. 971*4882a593Smuzhiyun 972*4882a593Smuzhiyun disable_tlbie [PPC] 973*4882a593Smuzhiyun Disable TLBIE instruction. Currently does not work 974*4882a593Smuzhiyun with KVM, with HASH MMU, or with coherent accelerators. 975*4882a593Smuzhiyun 976*4882a593Smuzhiyun disable_cpu_apicid= [X86,APIC,SMP] 977*4882a593Smuzhiyun Format: <int> 978*4882a593Smuzhiyun The number of initial APIC ID for the 979*4882a593Smuzhiyun corresponding CPU to be disabled at boot, 980*4882a593Smuzhiyun mostly used for the kdump 2nd kernel to 981*4882a593Smuzhiyun disable BSP to wake up multiple CPUs without 982*4882a593Smuzhiyun causing system reset or hang due to sending 983*4882a593Smuzhiyun INIT from AP to BSP. 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun perf_v4_pmi= [X86,INTEL] 986*4882a593Smuzhiyun Format: <bool> 987*4882a593Smuzhiyun Disable Intel PMU counter freezing feature. 988*4882a593Smuzhiyun The feature only exists starting from 989*4882a593Smuzhiyun Arch Perfmon v4 (Skylake and newer). 990*4882a593Smuzhiyun 991*4882a593Smuzhiyun disable_ddw [PPC/PSERIES] 992*4882a593Smuzhiyun Disable Dynamic DMA Window support. Use this 993*4882a593Smuzhiyun to workaround buggy firmware. 994*4882a593Smuzhiyun 995*4882a593Smuzhiyun disable_ipv6= [IPV6] 996*4882a593Smuzhiyun See Documentation/networking/ipv6.rst. 997*4882a593Smuzhiyun 998*4882a593Smuzhiyun disable_mtrr_cleanup [X86] 999*4882a593Smuzhiyun The kernel tries to adjust MTRR layout from continuous 1000*4882a593Smuzhiyun to discrete, to make X server driver able to add WB 1001*4882a593Smuzhiyun entry later. This parameter disables that. 1002*4882a593Smuzhiyun 1003*4882a593Smuzhiyun disable_mtrr_trim [X86, Intel and AMD only] 1004*4882a593Smuzhiyun By default the kernel will trim any uncacheable 1005*4882a593Smuzhiyun memory out of your available memory pool based on 1006*4882a593Smuzhiyun MTRR settings. This parameter disables that behavior, 1007*4882a593Smuzhiyun possibly causing your machine to run very slowly. 1008*4882a593Smuzhiyun 1009*4882a593Smuzhiyun disable_timer_pin_1 [X86] 1010*4882a593Smuzhiyun Disable PIN 1 of APIC timer 1011*4882a593Smuzhiyun Can be useful to work around chipset bugs. 1012*4882a593Smuzhiyun 1013*4882a593Smuzhiyun dis_ucode_ldr [X86] Disable the microcode loader. 1014*4882a593Smuzhiyun 1015*4882a593Smuzhiyun dma_debug=off If the kernel is compiled with DMA_API_DEBUG support, 1016*4882a593Smuzhiyun this option disables the debugging code at boot. 1017*4882a593Smuzhiyun 1018*4882a593Smuzhiyun dma_debug_entries=<number> 1019*4882a593Smuzhiyun This option allows to tune the number of preallocated 1020*4882a593Smuzhiyun entries for DMA-API debugging code. One entry is 1021*4882a593Smuzhiyun required per DMA-API allocation. Use this if the 1022*4882a593Smuzhiyun DMA-API debugging code disables itself because the 1023*4882a593Smuzhiyun architectural default is too low. 1024*4882a593Smuzhiyun 1025*4882a593Smuzhiyun dma_debug_driver=<driver_name> 1026*4882a593Smuzhiyun With this option the DMA-API debugging driver 1027*4882a593Smuzhiyun filter feature can be enabled at boot time. Just 1028*4882a593Smuzhiyun pass the driver to filter for as the parameter. 1029*4882a593Smuzhiyun The filter can be disabled or changed to another 1030*4882a593Smuzhiyun driver later using sysfs. 1031*4882a593Smuzhiyun 1032*4882a593Smuzhiyun driver_async_probe= [KNL] 1033*4882a593Smuzhiyun List of driver names to be probed asynchronously. 1034*4882a593Smuzhiyun Format: <driver_name1>,<driver_name2>... 1035*4882a593Smuzhiyun 1036*4882a593Smuzhiyun drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>] 1037*4882a593Smuzhiyun Broken monitors, graphic adapters, KVMs and EDIDless 1038*4882a593Smuzhiyun panels may send no or incorrect EDID data sets. 1039*4882a593Smuzhiyun This parameter allows to specify an EDID data sets 1040*4882a593Smuzhiyun in the /lib/firmware directory that are used instead. 1041*4882a593Smuzhiyun Generic built-in EDID data sets are used, if one of 1042*4882a593Smuzhiyun edid/1024x768.bin, edid/1280x1024.bin, 1043*4882a593Smuzhiyun edid/1680x1050.bin, or edid/1920x1080.bin is given 1044*4882a593Smuzhiyun and no file with the same name exists. Details and 1045*4882a593Smuzhiyun instructions how to build your own EDID data are 1046*4882a593Smuzhiyun available in Documentation/admin-guide/edid.rst. An EDID 1047*4882a593Smuzhiyun data set will only be used for a particular connector, 1048*4882a593Smuzhiyun if its name and a colon are prepended to the EDID 1049*4882a593Smuzhiyun name. Each connector may use a unique EDID data 1050*4882a593Smuzhiyun set by separating the files with a comma. An EDID 1051*4882a593Smuzhiyun data set with no connector name will be used for 1052*4882a593Smuzhiyun any connectors not explicitly specified. 1053*4882a593Smuzhiyun 1054*4882a593Smuzhiyun dscc4.setup= [NET] 1055*4882a593Smuzhiyun 1056*4882a593Smuzhiyun dt_cpu_ftrs= [PPC] 1057*4882a593Smuzhiyun Format: {"off" | "known"} 1058*4882a593Smuzhiyun Control how the dt_cpu_ftrs device-tree binding is 1059*4882a593Smuzhiyun used for CPU feature discovery and setup (if it 1060*4882a593Smuzhiyun exists). 1061*4882a593Smuzhiyun off: Do not use it, fall back to legacy cpu table. 1062*4882a593Smuzhiyun known: Do not pass through unknown features to guests 1063*4882a593Smuzhiyun or userspace, only those that the kernel is aware of. 1064*4882a593Smuzhiyun 1065*4882a593Smuzhiyun dump_apple_properties [X86] 1066*4882a593Smuzhiyun Dump name and content of EFI device properties on 1067*4882a593Smuzhiyun x86 Macs. Useful for driver authors to determine 1068*4882a593Smuzhiyun what data is available or for reverse-engineering. 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyun dyndbg[="val"] [KNL,DYNAMIC_DEBUG] 1071*4882a593Smuzhiyun <module>.dyndbg[="val"] 1072*4882a593Smuzhiyun Enable debug messages at boot time. See 1073*4882a593Smuzhiyun Documentation/admin-guide/dynamic-debug-howto.rst 1074*4882a593Smuzhiyun for details. 1075*4882a593Smuzhiyun 1076*4882a593Smuzhiyun nopku [X86] Disable Memory Protection Keys CPU feature found 1077*4882a593Smuzhiyun in some Intel CPUs. 1078*4882a593Smuzhiyun 1079*4882a593Smuzhiyun <module>.async_probe [KNL] 1080*4882a593Smuzhiyun Enable asynchronous probe on this module. 1081*4882a593Smuzhiyun 1082*4882a593Smuzhiyun early_ioremap_debug [KNL] 1083*4882a593Smuzhiyun Enable debug messages in early_ioremap support. This 1084*4882a593Smuzhiyun is useful for tracking down temporary early mappings 1085*4882a593Smuzhiyun which are not unmapped. 1086*4882a593Smuzhiyun 1087*4882a593Smuzhiyun earlycon= [KNL] Output early console device and options. 1088*4882a593Smuzhiyun 1089*4882a593Smuzhiyun When used with no options, the early console is 1090*4882a593Smuzhiyun determined by stdout-path property in device tree's 1091*4882a593Smuzhiyun chosen node or the ACPI SPCR table if supported by 1092*4882a593Smuzhiyun the platform. 1093*4882a593Smuzhiyun 1094*4882a593Smuzhiyun cdns,<addr>[,options] 1095*4882a593Smuzhiyun Start an early, polled-mode console on a Cadence 1096*4882a593Smuzhiyun (xuartps) serial port at the specified address. Only 1097*4882a593Smuzhiyun supported option is baud rate. If baud rate is not 1098*4882a593Smuzhiyun specified, the serial port must already be setup and 1099*4882a593Smuzhiyun configured. 1100*4882a593Smuzhiyun 1101*4882a593Smuzhiyun uart[8250],io,<addr>[,options] 1102*4882a593Smuzhiyun uart[8250],mmio,<addr>[,options] 1103*4882a593Smuzhiyun uart[8250],mmio32,<addr>[,options] 1104*4882a593Smuzhiyun uart[8250],mmio32be,<addr>[,options] 1105*4882a593Smuzhiyun uart[8250],0x<addr>[,options] 1106*4882a593Smuzhiyun Start an early, polled-mode console on the 8250/16550 1107*4882a593Smuzhiyun UART at the specified I/O port or MMIO address. 1108*4882a593Smuzhiyun MMIO inter-register address stride is either 8-bit 1109*4882a593Smuzhiyun (mmio) or 32-bit (mmio32 or mmio32be). 1110*4882a593Smuzhiyun If none of [io|mmio|mmio32|mmio32be], <addr> is assumed 1111*4882a593Smuzhiyun to be equivalent to 'mmio'. 'options' are specified 1112*4882a593Smuzhiyun in the same format described for "console=ttyS<n>"; if 1113*4882a593Smuzhiyun unspecified, the h/w is not initialized. 1114*4882a593Smuzhiyun 1115*4882a593Smuzhiyun pl011,<addr> 1116*4882a593Smuzhiyun pl011,mmio32,<addr> 1117*4882a593Smuzhiyun Start an early, polled-mode console on a pl011 serial 1118*4882a593Smuzhiyun port at the specified address. The pl011 serial port 1119*4882a593Smuzhiyun must already be setup and configured. Options are not 1120*4882a593Smuzhiyun yet supported. If 'mmio32' is specified, then only 1121*4882a593Smuzhiyun the driver will use only 32-bit accessors to read/write 1122*4882a593Smuzhiyun the device registers. 1123*4882a593Smuzhiyun 1124*4882a593Smuzhiyun meson,<addr> 1125*4882a593Smuzhiyun Start an early, polled-mode console on a meson serial 1126*4882a593Smuzhiyun port at the specified address. The serial port must 1127*4882a593Smuzhiyun already be setup and configured. Options are not yet 1128*4882a593Smuzhiyun supported. 1129*4882a593Smuzhiyun 1130*4882a593Smuzhiyun msm_serial,<addr> 1131*4882a593Smuzhiyun Start an early, polled-mode console on an msm serial 1132*4882a593Smuzhiyun port at the specified address. The serial port 1133*4882a593Smuzhiyun must already be setup and configured. Options are not 1134*4882a593Smuzhiyun yet supported. 1135*4882a593Smuzhiyun 1136*4882a593Smuzhiyun msm_serial_dm,<addr> 1137*4882a593Smuzhiyun Start an early, polled-mode console on an msm serial 1138*4882a593Smuzhiyun dm port at the specified address. The serial port 1139*4882a593Smuzhiyun must already be setup and configured. Options are not 1140*4882a593Smuzhiyun yet supported. 1141*4882a593Smuzhiyun 1142*4882a593Smuzhiyun owl,<addr> 1143*4882a593Smuzhiyun Start an early, polled-mode console on a serial port 1144*4882a593Smuzhiyun of an Actions Semi SoC, such as S500 or S900, at the 1145*4882a593Smuzhiyun specified address. The serial port must already be 1146*4882a593Smuzhiyun setup and configured. Options are not yet supported. 1147*4882a593Smuzhiyun 1148*4882a593Smuzhiyun rda,<addr> 1149*4882a593Smuzhiyun Start an early, polled-mode console on a serial port 1150*4882a593Smuzhiyun of an RDA Micro SoC, such as RDA8810PL, at the 1151*4882a593Smuzhiyun specified address. The serial port must already be 1152*4882a593Smuzhiyun setup and configured. Options are not yet supported. 1153*4882a593Smuzhiyun 1154*4882a593Smuzhiyun sbi 1155*4882a593Smuzhiyun Use RISC-V SBI (Supervisor Binary Interface) for early 1156*4882a593Smuzhiyun console. 1157*4882a593Smuzhiyun 1158*4882a593Smuzhiyun smh Use ARM semihosting calls for early console. 1159*4882a593Smuzhiyun 1160*4882a593Smuzhiyun s3c2410,<addr> 1161*4882a593Smuzhiyun s3c2412,<addr> 1162*4882a593Smuzhiyun s3c2440,<addr> 1163*4882a593Smuzhiyun s3c6400,<addr> 1164*4882a593Smuzhiyun s5pv210,<addr> 1165*4882a593Smuzhiyun exynos4210,<addr> 1166*4882a593Smuzhiyun Use early console provided by serial driver available 1167*4882a593Smuzhiyun on Samsung SoCs, requires selecting proper type and 1168*4882a593Smuzhiyun a correct base address of the selected UART port. The 1169*4882a593Smuzhiyun serial port must already be setup and configured. 1170*4882a593Smuzhiyun Options are not yet supported. 1171*4882a593Smuzhiyun 1172*4882a593Smuzhiyun lantiq,<addr> 1173*4882a593Smuzhiyun Start an early, polled-mode console on a lantiq serial 1174*4882a593Smuzhiyun (lqasc) port at the specified address. The serial port 1175*4882a593Smuzhiyun must already be setup and configured. Options are not 1176*4882a593Smuzhiyun yet supported. 1177*4882a593Smuzhiyun 1178*4882a593Smuzhiyun lpuart,<addr> 1179*4882a593Smuzhiyun lpuart32,<addr> 1180*4882a593Smuzhiyun Use early console provided by Freescale LP UART driver 1181*4882a593Smuzhiyun found on Freescale Vybrid and QorIQ LS1021A processors. 1182*4882a593Smuzhiyun A valid base address must be provided, and the serial 1183*4882a593Smuzhiyun port must already be setup and configured. 1184*4882a593Smuzhiyun 1185*4882a593Smuzhiyun ec_imx21,<addr> 1186*4882a593Smuzhiyun ec_imx6q,<addr> 1187*4882a593Smuzhiyun Start an early, polled-mode, output-only console on the 1188*4882a593Smuzhiyun Freescale i.MX UART at the specified address. The UART 1189*4882a593Smuzhiyun must already be setup and configured. 1190*4882a593Smuzhiyun 1191*4882a593Smuzhiyun ar3700_uart,<addr> 1192*4882a593Smuzhiyun Start an early, polled-mode console on the 1193*4882a593Smuzhiyun Armada 3700 serial port at the specified 1194*4882a593Smuzhiyun address. The serial port must already be setup 1195*4882a593Smuzhiyun and configured. Options are not yet supported. 1196*4882a593Smuzhiyun 1197*4882a593Smuzhiyun qcom_geni,<addr> 1198*4882a593Smuzhiyun Start an early, polled-mode console on a Qualcomm 1199*4882a593Smuzhiyun Generic Interface (GENI) based serial port at the 1200*4882a593Smuzhiyun specified address. The serial port must already be 1201*4882a593Smuzhiyun setup and configured. Options are not yet supported. 1202*4882a593Smuzhiyun 1203*4882a593Smuzhiyun efifb,[options] 1204*4882a593Smuzhiyun Start an early, unaccelerated console on the EFI 1205*4882a593Smuzhiyun memory mapped framebuffer (if available). On cache 1206*4882a593Smuzhiyun coherent non-x86 systems that use system memory for 1207*4882a593Smuzhiyun the framebuffer, pass the 'ram' option so that it is 1208*4882a593Smuzhiyun mapped with the correct attributes. 1209*4882a593Smuzhiyun 1210*4882a593Smuzhiyun linflex,<addr> 1211*4882a593Smuzhiyun Use early console provided by Freescale LINFlexD UART 1212*4882a593Smuzhiyun serial driver for NXP S32V234 SoCs. A valid base 1213*4882a593Smuzhiyun address must be provided, and the serial port must 1214*4882a593Smuzhiyun already be setup and configured. 1215*4882a593Smuzhiyun 1216*4882a593Smuzhiyun earlyprintk= [X86,SH,ARM,M68k,S390] 1217*4882a593Smuzhiyun earlyprintk=vga 1218*4882a593Smuzhiyun earlyprintk=sclp 1219*4882a593Smuzhiyun earlyprintk=xen 1220*4882a593Smuzhiyun earlyprintk=serial[,ttySn[,baudrate]] 1221*4882a593Smuzhiyun earlyprintk=serial[,0x...[,baudrate]] 1222*4882a593Smuzhiyun earlyprintk=ttySn[,baudrate] 1223*4882a593Smuzhiyun earlyprintk=dbgp[debugController#] 1224*4882a593Smuzhiyun earlyprintk=pciserial[,force],bus:device.function[,baudrate] 1225*4882a593Smuzhiyun earlyprintk=xdbc[xhciController#] 1226*4882a593Smuzhiyun 1227*4882a593Smuzhiyun earlyprintk is useful when the kernel crashes before 1228*4882a593Smuzhiyun the normal console is initialized. It is not enabled by 1229*4882a593Smuzhiyun default because it has some cosmetic problems. 1230*4882a593Smuzhiyun 1231*4882a593Smuzhiyun Append ",keep" to not disable it when the real console 1232*4882a593Smuzhiyun takes over. 1233*4882a593Smuzhiyun 1234*4882a593Smuzhiyun Only one of vga, efi, serial, or usb debug port can 1235*4882a593Smuzhiyun be used at a time. 1236*4882a593Smuzhiyun 1237*4882a593Smuzhiyun Currently only ttyS0 and ttyS1 may be specified by 1238*4882a593Smuzhiyun name. Other I/O ports may be explicitly specified 1239*4882a593Smuzhiyun on some architectures (x86 and arm at least) by 1240*4882a593Smuzhiyun replacing ttySn with an I/O port address, like this: 1241*4882a593Smuzhiyun earlyprintk=serial,0x1008,115200 1242*4882a593Smuzhiyun You can find the port for a given device in 1243*4882a593Smuzhiyun /proc/tty/driver/serial: 1244*4882a593Smuzhiyun 2: uart:ST16650V2 port:00001008 irq:18 ... 1245*4882a593Smuzhiyun 1246*4882a593Smuzhiyun Interaction with the standard serial driver is not 1247*4882a593Smuzhiyun very good. 1248*4882a593Smuzhiyun 1249*4882a593Smuzhiyun The VGA and EFI output is eventually overwritten by 1250*4882a593Smuzhiyun the real console. 1251*4882a593Smuzhiyun 1252*4882a593Smuzhiyun The xen output can only be used by Xen PV guests. 1253*4882a593Smuzhiyun 1254*4882a593Smuzhiyun The sclp output can only be used on s390. 1255*4882a593Smuzhiyun 1256*4882a593Smuzhiyun The optional "force" to "pciserial" enables use of a 1257*4882a593Smuzhiyun PCI device even when its classcode is not of the 1258*4882a593Smuzhiyun UART class. 1259*4882a593Smuzhiyun 1260*4882a593Smuzhiyun edac_report= [HW,EDAC] Control how to report EDAC event 1261*4882a593Smuzhiyun Format: {"on" | "off" | "force"} 1262*4882a593Smuzhiyun on: enable EDAC to report H/W event. May be overridden 1263*4882a593Smuzhiyun by other higher priority error reporting module. 1264*4882a593Smuzhiyun off: disable H/W event reporting through EDAC. 1265*4882a593Smuzhiyun force: enforce the use of EDAC to report H/W event. 1266*4882a593Smuzhiyun default: on. 1267*4882a593Smuzhiyun 1268*4882a593Smuzhiyun ekgdboc= [X86,KGDB] Allow early kernel console debugging 1269*4882a593Smuzhiyun ekgdboc=kbd 1270*4882a593Smuzhiyun 1271*4882a593Smuzhiyun This is designed to be used in conjunction with 1272*4882a593Smuzhiyun the boot argument: earlyprintk=vga 1273*4882a593Smuzhiyun 1274*4882a593Smuzhiyun This parameter works in place of the kgdboc parameter 1275*4882a593Smuzhiyun but can only be used if the backing tty is available 1276*4882a593Smuzhiyun very early in the boot process. For early debugging 1277*4882a593Smuzhiyun via a serial port see kgdboc_earlycon instead. 1278*4882a593Smuzhiyun 1279*4882a593Smuzhiyun edd= [EDD] 1280*4882a593Smuzhiyun Format: {"off" | "on" | "skip[mbr]"} 1281*4882a593Smuzhiyun 1282*4882a593Smuzhiyun efi= [EFI] 1283*4882a593Smuzhiyun Format: { "debug", "disable_early_pci_dma", 1284*4882a593Smuzhiyun "nochunk", "noruntime", "nosoftreserve", 1285*4882a593Smuzhiyun "novamap", "no_disable_early_pci_dma" } 1286*4882a593Smuzhiyun debug: enable misc debug output. 1287*4882a593Smuzhiyun disable_early_pci_dma: disable the busmaster bit on all 1288*4882a593Smuzhiyun PCI bridges while in the EFI boot stub. 1289*4882a593Smuzhiyun nochunk: disable reading files in "chunks" in the EFI 1290*4882a593Smuzhiyun boot stub, as chunking can cause problems with some 1291*4882a593Smuzhiyun firmware implementations. 1292*4882a593Smuzhiyun noruntime : disable EFI runtime services support 1293*4882a593Smuzhiyun nosoftreserve: The EFI_MEMORY_SP (Specific Purpose) 1294*4882a593Smuzhiyun attribute may cause the kernel to reserve the 1295*4882a593Smuzhiyun memory range for a memory mapping driver to 1296*4882a593Smuzhiyun claim. Specify efi=nosoftreserve to disable this 1297*4882a593Smuzhiyun reservation and treat the memory by its base type 1298*4882a593Smuzhiyun (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 1299*4882a593Smuzhiyun novamap: do not call SetVirtualAddressMap(). 1300*4882a593Smuzhiyun no_disable_early_pci_dma: Leave the busmaster bit set 1301*4882a593Smuzhiyun on all PCI bridges while in the EFI boot stub 1302*4882a593Smuzhiyun 1303*4882a593Smuzhiyun efi_no_storage_paranoia [EFI; X86] 1304*4882a593Smuzhiyun Using this parameter you can use more than 50% of 1305*4882a593Smuzhiyun your efi variable storage. Use this parameter only if 1306*4882a593Smuzhiyun you are really sure that your UEFI does sane gc and 1307*4882a593Smuzhiyun fulfills the spec otherwise your board may brick. 1308*4882a593Smuzhiyun 1309*4882a593Smuzhiyun efi_fake_mem= nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86] 1310*4882a593Smuzhiyun Add arbitrary attribute to specific memory range by 1311*4882a593Smuzhiyun updating original EFI memory map. 1312*4882a593Smuzhiyun Region of memory which aa attribute is added to is 1313*4882a593Smuzhiyun from ss to ss+nn. 1314*4882a593Smuzhiyun 1315*4882a593Smuzhiyun If efi_fake_mem=2G@4G:0x10000,2G@0x10a0000000:0x10000 1316*4882a593Smuzhiyun is specified, EFI_MEMORY_MORE_RELIABLE(0x10000) 1317*4882a593Smuzhiyun attribute is added to range 0x100000000-0x180000000 and 1318*4882a593Smuzhiyun 0x10a0000000-0x1120000000. 1319*4882a593Smuzhiyun 1320*4882a593Smuzhiyun If efi_fake_mem=8G@9G:0x40000 is specified, the 1321*4882a593Smuzhiyun EFI_MEMORY_SP(0x40000) attribute is added to 1322*4882a593Smuzhiyun range 0x240000000-0x43fffffff. 1323*4882a593Smuzhiyun 1324*4882a593Smuzhiyun Using this parameter you can do debugging of EFI memmap 1325*4882a593Smuzhiyun related features. For example, you can do debugging of 1326*4882a593Smuzhiyun Address Range Mirroring feature even if your box 1327*4882a593Smuzhiyun doesn't support it, or mark specific memory as 1328*4882a593Smuzhiyun "soft reserved". 1329*4882a593Smuzhiyun 1330*4882a593Smuzhiyun efivar_ssdt= [EFI; X86] Name of an EFI variable that contains an SSDT 1331*4882a593Smuzhiyun that is to be dynamically loaded by Linux. If there are 1332*4882a593Smuzhiyun multiple variables with the same name but with different 1333*4882a593Smuzhiyun vendor GUIDs, all of them will be loaded. See 1334*4882a593Smuzhiyun Documentation/admin-guide/acpi/ssdt-overlays.rst for details. 1335*4882a593Smuzhiyun 1336*4882a593Smuzhiyun 1337*4882a593Smuzhiyun eisa_irq_edge= [PARISC,HW] 1338*4882a593Smuzhiyun See header of drivers/parisc/eisa.c. 1339*4882a593Smuzhiyun 1340*4882a593Smuzhiyun elanfreq= [X86-32] 1341*4882a593Smuzhiyun See comment before function elanfreq_setup() in 1342*4882a593Smuzhiyun arch/x86/kernel/cpu/cpufreq/elanfreq.c. 1343*4882a593Smuzhiyun 1344*4882a593Smuzhiyun elfcorehdr=[size[KMG]@]offset[KMG] [IA64,PPC,SH,X86,S390] 1345*4882a593Smuzhiyun Specifies physical address of start of kernel core 1346*4882a593Smuzhiyun image elf header and optionally the size. Generally 1347*4882a593Smuzhiyun kexec loader will pass this option to capture kernel. 1348*4882a593Smuzhiyun See Documentation/admin-guide/kdump/kdump.rst for details. 1349*4882a593Smuzhiyun 1350*4882a593Smuzhiyun enable_mtrr_cleanup [X86] 1351*4882a593Smuzhiyun The kernel tries to adjust MTRR layout from continuous 1352*4882a593Smuzhiyun to discrete, to make X server driver able to add WB 1353*4882a593Smuzhiyun entry later. This parameter enables that. 1354*4882a593Smuzhiyun 1355*4882a593Smuzhiyun enable_timer_pin_1 [X86] 1356*4882a593Smuzhiyun Enable PIN 1 of APIC timer 1357*4882a593Smuzhiyun Can be useful to work around chipset bugs 1358*4882a593Smuzhiyun (in particular on some ATI chipsets). 1359*4882a593Smuzhiyun The kernel tries to set a reasonable default. 1360*4882a593Smuzhiyun 1361*4882a593Smuzhiyun enforcing [SELINUX] Set initial enforcing status. 1362*4882a593Smuzhiyun Format: {"0" | "1"} 1363*4882a593Smuzhiyun See security/selinux/Kconfig help text. 1364*4882a593Smuzhiyun 0 -- permissive (log only, no denials). 1365*4882a593Smuzhiyun 1 -- enforcing (deny and log). 1366*4882a593Smuzhiyun Default value is 0. 1367*4882a593Smuzhiyun Value can be changed at runtime via 1368*4882a593Smuzhiyun /sys/fs/selinux/enforce. 1369*4882a593Smuzhiyun 1370*4882a593Smuzhiyun erst_disable [ACPI] 1371*4882a593Smuzhiyun Disable Error Record Serialization Table (ERST) 1372*4882a593Smuzhiyun support. 1373*4882a593Smuzhiyun 1374*4882a593Smuzhiyun ether= [HW,NET] Ethernet cards parameters 1375*4882a593Smuzhiyun This option is obsoleted by the "netdev=" option, which 1376*4882a593Smuzhiyun has equivalent usage. See its documentation for details. 1377*4882a593Smuzhiyun 1378*4882a593Smuzhiyun evm= [EVM] 1379*4882a593Smuzhiyun Format: { "fix" } 1380*4882a593Smuzhiyun Permit 'security.evm' to be updated regardless of 1381*4882a593Smuzhiyun current integrity status. 1382*4882a593Smuzhiyun 1383*4882a593Smuzhiyun failslab= 1384*4882a593Smuzhiyun fail_usercopy= 1385*4882a593Smuzhiyun fail_page_alloc= 1386*4882a593Smuzhiyun fail_make_request=[KNL] 1387*4882a593Smuzhiyun General fault injection mechanism. 1388*4882a593Smuzhiyun Format: <interval>,<probability>,<space>,<times> 1389*4882a593Smuzhiyun See also Documentation/fault-injection/. 1390*4882a593Smuzhiyun 1391*4882a593Smuzhiyun fb_tunnels= [NET] 1392*4882a593Smuzhiyun Format: { initns | none } 1393*4882a593Smuzhiyun See Documentation/admin-guide/sysctl/net.rst for 1394*4882a593Smuzhiyun fb_tunnels_only_for_init_ns 1395*4882a593Smuzhiyun 1396*4882a593Smuzhiyun floppy= [HW] 1397*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/floppy.rst. 1398*4882a593Smuzhiyun 1399*4882a593Smuzhiyun force_pal_cache_flush 1400*4882a593Smuzhiyun [IA-64] Avoid check_sal_cache_flush which may hang on 1401*4882a593Smuzhiyun buggy SAL_CACHE_FLUSH implementations. Using this 1402*4882a593Smuzhiyun parameter will force ia64_sal_cache_flush to call 1403*4882a593Smuzhiyun ia64_pal_cache_flush instead of SAL_CACHE_FLUSH. 1404*4882a593Smuzhiyun 1405*4882a593Smuzhiyun forcepae [X86-32] 1406*4882a593Smuzhiyun Forcefully enable Physical Address Extension (PAE). 1407*4882a593Smuzhiyun Many Pentium M systems disable PAE but may have a 1408*4882a593Smuzhiyun functionally usable PAE implementation. 1409*4882a593Smuzhiyun Warning: use of this parameter will taint the kernel 1410*4882a593Smuzhiyun and may cause unknown problems. 1411*4882a593Smuzhiyun 1412*4882a593Smuzhiyun ftrace=[tracer] 1413*4882a593Smuzhiyun [FTRACE] will set and start the specified tracer 1414*4882a593Smuzhiyun as early as possible in order to facilitate early 1415*4882a593Smuzhiyun boot debugging. 1416*4882a593Smuzhiyun 1417*4882a593Smuzhiyun ftrace_dump_on_oops[=orig_cpu] 1418*4882a593Smuzhiyun [FTRACE] will dump the trace buffers on oops. 1419*4882a593Smuzhiyun If no parameter is passed, ftrace will dump 1420*4882a593Smuzhiyun buffers of all CPUs, but if you pass orig_cpu, it will 1421*4882a593Smuzhiyun dump only the buffer of the CPU that triggered the 1422*4882a593Smuzhiyun oops. 1423*4882a593Smuzhiyun 1424*4882a593Smuzhiyun ftrace_filter=[function-list] 1425*4882a593Smuzhiyun [FTRACE] Limit the functions traced by the function 1426*4882a593Smuzhiyun tracer at boot up. function-list is a comma separated 1427*4882a593Smuzhiyun list of functions. This list can be changed at run 1428*4882a593Smuzhiyun time by the set_ftrace_filter file in the debugfs 1429*4882a593Smuzhiyun tracing directory. 1430*4882a593Smuzhiyun 1431*4882a593Smuzhiyun ftrace_notrace=[function-list] 1432*4882a593Smuzhiyun [FTRACE] Do not trace the functions specified in 1433*4882a593Smuzhiyun function-list. This list can be changed at run time 1434*4882a593Smuzhiyun by the set_ftrace_notrace file in the debugfs 1435*4882a593Smuzhiyun tracing directory. 1436*4882a593Smuzhiyun 1437*4882a593Smuzhiyun ftrace_graph_filter=[function-list] 1438*4882a593Smuzhiyun [FTRACE] Limit the top level callers functions traced 1439*4882a593Smuzhiyun by the function graph tracer at boot up. 1440*4882a593Smuzhiyun function-list is a comma separated list of functions 1441*4882a593Smuzhiyun that can be changed at run time by the 1442*4882a593Smuzhiyun set_graph_function file in the debugfs tracing directory. 1443*4882a593Smuzhiyun 1444*4882a593Smuzhiyun ftrace_graph_notrace=[function-list] 1445*4882a593Smuzhiyun [FTRACE] Do not trace from the functions specified in 1446*4882a593Smuzhiyun function-list. This list is a comma separated list of 1447*4882a593Smuzhiyun functions that can be changed at run time by the 1448*4882a593Smuzhiyun set_graph_notrace file in the debugfs tracing directory. 1449*4882a593Smuzhiyun 1450*4882a593Smuzhiyun ftrace_graph_max_depth=<uint> 1451*4882a593Smuzhiyun [FTRACE] Used with the function graph tracer. This is 1452*4882a593Smuzhiyun the max depth it will trace into a function. This value 1453*4882a593Smuzhiyun can be changed at run time by the max_graph_depth file 1454*4882a593Smuzhiyun in the tracefs tracing directory. default: 0 (no limit) 1455*4882a593Smuzhiyun 1456*4882a593Smuzhiyun fw_devlink= [KNL] Create device links between consumer and supplier 1457*4882a593Smuzhiyun devices by scanning the firmware to infer the 1458*4882a593Smuzhiyun consumer/supplier relationships. This feature is 1459*4882a593Smuzhiyun especially useful when drivers are loaded as modules as 1460*4882a593Smuzhiyun it ensures proper ordering of tasks like device probing 1461*4882a593Smuzhiyun (suppliers first, then consumers), supplier boot state 1462*4882a593Smuzhiyun clean up (only after all consumers have probed), 1463*4882a593Smuzhiyun suspend/resume & runtime PM (consumers first, then 1464*4882a593Smuzhiyun suppliers). 1465*4882a593Smuzhiyun Format: { off | permissive | on | rpm } 1466*4882a593Smuzhiyun off -- Don't create device links from firmware info. 1467*4882a593Smuzhiyun permissive -- Create device links from firmware info 1468*4882a593Smuzhiyun but use it only for ordering boot state clean 1469*4882a593Smuzhiyun up (sync_state() calls). 1470*4882a593Smuzhiyun on -- Create device links from firmware info and use it 1471*4882a593Smuzhiyun to enforce probe and suspend/resume ordering. 1472*4882a593Smuzhiyun rpm -- Like "on", but also use to order runtime PM. 1473*4882a593Smuzhiyun 1474*4882a593Smuzhiyun fw_devlink.strict=<bool> 1475*4882a593Smuzhiyun [KNL] Treat all inferred dependencies as mandatory 1476*4882a593Smuzhiyun dependencies. This only applies for fw_devlink=on|rpm. 1477*4882a593Smuzhiyun Format: <bool> 1478*4882a593Smuzhiyun 1479*4882a593Smuzhiyun gamecon.map[2|3]= 1480*4882a593Smuzhiyun [HW,JOY] Multisystem joystick and NES/SNES/PSX pad 1481*4882a593Smuzhiyun support via parallel port (up to 5 devices per port) 1482*4882a593Smuzhiyun Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5> 1483*4882a593Smuzhiyun See also Documentation/input/devices/joystick-parport.rst 1484*4882a593Smuzhiyun 1485*4882a593Smuzhiyun gamma= [HW,DRM] 1486*4882a593Smuzhiyun 1487*4882a593Smuzhiyun gart_fix_e820= [X86-64] disable the fix e820 for K8 GART 1488*4882a593Smuzhiyun Format: off | on 1489*4882a593Smuzhiyun default: on 1490*4882a593Smuzhiyun 1491*4882a593Smuzhiyun gcov_persist= [GCOV] When non-zero (default), profiling data for 1492*4882a593Smuzhiyun kernel modules is saved and remains accessible via 1493*4882a593Smuzhiyun debugfs, even when the module is unloaded/reloaded. 1494*4882a593Smuzhiyun When zero, profiling data is discarded and associated 1495*4882a593Smuzhiyun debugfs files are removed at module unload time. 1496*4882a593Smuzhiyun 1497*4882a593Smuzhiyun goldfish [X86] Enable the goldfish android emulator platform. 1498*4882a593Smuzhiyun Don't use this when you are not running on the 1499*4882a593Smuzhiyun android emulator 1500*4882a593Smuzhiyun 1501*4882a593Smuzhiyun gpt [EFI] Forces disk with valid GPT signature but 1502*4882a593Smuzhiyun invalid Protective MBR to be treated as GPT. If the 1503*4882a593Smuzhiyun primary GPT is corrupted, it enables the backup/alternate 1504*4882a593Smuzhiyun GPT to be used instead. 1505*4882a593Smuzhiyun 1506*4882a593Smuzhiyun grcan.enable0= [HW] Configuration of physical interface 0. Determines 1507*4882a593Smuzhiyun the "Enable 0" bit of the configuration register. 1508*4882a593Smuzhiyun Format: 0 | 1 1509*4882a593Smuzhiyun Default: 0 1510*4882a593Smuzhiyun grcan.enable1= [HW] Configuration of physical interface 1. Determines 1511*4882a593Smuzhiyun the "Enable 0" bit of the configuration register. 1512*4882a593Smuzhiyun Format: 0 | 1 1513*4882a593Smuzhiyun Default: 0 1514*4882a593Smuzhiyun grcan.select= [HW] Select which physical interface to use. 1515*4882a593Smuzhiyun Format: 0 | 1 1516*4882a593Smuzhiyun Default: 0 1517*4882a593Smuzhiyun grcan.txsize= [HW] Sets the size of the tx buffer. 1518*4882a593Smuzhiyun Format: <unsigned int> such that (txsize & ~0x1fffc0) == 0. 1519*4882a593Smuzhiyun Default: 1024 1520*4882a593Smuzhiyun grcan.rxsize= [HW] Sets the size of the rx buffer. 1521*4882a593Smuzhiyun Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0. 1522*4882a593Smuzhiyun Default: 1024 1523*4882a593Smuzhiyun 1524*4882a593Smuzhiyun gpio-mockup.gpio_mockup_ranges 1525*4882a593Smuzhiyun [HW] Sets the ranges of gpiochip of for this device. 1526*4882a593Smuzhiyun Format: <start1>,<end1>,<start2>,<end2>... 1527*4882a593Smuzhiyun 1528*4882a593Smuzhiyun hardlockup_all_cpu_backtrace= 1529*4882a593Smuzhiyun [KNL] Should the hard-lockup detector generate 1530*4882a593Smuzhiyun backtraces on all cpus. 1531*4882a593Smuzhiyun Format: 0 | 1 1532*4882a593Smuzhiyun 1533*4882a593Smuzhiyun hashdist= [KNL,NUMA] Large hashes allocated during boot 1534*4882a593Smuzhiyun are distributed across NUMA nodes. Defaults on 1535*4882a593Smuzhiyun for 64-bit NUMA, off otherwise. 1536*4882a593Smuzhiyun Format: 0 | 1 (for off | on) 1537*4882a593Smuzhiyun 1538*4882a593Smuzhiyun hcl= [IA-64] SGI's Hardware Graph compatibility layer 1539*4882a593Smuzhiyun 1540*4882a593Smuzhiyun hd= [EIDE] (E)IDE hard drive subsystem geometry 1541*4882a593Smuzhiyun Format: <cyl>,<head>,<sect> 1542*4882a593Smuzhiyun 1543*4882a593Smuzhiyun hest_disable [ACPI] 1544*4882a593Smuzhiyun Disable Hardware Error Source Table (HEST) support; 1545*4882a593Smuzhiyun corresponding firmware-first mode error processing 1546*4882a593Smuzhiyun logic will be disabled. 1547*4882a593Smuzhiyun 1548*4882a593Smuzhiyun highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact 1549*4882a593Smuzhiyun size of <nn>. This works even on boxes that have no 1550*4882a593Smuzhiyun highmem otherwise. This also works to reduce highmem 1551*4882a593Smuzhiyun size on bigger boxes. 1552*4882a593Smuzhiyun 1553*4882a593Smuzhiyun highres= [KNL] Enable/disable high resolution timer mode. 1554*4882a593Smuzhiyun Valid parameters: "on", "off" 1555*4882a593Smuzhiyun Default: "on" 1556*4882a593Smuzhiyun 1557*4882a593Smuzhiyun hlt [BUGS=ARM,SH] 1558*4882a593Smuzhiyun 1559*4882a593Smuzhiyun hpet= [X86-32,HPET] option to control HPET usage 1560*4882a593Smuzhiyun Format: { enable (default) | disable | force | 1561*4882a593Smuzhiyun verbose } 1562*4882a593Smuzhiyun disable: disable HPET and use PIT instead 1563*4882a593Smuzhiyun force: allow force enabled of undocumented chips (ICH4, 1564*4882a593Smuzhiyun VIA, nVidia) 1565*4882a593Smuzhiyun verbose: show contents of HPET registers during setup 1566*4882a593Smuzhiyun 1567*4882a593Smuzhiyun hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET 1568*4882a593Smuzhiyun registers. Default set by CONFIG_HPET_MMAP_DEFAULT. 1569*4882a593Smuzhiyun 1570*4882a593Smuzhiyun hugetlb_cma= [HW] The size of a cma area used for allocation 1571*4882a593Smuzhiyun of gigantic hugepages. 1572*4882a593Smuzhiyun Format: nn[KMGTPE] 1573*4882a593Smuzhiyun 1574*4882a593Smuzhiyun Reserve a cma area of given size and allocate gigantic 1575*4882a593Smuzhiyun hugepages using the cma allocator. If enabled, the 1576*4882a593Smuzhiyun boot-time allocation of gigantic hugepages is skipped. 1577*4882a593Smuzhiyun 1578*4882a593Smuzhiyun hugepages= [HW] Number of HugeTLB pages to allocate at boot. 1579*4882a593Smuzhiyun If this follows hugepagesz (below), it specifies 1580*4882a593Smuzhiyun the number of pages of hugepagesz to be allocated. 1581*4882a593Smuzhiyun If this is the first HugeTLB parameter on the command 1582*4882a593Smuzhiyun line, it specifies the number of pages to allocate for 1583*4882a593Smuzhiyun the default huge page size. See also 1584*4882a593Smuzhiyun Documentation/admin-guide/mm/hugetlbpage.rst. 1585*4882a593Smuzhiyun Format: <integer> 1586*4882a593Smuzhiyun 1587*4882a593Smuzhiyun hugepagesz= 1588*4882a593Smuzhiyun [HW] The size of the HugeTLB pages. This is used in 1589*4882a593Smuzhiyun conjunction with hugepages (above) to allocate huge 1590*4882a593Smuzhiyun pages of a specific size at boot. The pair 1591*4882a593Smuzhiyun hugepagesz=X hugepages=Y can be specified once for 1592*4882a593Smuzhiyun each supported huge page size. Huge page sizes are 1593*4882a593Smuzhiyun architecture dependent. See also 1594*4882a593Smuzhiyun Documentation/admin-guide/mm/hugetlbpage.rst. 1595*4882a593Smuzhiyun Format: size[KMG] 1596*4882a593Smuzhiyun 1597*4882a593Smuzhiyun hung_task_panic= 1598*4882a593Smuzhiyun [KNL] Should the hung task detector generate panics. 1599*4882a593Smuzhiyun Format: 0 | 1 1600*4882a593Smuzhiyun 1601*4882a593Smuzhiyun A value of 1 instructs the kernel to panic when a 1602*4882a593Smuzhiyun hung task is detected. The default value is controlled 1603*4882a593Smuzhiyun by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time 1604*4882a593Smuzhiyun option. The value selected by this boot parameter can 1605*4882a593Smuzhiyun be changed later by the kernel.hung_task_panic sysctl. 1606*4882a593Smuzhiyun 1607*4882a593Smuzhiyun hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC) 1608*4882a593Smuzhiyun terminal devices. Valid values: 0..8 1609*4882a593Smuzhiyun hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs. 1610*4882a593Smuzhiyun If specified, z/VM IUCV HVC accepts connections 1611*4882a593Smuzhiyun from listed z/VM user IDs only. 1612*4882a593Smuzhiyun 1613*4882a593Smuzhiyun hvc_dcc.enable= [ARM,ARM64] Enable DCC driver at runtime. For GKI, 1614*4882a593Smuzhiyun disabled at runtime by default to prevent 1615*4882a593Smuzhiyun crashes in devices which do not support DCC. 1616*4882a593Smuzhiyun 1617*4882a593Smuzhiyun hv_nopvspin [X86,HYPER_V] Disables the paravirt spinlock optimizations 1618*4882a593Smuzhiyun which allow the hypervisor to 'idle' the 1619*4882a593Smuzhiyun guest on lock contention. 1620*4882a593Smuzhiyun 1621*4882a593Smuzhiyun keep_bootcon [KNL] 1622*4882a593Smuzhiyun Do not unregister boot console at start. This is only 1623*4882a593Smuzhiyun useful for debugging when something happens in the window 1624*4882a593Smuzhiyun between unregistering the boot console and initializing 1625*4882a593Smuzhiyun the real console. 1626*4882a593Smuzhiyun 1627*4882a593Smuzhiyun i2c_bus= [HW] Override the default board specific I2C bus speed 1628*4882a593Smuzhiyun or register an additional I2C bus that is not 1629*4882a593Smuzhiyun registered from board initialization code. 1630*4882a593Smuzhiyun Format: 1631*4882a593Smuzhiyun <bus_id>,<clkrate> 1632*4882a593Smuzhiyun 1633*4882a593Smuzhiyun i8042.debug [HW] Toggle i8042 debug mode 1634*4882a593Smuzhiyun i8042.unmask_kbd_data 1635*4882a593Smuzhiyun [HW] Enable printing of interrupt data from the KBD port 1636*4882a593Smuzhiyun (disabled by default, and as a pre-condition 1637*4882a593Smuzhiyun requires that i8042.debug=1 be enabled) 1638*4882a593Smuzhiyun i8042.direct [HW] Put keyboard port into non-translated mode 1639*4882a593Smuzhiyun i8042.dumbkbd [HW] Pretend that controller can only read data from 1640*4882a593Smuzhiyun keyboard and cannot control its state 1641*4882a593Smuzhiyun (Don't attempt to blink the leds) 1642*4882a593Smuzhiyun i8042.noaux [HW] Don't check for auxiliary (== mouse) port 1643*4882a593Smuzhiyun i8042.nokbd [HW] Don't check/create keyboard port 1644*4882a593Smuzhiyun i8042.noloop [HW] Disable the AUX Loopback command while probing 1645*4882a593Smuzhiyun for the AUX port 1646*4882a593Smuzhiyun i8042.nomux [HW] Don't check presence of an active multiplexing 1647*4882a593Smuzhiyun controller 1648*4882a593Smuzhiyun i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX 1649*4882a593Smuzhiyun controllers 1650*4882a593Smuzhiyun i8042.notimeout [HW] Ignore timeout condition signalled by controller 1651*4882a593Smuzhiyun i8042.reset [HW] Reset the controller during init, cleanup and 1652*4882a593Smuzhiyun suspend-to-ram transitions, only during s2r 1653*4882a593Smuzhiyun transitions, or never reset 1654*4882a593Smuzhiyun Format: { 1 | Y | y | 0 | N | n } 1655*4882a593Smuzhiyun 1, Y, y: always reset controller 1656*4882a593Smuzhiyun 0, N, n: don't ever reset controller 1657*4882a593Smuzhiyun Default: only on s2r transitions on x86; most other 1658*4882a593Smuzhiyun architectures force reset to be always executed 1659*4882a593Smuzhiyun i8042.unlock [HW] Unlock (ignore) the keylock 1660*4882a593Smuzhiyun i8042.kbdreset [HW] Reset device connected to KBD port 1661*4882a593Smuzhiyun i8042.probe_defer 1662*4882a593Smuzhiyun [HW] Allow deferred probing upon i8042 probe errors 1663*4882a593Smuzhiyun 1664*4882a593Smuzhiyun i810= [HW,DRM] 1665*4882a593Smuzhiyun 1666*4882a593Smuzhiyun i8k.ignore_dmi [HW] Continue probing hardware even if DMI data 1667*4882a593Smuzhiyun indicates that the driver is running on unsupported 1668*4882a593Smuzhiyun hardware. 1669*4882a593Smuzhiyun i8k.force [HW] Activate i8k driver even if SMM BIOS signature 1670*4882a593Smuzhiyun does not match list of supported models. 1671*4882a593Smuzhiyun i8k.power_status 1672*4882a593Smuzhiyun [HW] Report power status in /proc/i8k 1673*4882a593Smuzhiyun (disabled by default) 1674*4882a593Smuzhiyun i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN 1675*4882a593Smuzhiyun capability is set. 1676*4882a593Smuzhiyun 1677*4882a593Smuzhiyun i915.invert_brightness= 1678*4882a593Smuzhiyun [DRM] Invert the sense of the variable that is used to 1679*4882a593Smuzhiyun set the brightness of the panel backlight. Normally a 1680*4882a593Smuzhiyun brightness value of 0 indicates backlight switched off, 1681*4882a593Smuzhiyun and the maximum of the brightness value sets the backlight 1682*4882a593Smuzhiyun to maximum brightness. If this parameter is set to 0 1683*4882a593Smuzhiyun (default) and the machine requires it, or this parameter 1684*4882a593Smuzhiyun is set to 1, a brightness value of 0 sets the backlight 1685*4882a593Smuzhiyun to maximum brightness, and the maximum of the brightness 1686*4882a593Smuzhiyun value switches the backlight off. 1687*4882a593Smuzhiyun -1 -- never invert brightness 1688*4882a593Smuzhiyun 0 -- machine default 1689*4882a593Smuzhiyun 1 -- force brightness inversion 1690*4882a593Smuzhiyun 1691*4882a593Smuzhiyun icn= [HW,ISDN] 1692*4882a593Smuzhiyun Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]] 1693*4882a593Smuzhiyun 1694*4882a593Smuzhiyun ide-core.nodma= [HW] (E)IDE subsystem 1695*4882a593Smuzhiyun Format: =0.0 to prevent dma on hda, =0.1 hdb =1.0 hdc 1696*4882a593Smuzhiyun .vlb_clock .pci_clock .noflush .nohpa .noprobe .nowerr 1697*4882a593Smuzhiyun .cdrom .chs .ignore_cable are additional options 1698*4882a593Smuzhiyun See Documentation/ide/ide.rst. 1699*4882a593Smuzhiyun 1700*4882a593Smuzhiyun ide-generic.probe-mask= [HW] (E)IDE subsystem 1701*4882a593Smuzhiyun Format: <int> 1702*4882a593Smuzhiyun Probe mask for legacy ISA IDE ports. Depending on 1703*4882a593Smuzhiyun platform up to 6 ports are supported, enabled by 1704*4882a593Smuzhiyun setting corresponding bits in the mask to 1. The 1705*4882a593Smuzhiyun default value is 0x0, which has a special meaning. 1706*4882a593Smuzhiyun On systems that have PCI, it triggers scanning the 1707*4882a593Smuzhiyun PCI bus for the first and the second port, which 1708*4882a593Smuzhiyun are then probed. On systems without PCI the value 1709*4882a593Smuzhiyun of 0x0 enables probing the two first ports as if it 1710*4882a593Smuzhiyun was 0x3. 1711*4882a593Smuzhiyun 1712*4882a593Smuzhiyun ide-pci-generic.all-generic-ide [HW] (E)IDE subsystem 1713*4882a593Smuzhiyun Claim all unknown PCI IDE storage controllers. 1714*4882a593Smuzhiyun 1715*4882a593Smuzhiyun idle= [X86] 1716*4882a593Smuzhiyun Format: idle=poll, idle=halt, idle=nomwait 1717*4882a593Smuzhiyun Poll forces a polling idle loop that can slightly 1718*4882a593Smuzhiyun improve the performance of waking up a idle CPU, but 1719*4882a593Smuzhiyun will use a lot of power and make the system run hot. 1720*4882a593Smuzhiyun Not recommended. 1721*4882a593Smuzhiyun idle=halt: Halt is forced to be used for CPU idle. 1722*4882a593Smuzhiyun In such case C2/C3 won't be used again. 1723*4882a593Smuzhiyun idle=nomwait: Disable mwait for CPU C-states 1724*4882a593Smuzhiyun 1725*4882a593Smuzhiyun ieee754= [MIPS] Select IEEE Std 754 conformance mode 1726*4882a593Smuzhiyun Format: { strict | legacy | 2008 | relaxed } 1727*4882a593Smuzhiyun Default: strict 1728*4882a593Smuzhiyun 1729*4882a593Smuzhiyun Choose which programs will be accepted for execution 1730*4882a593Smuzhiyun based on the IEEE 754 NaN encoding(s) supported by 1731*4882a593Smuzhiyun the FPU and the NaN encoding requested with the value 1732*4882a593Smuzhiyun of an ELF file header flag individually set by each 1733*4882a593Smuzhiyun binary. Hardware implementations are permitted to 1734*4882a593Smuzhiyun support either or both of the legacy and the 2008 NaN 1735*4882a593Smuzhiyun encoding mode. 1736*4882a593Smuzhiyun 1737*4882a593Smuzhiyun Available settings are as follows: 1738*4882a593Smuzhiyun strict accept binaries that request a NaN encoding 1739*4882a593Smuzhiyun supported by the FPU 1740*4882a593Smuzhiyun legacy only accept legacy-NaN binaries, if supported 1741*4882a593Smuzhiyun by the FPU 1742*4882a593Smuzhiyun 2008 only accept 2008-NaN binaries, if supported 1743*4882a593Smuzhiyun by the FPU 1744*4882a593Smuzhiyun relaxed accept any binaries regardless of whether 1745*4882a593Smuzhiyun supported by the FPU 1746*4882a593Smuzhiyun 1747*4882a593Smuzhiyun The FPU emulator is always able to support both NaN 1748*4882a593Smuzhiyun encodings, so if no FPU hardware is present or it has 1749*4882a593Smuzhiyun been disabled with 'nofpu', then the settings of 1750*4882a593Smuzhiyun 'legacy' and '2008' strap the emulator accordingly, 1751*4882a593Smuzhiyun 'relaxed' straps the emulator for both legacy-NaN and 1752*4882a593Smuzhiyun 2008-NaN, whereas 'strict' enables legacy-NaN only on 1753*4882a593Smuzhiyun legacy processors and both NaN encodings on MIPS32 or 1754*4882a593Smuzhiyun MIPS64 CPUs. 1755*4882a593Smuzhiyun 1756*4882a593Smuzhiyun The setting for ABS.fmt/NEG.fmt instruction execution 1757*4882a593Smuzhiyun mode generally follows that for the NaN encoding, 1758*4882a593Smuzhiyun except where unsupported by hardware. 1759*4882a593Smuzhiyun 1760*4882a593Smuzhiyun ignore_loglevel [KNL] 1761*4882a593Smuzhiyun Ignore loglevel setting - this will print /all/ 1762*4882a593Smuzhiyun kernel messages to the console. Useful for debugging. 1763*4882a593Smuzhiyun We also add it as printk module parameter, so users 1764*4882a593Smuzhiyun could change it dynamically, usually by 1765*4882a593Smuzhiyun /sys/module/printk/parameters/ignore_loglevel. 1766*4882a593Smuzhiyun 1767*4882a593Smuzhiyun ignore_rlimit_data 1768*4882a593Smuzhiyun Ignore RLIMIT_DATA setting for data mappings, 1769*4882a593Smuzhiyun print warning at first misuse. Can be changed via 1770*4882a593Smuzhiyun /sys/module/kernel/parameters/ignore_rlimit_data. 1771*4882a593Smuzhiyun 1772*4882a593Smuzhiyun ihash_entries= [KNL] 1773*4882a593Smuzhiyun Set number of hash buckets for inode cache. 1774*4882a593Smuzhiyun 1775*4882a593Smuzhiyun ima_appraise= [IMA] appraise integrity measurements 1776*4882a593Smuzhiyun Format: { "off" | "enforce" | "fix" | "log" } 1777*4882a593Smuzhiyun default: "enforce" 1778*4882a593Smuzhiyun 1779*4882a593Smuzhiyun ima_appraise_tcb [IMA] Deprecated. Use ima_policy= instead. 1780*4882a593Smuzhiyun The builtin appraise policy appraises all files 1781*4882a593Smuzhiyun owned by uid=0. 1782*4882a593Smuzhiyun 1783*4882a593Smuzhiyun ima_canonical_fmt [IMA] 1784*4882a593Smuzhiyun Use the canonical format for the binary runtime 1785*4882a593Smuzhiyun measurements, instead of host native format. 1786*4882a593Smuzhiyun 1787*4882a593Smuzhiyun ima_hash= [IMA] 1788*4882a593Smuzhiyun Format: { md5 | sha1 | rmd160 | sha256 | sha384 1789*4882a593Smuzhiyun | sha512 | ... } 1790*4882a593Smuzhiyun default: "sha1" 1791*4882a593Smuzhiyun 1792*4882a593Smuzhiyun The list of supported hash algorithms is defined 1793*4882a593Smuzhiyun in crypto/hash_info.h. 1794*4882a593Smuzhiyun 1795*4882a593Smuzhiyun ima_policy= [IMA] 1796*4882a593Smuzhiyun The builtin policies to load during IMA setup. 1797*4882a593Smuzhiyun Format: "tcb | appraise_tcb | secure_boot | 1798*4882a593Smuzhiyun fail_securely" 1799*4882a593Smuzhiyun 1800*4882a593Smuzhiyun The "tcb" policy measures all programs exec'd, files 1801*4882a593Smuzhiyun mmap'd for exec, and all files opened with the read 1802*4882a593Smuzhiyun mode bit set by either the effective uid (euid=0) or 1803*4882a593Smuzhiyun uid=0. 1804*4882a593Smuzhiyun 1805*4882a593Smuzhiyun The "appraise_tcb" policy appraises the integrity of 1806*4882a593Smuzhiyun all files owned by root. 1807*4882a593Smuzhiyun 1808*4882a593Smuzhiyun The "secure_boot" policy appraises the integrity 1809*4882a593Smuzhiyun of files (eg. kexec kernel image, kernel modules, 1810*4882a593Smuzhiyun firmware, policy, etc) based on file signatures. 1811*4882a593Smuzhiyun 1812*4882a593Smuzhiyun The "fail_securely" policy forces file signature 1813*4882a593Smuzhiyun verification failure also on privileged mounted 1814*4882a593Smuzhiyun filesystems with the SB_I_UNVERIFIABLE_SIGNATURE 1815*4882a593Smuzhiyun flag. 1816*4882a593Smuzhiyun 1817*4882a593Smuzhiyun ima_tcb [IMA] Deprecated. Use ima_policy= instead. 1818*4882a593Smuzhiyun Load a policy which meets the needs of the Trusted 1819*4882a593Smuzhiyun Computing Base. This means IMA will measure all 1820*4882a593Smuzhiyun programs exec'd, files mmap'd for exec, and all files 1821*4882a593Smuzhiyun opened for read by uid=0. 1822*4882a593Smuzhiyun 1823*4882a593Smuzhiyun ima_template= [IMA] 1824*4882a593Smuzhiyun Select one of defined IMA measurements template formats. 1825*4882a593Smuzhiyun Formats: { "ima" | "ima-ng" | "ima-sig" } 1826*4882a593Smuzhiyun Default: "ima-ng" 1827*4882a593Smuzhiyun 1828*4882a593Smuzhiyun ima_template_fmt= 1829*4882a593Smuzhiyun [IMA] Define a custom template format. 1830*4882a593Smuzhiyun Format: { "field1|...|fieldN" } 1831*4882a593Smuzhiyun 1832*4882a593Smuzhiyun ima.ahash_minsize= [IMA] Minimum file size for asynchronous hash usage 1833*4882a593Smuzhiyun Format: <min_file_size> 1834*4882a593Smuzhiyun Set the minimal file size for using asynchronous hash. 1835*4882a593Smuzhiyun If left unspecified, ahash usage is disabled. 1836*4882a593Smuzhiyun 1837*4882a593Smuzhiyun ahash performance varies for different data sizes on 1838*4882a593Smuzhiyun different crypto accelerators. This option can be used 1839*4882a593Smuzhiyun to achieve the best performance for a particular HW. 1840*4882a593Smuzhiyun 1841*4882a593Smuzhiyun ima.ahash_bufsize= [IMA] Asynchronous hash buffer size 1842*4882a593Smuzhiyun Format: <bufsize> 1843*4882a593Smuzhiyun Set hashing buffer size. Default: 4k. 1844*4882a593Smuzhiyun 1845*4882a593Smuzhiyun ahash performance varies for different chunk sizes on 1846*4882a593Smuzhiyun different crypto accelerators. This option can be used 1847*4882a593Smuzhiyun to achieve best performance for particular HW. 1848*4882a593Smuzhiyun 1849*4882a593Smuzhiyun init= [KNL] 1850*4882a593Smuzhiyun Format: <full_path> 1851*4882a593Smuzhiyun Run specified binary instead of /sbin/init as init 1852*4882a593Smuzhiyun process. 1853*4882a593Smuzhiyun 1854*4882a593Smuzhiyun initcall_debug [KNL] Trace initcalls as they are executed. Useful 1855*4882a593Smuzhiyun for working out where the kernel is dying during 1856*4882a593Smuzhiyun startup. 1857*4882a593Smuzhiyun 1858*4882a593Smuzhiyun initcall_blacklist= [KNL] Do not execute a comma-separated list of 1859*4882a593Smuzhiyun initcall functions. Useful for debugging built-in 1860*4882a593Smuzhiyun modules and initcalls. 1861*4882a593Smuzhiyun 1862*4882a593Smuzhiyun initrd= [BOOT] Specify the location of the initial ramdisk 1863*4882a593Smuzhiyun 1864*4882a593Smuzhiyun initrdmem= [KNL] Specify a physical address and size from which to 1865*4882a593Smuzhiyun load the initrd. If an initrd is compiled in or 1866*4882a593Smuzhiyun specified in the bootparams, it takes priority over this 1867*4882a593Smuzhiyun setting. 1868*4882a593Smuzhiyun Format: ss[KMG],nn[KMG] 1869*4882a593Smuzhiyun Default is 0, 0 1870*4882a593Smuzhiyun 1871*4882a593Smuzhiyun init_on_alloc= [MM] Fill newly allocated pages and heap objects with 1872*4882a593Smuzhiyun zeroes. 1873*4882a593Smuzhiyun Format: 0 | 1 1874*4882a593Smuzhiyun Default set by CONFIG_INIT_ON_ALLOC_DEFAULT_ON. 1875*4882a593Smuzhiyun 1876*4882a593Smuzhiyun init_on_free= [MM] Fill freed pages and heap objects with zeroes. 1877*4882a593Smuzhiyun Format: 0 | 1 1878*4882a593Smuzhiyun Default set by CONFIG_INIT_ON_FREE_DEFAULT_ON. 1879*4882a593Smuzhiyun 1880*4882a593Smuzhiyun init_pkru= [X86] Specify the default memory protection keys rights 1881*4882a593Smuzhiyun register contents for all processes. 0x55555554 by 1882*4882a593Smuzhiyun default (disallow access to all but pkey 0). Can 1883*4882a593Smuzhiyun override in debugfs after boot. 1884*4882a593Smuzhiyun 1885*4882a593Smuzhiyun inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver 1886*4882a593Smuzhiyun Format: <irq> 1887*4882a593Smuzhiyun 1888*4882a593Smuzhiyun int_pln_enable [X86] Enable power limit notification interrupt 1889*4882a593Smuzhiyun 1890*4882a593Smuzhiyun integrity_audit=[IMA] 1891*4882a593Smuzhiyun Format: { "0" | "1" } 1892*4882a593Smuzhiyun 0 -- basic integrity auditing messages. (Default) 1893*4882a593Smuzhiyun 1 -- additional integrity auditing messages. 1894*4882a593Smuzhiyun 1895*4882a593Smuzhiyun intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option 1896*4882a593Smuzhiyun on 1897*4882a593Smuzhiyun Enable intel iommu driver. 1898*4882a593Smuzhiyun off 1899*4882a593Smuzhiyun Disable intel iommu driver. 1900*4882a593Smuzhiyun igfx_off [Default Off] 1901*4882a593Smuzhiyun By default, gfx is mapped as normal device. If a gfx 1902*4882a593Smuzhiyun device has a dedicated DMAR unit, the DMAR unit is 1903*4882a593Smuzhiyun bypassed by not enabling DMAR with this option. In 1904*4882a593Smuzhiyun this case, gfx device will use physical address for 1905*4882a593Smuzhiyun DMA. 1906*4882a593Smuzhiyun forcedac [X86-64] 1907*4882a593Smuzhiyun With this option iommu will not optimize to look 1908*4882a593Smuzhiyun for io virtual address below 32-bit forcing dual 1909*4882a593Smuzhiyun address cycle on pci bus for cards supporting greater 1910*4882a593Smuzhiyun than 32-bit addressing. The default is to look 1911*4882a593Smuzhiyun for translation below 32-bit and if not available 1912*4882a593Smuzhiyun then look in the higher range. 1913*4882a593Smuzhiyun strict [Default Off] 1914*4882a593Smuzhiyun With this option on every unmap_single operation will 1915*4882a593Smuzhiyun result in a hardware IOTLB flush operation as opposed 1916*4882a593Smuzhiyun to batching them for performance. 1917*4882a593Smuzhiyun sp_off [Default Off] 1918*4882a593Smuzhiyun By default, super page will be supported if Intel IOMMU 1919*4882a593Smuzhiyun has the capability. With this option, super page will 1920*4882a593Smuzhiyun not be supported. 1921*4882a593Smuzhiyun sm_on [Default Off] 1922*4882a593Smuzhiyun By default, scalable mode will be disabled even if the 1923*4882a593Smuzhiyun hardware advertises that it has support for the scalable 1924*4882a593Smuzhiyun mode translation. With this option set, scalable mode 1925*4882a593Smuzhiyun will be used on hardware which claims to support it. 1926*4882a593Smuzhiyun tboot_noforce [Default Off] 1927*4882a593Smuzhiyun Do not force the Intel IOMMU enabled under tboot. 1928*4882a593Smuzhiyun By default, tboot will force Intel IOMMU on, which 1929*4882a593Smuzhiyun could harm performance of some high-throughput 1930*4882a593Smuzhiyun devices like 40GBit network cards, even if identity 1931*4882a593Smuzhiyun mapping is enabled. 1932*4882a593Smuzhiyun Note that using this option lowers the security 1933*4882a593Smuzhiyun provided by tboot because it makes the system 1934*4882a593Smuzhiyun vulnerable to DMA attacks. 1935*4882a593Smuzhiyun nobounce [Default off] 1936*4882a593Smuzhiyun Disable bounce buffer for untrusted devices such as 1937*4882a593Smuzhiyun the Thunderbolt devices. This will treat the untrusted 1938*4882a593Smuzhiyun devices as the trusted ones, hence might expose security 1939*4882a593Smuzhiyun risks of DMA attacks. 1940*4882a593Smuzhiyun 1941*4882a593Smuzhiyun intel_idle.max_cstate= [KNL,HW,ACPI,X86] 1942*4882a593Smuzhiyun 0 disables intel_idle and fall back on acpi_idle. 1943*4882a593Smuzhiyun 1 to 9 specify maximum depth of C-state. 1944*4882a593Smuzhiyun 1945*4882a593Smuzhiyun intel_pstate= [X86] 1946*4882a593Smuzhiyun disable 1947*4882a593Smuzhiyun Do not enable intel_pstate as the default 1948*4882a593Smuzhiyun scaling driver for the supported processors 1949*4882a593Smuzhiyun passive 1950*4882a593Smuzhiyun Use intel_pstate as a scaling driver, but configure it 1951*4882a593Smuzhiyun to work with generic cpufreq governors (instead of 1952*4882a593Smuzhiyun enabling its internal governor). This mode cannot be 1953*4882a593Smuzhiyun used along with the hardware-managed P-states (HWP) 1954*4882a593Smuzhiyun feature. 1955*4882a593Smuzhiyun force 1956*4882a593Smuzhiyun Enable intel_pstate on systems that prohibit it by default 1957*4882a593Smuzhiyun in favor of acpi-cpufreq. Forcing the intel_pstate driver 1958*4882a593Smuzhiyun instead of acpi-cpufreq may disable platform features, such 1959*4882a593Smuzhiyun as thermal controls and power capping, that rely on ACPI 1960*4882a593Smuzhiyun P-States information being indicated to OSPM and therefore 1961*4882a593Smuzhiyun should be used with caution. This option does not work with 1962*4882a593Smuzhiyun processors that aren't supported by the intel_pstate driver 1963*4882a593Smuzhiyun or on platforms that use pcc-cpufreq instead of acpi-cpufreq. 1964*4882a593Smuzhiyun no_hwp 1965*4882a593Smuzhiyun Do not enable hardware P state control (HWP) 1966*4882a593Smuzhiyun if available. 1967*4882a593Smuzhiyun hwp_only 1968*4882a593Smuzhiyun Only load intel_pstate on systems which support 1969*4882a593Smuzhiyun hardware P state control (HWP) if available. 1970*4882a593Smuzhiyun support_acpi_ppc 1971*4882a593Smuzhiyun Enforce ACPI _PPC performance limits. If the Fixed ACPI 1972*4882a593Smuzhiyun Description Table, specifies preferred power management 1973*4882a593Smuzhiyun profile as "Enterprise Server" or "Performance Server", 1974*4882a593Smuzhiyun then this feature is turned on by default. 1975*4882a593Smuzhiyun per_cpu_perf_limits 1976*4882a593Smuzhiyun Allow per-logical-CPU P-State performance control limits using 1977*4882a593Smuzhiyun cpufreq sysfs interface 1978*4882a593Smuzhiyun 1979*4882a593Smuzhiyun intremap= [X86-64, Intel-IOMMU] 1980*4882a593Smuzhiyun on enable Interrupt Remapping (default) 1981*4882a593Smuzhiyun off disable Interrupt Remapping 1982*4882a593Smuzhiyun nosid disable Source ID checking 1983*4882a593Smuzhiyun no_x2apic_optout 1984*4882a593Smuzhiyun BIOS x2APIC opt-out request will be ignored 1985*4882a593Smuzhiyun nopost disable Interrupt Posting 1986*4882a593Smuzhiyun 1987*4882a593Smuzhiyun iomem= Disable strict checking of access to MMIO memory 1988*4882a593Smuzhiyun strict regions from userspace. 1989*4882a593Smuzhiyun relaxed 1990*4882a593Smuzhiyun 1991*4882a593Smuzhiyun iommu= [X86] 1992*4882a593Smuzhiyun off 1993*4882a593Smuzhiyun force 1994*4882a593Smuzhiyun noforce 1995*4882a593Smuzhiyun biomerge 1996*4882a593Smuzhiyun panic 1997*4882a593Smuzhiyun nopanic 1998*4882a593Smuzhiyun merge 1999*4882a593Smuzhiyun nomerge 2000*4882a593Smuzhiyun soft 2001*4882a593Smuzhiyun pt [X86] 2002*4882a593Smuzhiyun nopt [X86] 2003*4882a593Smuzhiyun nobypass [PPC/POWERNV] 2004*4882a593Smuzhiyun Disable IOMMU bypass, using IOMMU for PCI devices. 2005*4882a593Smuzhiyun 2006*4882a593Smuzhiyun iommu.strict= [ARM64] Configure TLB invalidation behaviour 2007*4882a593Smuzhiyun Format: { "0" | "1" } 2008*4882a593Smuzhiyun 0 - Lazy mode. 2009*4882a593Smuzhiyun Request that DMA unmap operations use deferred 2010*4882a593Smuzhiyun invalidation of hardware TLBs, for increased 2011*4882a593Smuzhiyun throughput at the cost of reduced device isolation. 2012*4882a593Smuzhiyun Will fall back to strict mode if not supported by 2013*4882a593Smuzhiyun the relevant IOMMU driver. 2014*4882a593Smuzhiyun 1 - Strict mode (default). 2015*4882a593Smuzhiyun DMA unmap operations invalidate IOMMU hardware TLBs 2016*4882a593Smuzhiyun synchronously. 2017*4882a593Smuzhiyun 2018*4882a593Smuzhiyun iommu.passthrough= 2019*4882a593Smuzhiyun [ARM64, X86] Configure DMA to bypass the IOMMU by default. 2020*4882a593Smuzhiyun Format: { "0" | "1" } 2021*4882a593Smuzhiyun 0 - Use IOMMU translation for DMA. 2022*4882a593Smuzhiyun 1 - Bypass the IOMMU for DMA. 2023*4882a593Smuzhiyun unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH. 2024*4882a593Smuzhiyun 2025*4882a593Smuzhiyun io7= [HW] IO7 for Marvel-based Alpha systems 2026*4882a593Smuzhiyun See comment before marvel_specify_io7 in 2027*4882a593Smuzhiyun arch/alpha/kernel/core_marvel.c. 2028*4882a593Smuzhiyun 2029*4882a593Smuzhiyun io_delay= [X86] I/O delay method 2030*4882a593Smuzhiyun 0x80 2031*4882a593Smuzhiyun Standard port 0x80 based delay 2032*4882a593Smuzhiyun 0xed 2033*4882a593Smuzhiyun Alternate port 0xed based delay (needed on some systems) 2034*4882a593Smuzhiyun udelay 2035*4882a593Smuzhiyun Simple two microseconds delay 2036*4882a593Smuzhiyun none 2037*4882a593Smuzhiyun No delay 2038*4882a593Smuzhiyun 2039*4882a593Smuzhiyun ip= [IP_PNP] 2040*4882a593Smuzhiyun See Documentation/admin-guide/nfs/nfsroot.rst. 2041*4882a593Smuzhiyun 2042*4882a593Smuzhiyun ipcmni_extend [KNL] Extend the maximum number of unique System V 2043*4882a593Smuzhiyun IPC identifiers from 32,768 to 16,777,216. 2044*4882a593Smuzhiyun 2045*4882a593Smuzhiyun irqaffinity= [SMP] Set the default irq affinity mask 2046*4882a593Smuzhiyun The argument is a cpu list, as described above. 2047*4882a593Smuzhiyun 2048*4882a593Smuzhiyun irqchip.gicv2_force_probe= 2049*4882a593Smuzhiyun [ARM, ARM64] 2050*4882a593Smuzhiyun Format: <bool> 2051*4882a593Smuzhiyun Force the kernel to look for the second 4kB page 2052*4882a593Smuzhiyun of a GICv2 controller even if the memory range 2053*4882a593Smuzhiyun exposed by the device tree is too small. 2054*4882a593Smuzhiyun 2055*4882a593Smuzhiyun irqchip.gicv3_nolpi= 2056*4882a593Smuzhiyun [ARM, ARM64] 2057*4882a593Smuzhiyun Force the kernel to ignore the availability of 2058*4882a593Smuzhiyun LPIs (and by consequence ITSs). Intended for system 2059*4882a593Smuzhiyun that use the kernel as a bootloader, and thus want 2060*4882a593Smuzhiyun to let secondary kernels in charge of setting up 2061*4882a593Smuzhiyun LPIs. 2062*4882a593Smuzhiyun 2063*4882a593Smuzhiyun irqchip.gicv3_pseudo_nmi= [ARM64] 2064*4882a593Smuzhiyun Enables support for pseudo-NMIs in the kernel. This 2065*4882a593Smuzhiyun requires the kernel to be built with 2066*4882a593Smuzhiyun CONFIG_ARM64_PSEUDO_NMI. 2067*4882a593Smuzhiyun 2068*4882a593Smuzhiyun irqfixup [HW] 2069*4882a593Smuzhiyun When an interrupt is not handled search all handlers 2070*4882a593Smuzhiyun for it. Intended to get systems with badly broken 2071*4882a593Smuzhiyun firmware running. 2072*4882a593Smuzhiyun 2073*4882a593Smuzhiyun irqpoll [HW] 2074*4882a593Smuzhiyun When an interrupt is not handled search all handlers 2075*4882a593Smuzhiyun for it. Also check all handlers each timer 2076*4882a593Smuzhiyun interrupt. Intended to get systems with badly broken 2077*4882a593Smuzhiyun firmware running. 2078*4882a593Smuzhiyun 2079*4882a593Smuzhiyun isapnp= [ISAPNP] 2080*4882a593Smuzhiyun Format: <RDP>,<reset>,<pci_scan>,<verbosity> 2081*4882a593Smuzhiyun 2082*4882a593Smuzhiyun isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance. 2083*4882a593Smuzhiyun [Deprecated - use cpusets instead] 2084*4882a593Smuzhiyun Format: [flag-list,]<cpu-list> 2085*4882a593Smuzhiyun 2086*4882a593Smuzhiyun Specify one or more CPUs to isolate from disturbances 2087*4882a593Smuzhiyun specified in the flag list (default: domain): 2088*4882a593Smuzhiyun 2089*4882a593Smuzhiyun nohz 2090*4882a593Smuzhiyun Disable the tick when a single task runs. 2091*4882a593Smuzhiyun 2092*4882a593Smuzhiyun A residual 1Hz tick is offloaded to workqueues, which you 2093*4882a593Smuzhiyun need to affine to housekeeping through the global 2094*4882a593Smuzhiyun workqueue's affinity configured via the 2095*4882a593Smuzhiyun /sys/devices/virtual/workqueue/cpumask sysfs file, or 2096*4882a593Smuzhiyun by using the 'domain' flag described below. 2097*4882a593Smuzhiyun 2098*4882a593Smuzhiyun NOTE: by default the global workqueue runs on all CPUs, 2099*4882a593Smuzhiyun so to protect individual CPUs the 'cpumask' file has to 2100*4882a593Smuzhiyun be configured manually after bootup. 2101*4882a593Smuzhiyun 2102*4882a593Smuzhiyun domain 2103*4882a593Smuzhiyun Isolate from the general SMP balancing and scheduling 2104*4882a593Smuzhiyun algorithms. Note that performing domain isolation this way 2105*4882a593Smuzhiyun is irreversible: it's not possible to bring back a CPU to 2106*4882a593Smuzhiyun the domains once isolated through isolcpus. It's strongly 2107*4882a593Smuzhiyun advised to use cpusets instead to disable scheduler load 2108*4882a593Smuzhiyun balancing through the "cpuset.sched_load_balance" file. 2109*4882a593Smuzhiyun It offers a much more flexible interface where CPUs can 2110*4882a593Smuzhiyun move in and out of an isolated set anytime. 2111*4882a593Smuzhiyun 2112*4882a593Smuzhiyun You can move a process onto or off an "isolated" CPU via 2113*4882a593Smuzhiyun the CPU affinity syscalls or cpuset. 2114*4882a593Smuzhiyun <cpu number> begins at 0 and the maximum value is 2115*4882a593Smuzhiyun "number of CPUs in system - 1". 2116*4882a593Smuzhiyun 2117*4882a593Smuzhiyun managed_irq 2118*4882a593Smuzhiyun 2119*4882a593Smuzhiyun Isolate from being targeted by managed interrupts 2120*4882a593Smuzhiyun which have an interrupt mask containing isolated 2121*4882a593Smuzhiyun CPUs. The affinity of managed interrupts is 2122*4882a593Smuzhiyun handled by the kernel and cannot be changed via 2123*4882a593Smuzhiyun the /proc/irq/* interfaces. 2124*4882a593Smuzhiyun 2125*4882a593Smuzhiyun This isolation is best effort and only effective 2126*4882a593Smuzhiyun if the automatically assigned interrupt mask of a 2127*4882a593Smuzhiyun device queue contains isolated and housekeeping 2128*4882a593Smuzhiyun CPUs. If housekeeping CPUs are online then such 2129*4882a593Smuzhiyun interrupts are directed to the housekeeping CPU 2130*4882a593Smuzhiyun so that IO submitted on the housekeeping CPU 2131*4882a593Smuzhiyun cannot disturb the isolated CPU. 2132*4882a593Smuzhiyun 2133*4882a593Smuzhiyun If a queue's affinity mask contains only isolated 2134*4882a593Smuzhiyun CPUs then this parameter has no effect on the 2135*4882a593Smuzhiyun interrupt routing decision, though interrupts are 2136*4882a593Smuzhiyun only delivered when tasks running on those 2137*4882a593Smuzhiyun isolated CPUs submit IO. IO submitted on 2138*4882a593Smuzhiyun housekeeping CPUs has no influence on those 2139*4882a593Smuzhiyun queues. 2140*4882a593Smuzhiyun 2141*4882a593Smuzhiyun The format of <cpu-list> is described above. 2142*4882a593Smuzhiyun 2143*4882a593Smuzhiyun iucv= [HW,NET] 2144*4882a593Smuzhiyun 2145*4882a593Smuzhiyun ivrs_ioapic [HW,X86-64] 2146*4882a593Smuzhiyun Provide an override to the IOAPIC-ID<->DEVICE-ID 2147*4882a593Smuzhiyun mapping provided in the IVRS ACPI table. For 2148*4882a593Smuzhiyun example, to map IOAPIC-ID decimal 10 to 2149*4882a593Smuzhiyun PCI device 00:14.0 write the parameter as: 2150*4882a593Smuzhiyun ivrs_ioapic[10]=00:14.0 2151*4882a593Smuzhiyun 2152*4882a593Smuzhiyun ivrs_hpet [HW,X86-64] 2153*4882a593Smuzhiyun Provide an override to the HPET-ID<->DEVICE-ID 2154*4882a593Smuzhiyun mapping provided in the IVRS ACPI table. For 2155*4882a593Smuzhiyun example, to map HPET-ID decimal 0 to 2156*4882a593Smuzhiyun PCI device 00:14.0 write the parameter as: 2157*4882a593Smuzhiyun ivrs_hpet[0]=00:14.0 2158*4882a593Smuzhiyun 2159*4882a593Smuzhiyun ivrs_acpihid [HW,X86-64] 2160*4882a593Smuzhiyun Provide an override to the ACPI-HID:UID<->DEVICE-ID 2161*4882a593Smuzhiyun mapping provided in the IVRS ACPI table. For 2162*4882a593Smuzhiyun example, to map UART-HID:UID AMD0020:0 to 2163*4882a593Smuzhiyun PCI device 00:14.5 write the parameter as: 2164*4882a593Smuzhiyun ivrs_acpihid[00:14.5]=AMD0020:0 2165*4882a593Smuzhiyun 2166*4882a593Smuzhiyun js= [HW,JOY] Analog joystick 2167*4882a593Smuzhiyun See Documentation/input/joydev/joystick.rst. 2168*4882a593Smuzhiyun 2169*4882a593Smuzhiyun nokaslr [KNL] 2170*4882a593Smuzhiyun When CONFIG_RANDOMIZE_BASE is set, this disables 2171*4882a593Smuzhiyun kernel and module base offset ASLR (Address Space 2172*4882a593Smuzhiyun Layout Randomization). 2173*4882a593Smuzhiyun 2174*4882a593Smuzhiyun kasan_multi_shot 2175*4882a593Smuzhiyun [KNL] Enforce KASAN (Kernel Address Sanitizer) to print 2176*4882a593Smuzhiyun report on every invalid memory access. Without this 2177*4882a593Smuzhiyun parameter KASAN will print report only for the first 2178*4882a593Smuzhiyun invalid access. 2179*4882a593Smuzhiyun 2180*4882a593Smuzhiyun keepinitrd [HW,ARM] 2181*4882a593Smuzhiyun 2182*4882a593Smuzhiyun kernelcore= [KNL,X86,IA-64,PPC] 2183*4882a593Smuzhiyun Format: nn[KMGTPE] | nn% | "mirror" 2184*4882a593Smuzhiyun This parameter specifies the amount of memory usable by 2185*4882a593Smuzhiyun the kernel for non-movable allocations. The requested 2186*4882a593Smuzhiyun amount is spread evenly throughout all nodes in the 2187*4882a593Smuzhiyun system as ZONE_NORMAL. The remaining memory is used for 2188*4882a593Smuzhiyun movable memory in its own zone, ZONE_MOVABLE. In the 2189*4882a593Smuzhiyun event, a node is too small to have both ZONE_NORMAL and 2190*4882a593Smuzhiyun ZONE_MOVABLE, kernelcore memory will take priority and 2191*4882a593Smuzhiyun other nodes will have a larger ZONE_MOVABLE. 2192*4882a593Smuzhiyun 2193*4882a593Smuzhiyun ZONE_MOVABLE is used for the allocation of pages that 2194*4882a593Smuzhiyun may be reclaimed or moved by the page migration 2195*4882a593Smuzhiyun subsystem. Note that allocations like PTEs-from-HighMem 2196*4882a593Smuzhiyun still use the HighMem zone if it exists, and the Normal 2197*4882a593Smuzhiyun zone if it does not. 2198*4882a593Smuzhiyun 2199*4882a593Smuzhiyun It is possible to specify the exact amount of memory in 2200*4882a593Smuzhiyun the form of "nn[KMGTPE]", a percentage of total system 2201*4882a593Smuzhiyun memory in the form of "nn%", or "mirror". If "mirror" 2202*4882a593Smuzhiyun option is specified, mirrored (reliable) memory is used 2203*4882a593Smuzhiyun for non-movable allocations and remaining memory is used 2204*4882a593Smuzhiyun for Movable pages. "nn[KMGTPE]", "nn%", and "mirror" 2205*4882a593Smuzhiyun are exclusive, so you cannot specify multiple forms. 2206*4882a593Smuzhiyun 2207*4882a593Smuzhiyun kgdbdbgp= [KGDB,HW] kgdb over EHCI usb debug port. 2208*4882a593Smuzhiyun Format: <Controller#>[,poll interval] 2209*4882a593Smuzhiyun The controller # is the number of the ehci usb debug 2210*4882a593Smuzhiyun port as it is probed via PCI. The poll interval is 2211*4882a593Smuzhiyun optional and is the number seconds in between 2212*4882a593Smuzhiyun each poll cycle to the debug port in case you need 2213*4882a593Smuzhiyun the functionality for interrupting the kernel with 2214*4882a593Smuzhiyun gdb or control-c on the dbgp connection. When 2215*4882a593Smuzhiyun not using this parameter you use sysrq-g to break into 2216*4882a593Smuzhiyun the kernel debugger. 2217*4882a593Smuzhiyun 2218*4882a593Smuzhiyun kgdboc= [KGDB,HW] kgdb over consoles. 2219*4882a593Smuzhiyun Requires a tty driver that supports console polling, 2220*4882a593Smuzhiyun or a supported polling keyboard driver (non-usb). 2221*4882a593Smuzhiyun Serial only format: <serial_device>[,baud] 2222*4882a593Smuzhiyun keyboard only format: kbd 2223*4882a593Smuzhiyun keyboard and serial format: kbd,<serial_device>[,baud] 2224*4882a593Smuzhiyun Optional Kernel mode setting: 2225*4882a593Smuzhiyun kms, kbd format: kms,kbd 2226*4882a593Smuzhiyun kms, kbd and serial format: kms,kbd,<ser_dev>[,baud] 2227*4882a593Smuzhiyun 2228*4882a593Smuzhiyun kgdboc_earlycon= [KGDB,HW] 2229*4882a593Smuzhiyun If the boot console provides the ability to read 2230*4882a593Smuzhiyun characters and can work in polling mode, you can use 2231*4882a593Smuzhiyun this parameter to tell kgdb to use it as a backend 2232*4882a593Smuzhiyun until the normal console is registered. Intended to 2233*4882a593Smuzhiyun be used together with the kgdboc parameter which 2234*4882a593Smuzhiyun specifies the normal console to transition to. 2235*4882a593Smuzhiyun 2236*4882a593Smuzhiyun The name of the early console should be specified 2237*4882a593Smuzhiyun as the value of this parameter. Note that the name of 2238*4882a593Smuzhiyun the early console might be different than the tty 2239*4882a593Smuzhiyun name passed to kgdboc. It's OK to leave the value 2240*4882a593Smuzhiyun blank and the first boot console that implements 2241*4882a593Smuzhiyun read() will be picked. 2242*4882a593Smuzhiyun 2243*4882a593Smuzhiyun kgdbwait [KGDB] Stop kernel execution and enter the 2244*4882a593Smuzhiyun kernel debugger at the earliest opportunity. 2245*4882a593Smuzhiyun 2246*4882a593Smuzhiyun kmac= [MIPS] Korina ethernet MAC address. 2247*4882a593Smuzhiyun Configure the RouterBoard 532 series on-chip 2248*4882a593Smuzhiyun Ethernet adapter MAC address. 2249*4882a593Smuzhiyun 2250*4882a593Smuzhiyun kmemleak= [KNL] Boot-time kmemleak enable/disable 2251*4882a593Smuzhiyun Valid arguments: on, off 2252*4882a593Smuzhiyun Default: on 2253*4882a593Smuzhiyun Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y, 2254*4882a593Smuzhiyun the default is off. 2255*4882a593Smuzhiyun 2256*4882a593Smuzhiyun kprobe_event=[probe-list] 2257*4882a593Smuzhiyun [FTRACE] Add kprobe events and enable at boot time. 2258*4882a593Smuzhiyun The probe-list is a semicolon delimited list of probe 2259*4882a593Smuzhiyun definitions. Each definition is same as kprobe_events 2260*4882a593Smuzhiyun interface, but the parameters are comma delimited. 2261*4882a593Smuzhiyun For example, to add a kprobe event on vfs_read with 2262*4882a593Smuzhiyun arg1 and arg2, add to the command line; 2263*4882a593Smuzhiyun 2264*4882a593Smuzhiyun kprobe_event=p,vfs_read,$arg1,$arg2 2265*4882a593Smuzhiyun 2266*4882a593Smuzhiyun See also Documentation/trace/kprobetrace.rst "Kernel 2267*4882a593Smuzhiyun Boot Parameter" section. 2268*4882a593Smuzhiyun 2269*4882a593Smuzhiyun kpti= [ARM64] Control page table isolation of user 2270*4882a593Smuzhiyun and kernel address spaces. 2271*4882a593Smuzhiyun Default: enabled on cores which need mitigation. 2272*4882a593Smuzhiyun 0: force disabled 2273*4882a593Smuzhiyun 1: force enabled 2274*4882a593Smuzhiyun 2275*4882a593Smuzhiyun kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs. 2276*4882a593Smuzhiyun Default is 0 (don't ignore, but inject #GP) 2277*4882a593Smuzhiyun 2278*4882a593Smuzhiyun kvm.enable_vmware_backdoor=[KVM] Support VMware backdoor PV interface. 2279*4882a593Smuzhiyun Default is false (don't support). 2280*4882a593Smuzhiyun 2281*4882a593Smuzhiyun kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit 2282*4882a593Smuzhiyun KVM MMU at runtime. 2283*4882a593Smuzhiyun Default is 0 (off) 2284*4882a593Smuzhiyun 2285*4882a593Smuzhiyun kvm.nx_huge_pages= 2286*4882a593Smuzhiyun [KVM] Controls the software workaround for the 2287*4882a593Smuzhiyun X86_BUG_ITLB_MULTIHIT bug. 2288*4882a593Smuzhiyun force : Always deploy workaround. 2289*4882a593Smuzhiyun off : Never deploy workaround. 2290*4882a593Smuzhiyun auto : Deploy workaround based on the presence of 2291*4882a593Smuzhiyun X86_BUG_ITLB_MULTIHIT. 2292*4882a593Smuzhiyun 2293*4882a593Smuzhiyun Default is 'auto'. 2294*4882a593Smuzhiyun 2295*4882a593Smuzhiyun If the software workaround is enabled for the host, 2296*4882a593Smuzhiyun guests do need not to enable it for nested guests. 2297*4882a593Smuzhiyun 2298*4882a593Smuzhiyun kvm.nx_huge_pages_recovery_ratio= 2299*4882a593Smuzhiyun [KVM] Controls how many 4KiB pages are periodically zapped 2300*4882a593Smuzhiyun back to huge pages. 0 disables the recovery, otherwise if 2301*4882a593Smuzhiyun the value is N KVM will zap 1/Nth of the 4KiB pages every 2302*4882a593Smuzhiyun minute. The default is 60. 2303*4882a593Smuzhiyun 2304*4882a593Smuzhiyun kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM. 2305*4882a593Smuzhiyun Default is 1 (enabled) 2306*4882a593Smuzhiyun 2307*4882a593Smuzhiyun kvm-amd.npt= [KVM,AMD] Disable nested paging (virtualized MMU) 2308*4882a593Smuzhiyun for all guests. 2309*4882a593Smuzhiyun Default is 1 (enabled) if in 64-bit or 32-bit PAE mode. 2310*4882a593Smuzhiyun 2311*4882a593Smuzhiyun kvm-arm.mode= 2312*4882a593Smuzhiyun [KVM,ARM] Select one of KVM/arm64's modes of operation. 2313*4882a593Smuzhiyun 2314*4882a593Smuzhiyun nvhe: Standard nVHE-based mode, without support for 2315*4882a593Smuzhiyun protected guests. 2316*4882a593Smuzhiyun 2317*4882a593Smuzhiyun protected: nVHE-based mode with support for guests whose 2318*4882a593Smuzhiyun state is kept private from the host. 2319*4882a593Smuzhiyun Not valid if the kernel is running in EL2. 2320*4882a593Smuzhiyun 2321*4882a593Smuzhiyun Defaults to VHE/nVHE based on hardware support and 2322*4882a593Smuzhiyun the value of CONFIG_ARM64_VHE. 2323*4882a593Smuzhiyun 2324*4882a593Smuzhiyun kvm-arm.vgic_v3_group0_trap= 2325*4882a593Smuzhiyun [KVM,ARM] Trap guest accesses to GICv3 group-0 2326*4882a593Smuzhiyun system registers 2327*4882a593Smuzhiyun 2328*4882a593Smuzhiyun kvm-arm.vgic_v3_group1_trap= 2329*4882a593Smuzhiyun [KVM,ARM] Trap guest accesses to GICv3 group-1 2330*4882a593Smuzhiyun system registers 2331*4882a593Smuzhiyun 2332*4882a593Smuzhiyun kvm-arm.vgic_v3_common_trap= 2333*4882a593Smuzhiyun [KVM,ARM] Trap guest accesses to GICv3 common 2334*4882a593Smuzhiyun system registers 2335*4882a593Smuzhiyun 2336*4882a593Smuzhiyun kvm-arm.vgic_v4_enable= 2337*4882a593Smuzhiyun [KVM,ARM] Allow use of GICv4 for direct injection of 2338*4882a593Smuzhiyun LPIs. 2339*4882a593Smuzhiyun 2340*4882a593Smuzhiyun kvm_cma_resv_ratio=n [PPC] 2341*4882a593Smuzhiyun Reserves given percentage from system memory area for 2342*4882a593Smuzhiyun contiguous memory allocation for KVM hash pagetable 2343*4882a593Smuzhiyun allocation. 2344*4882a593Smuzhiyun By default it reserves 5% of total system memory. 2345*4882a593Smuzhiyun Format: <integer> 2346*4882a593Smuzhiyun Default: 5 2347*4882a593Smuzhiyun 2348*4882a593Smuzhiyun kvm-intel.ept= [KVM,Intel] Disable extended page tables 2349*4882a593Smuzhiyun (virtualized MMU) support on capable Intel chips. 2350*4882a593Smuzhiyun Default is 1 (enabled) 2351*4882a593Smuzhiyun 2352*4882a593Smuzhiyun kvm-intel.emulate_invalid_guest_state= 2353*4882a593Smuzhiyun [KVM,Intel] Disable emulation of invalid guest state. 2354*4882a593Smuzhiyun Ignored if kvm-intel.enable_unrestricted_guest=1, as 2355*4882a593Smuzhiyun guest state is never invalid for unrestricted guests. 2356*4882a593Smuzhiyun This param doesn't apply to nested guests (L2), as KVM 2357*4882a593Smuzhiyun never emulates invalid L2 guest state. 2358*4882a593Smuzhiyun Default is 1 (enabled) 2359*4882a593Smuzhiyun 2360*4882a593Smuzhiyun kvm-intel.flexpriority= 2361*4882a593Smuzhiyun [KVM,Intel] Disable FlexPriority feature (TPR shadow). 2362*4882a593Smuzhiyun Default is 1 (enabled) 2363*4882a593Smuzhiyun 2364*4882a593Smuzhiyun kvm-intel.nested= 2365*4882a593Smuzhiyun [KVM,Intel] Enable VMX nesting (nVMX). 2366*4882a593Smuzhiyun Default is 0 (disabled) 2367*4882a593Smuzhiyun 2368*4882a593Smuzhiyun kvm-intel.unrestricted_guest= 2369*4882a593Smuzhiyun [KVM,Intel] Disable unrestricted guest feature 2370*4882a593Smuzhiyun (virtualized real and unpaged mode) on capable 2371*4882a593Smuzhiyun Intel chips. Default is 1 (enabled) 2372*4882a593Smuzhiyun 2373*4882a593Smuzhiyun kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault 2374*4882a593Smuzhiyun CVE-2018-3620. 2375*4882a593Smuzhiyun 2376*4882a593Smuzhiyun Valid arguments: never, cond, always 2377*4882a593Smuzhiyun 2378*4882a593Smuzhiyun always: L1D cache flush on every VMENTER. 2379*4882a593Smuzhiyun cond: Flush L1D on VMENTER only when the code between 2380*4882a593Smuzhiyun VMEXIT and VMENTER can leak host memory. 2381*4882a593Smuzhiyun never: Disables the mitigation 2382*4882a593Smuzhiyun 2383*4882a593Smuzhiyun Default is cond (do L1 cache flush in specific instances) 2384*4882a593Smuzhiyun 2385*4882a593Smuzhiyun kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification 2386*4882a593Smuzhiyun feature (tagged TLBs) on capable Intel chips. 2387*4882a593Smuzhiyun Default is 1 (enabled) 2388*4882a593Smuzhiyun 2389*4882a593Smuzhiyun l1tf= [X86] Control mitigation of the L1TF vulnerability on 2390*4882a593Smuzhiyun affected CPUs 2391*4882a593Smuzhiyun 2392*4882a593Smuzhiyun The kernel PTE inversion protection is unconditionally 2393*4882a593Smuzhiyun enabled and cannot be disabled. 2394*4882a593Smuzhiyun 2395*4882a593Smuzhiyun full 2396*4882a593Smuzhiyun Provides all available mitigations for the 2397*4882a593Smuzhiyun L1TF vulnerability. Disables SMT and 2398*4882a593Smuzhiyun enables all mitigations in the 2399*4882a593Smuzhiyun hypervisors, i.e. unconditional L1D flush. 2400*4882a593Smuzhiyun 2401*4882a593Smuzhiyun SMT control and L1D flush control via the 2402*4882a593Smuzhiyun sysfs interface is still possible after 2403*4882a593Smuzhiyun boot. Hypervisors will issue a warning 2404*4882a593Smuzhiyun when the first VM is started in a 2405*4882a593Smuzhiyun potentially insecure configuration, 2406*4882a593Smuzhiyun i.e. SMT enabled or L1D flush disabled. 2407*4882a593Smuzhiyun 2408*4882a593Smuzhiyun full,force 2409*4882a593Smuzhiyun Same as 'full', but disables SMT and L1D 2410*4882a593Smuzhiyun flush runtime control. Implies the 2411*4882a593Smuzhiyun 'nosmt=force' command line option. 2412*4882a593Smuzhiyun (i.e. sysfs control of SMT is disabled.) 2413*4882a593Smuzhiyun 2414*4882a593Smuzhiyun flush 2415*4882a593Smuzhiyun Leaves SMT enabled and enables the default 2416*4882a593Smuzhiyun hypervisor mitigation, i.e. conditional 2417*4882a593Smuzhiyun L1D flush. 2418*4882a593Smuzhiyun 2419*4882a593Smuzhiyun SMT control and L1D flush control via the 2420*4882a593Smuzhiyun sysfs interface is still possible after 2421*4882a593Smuzhiyun boot. Hypervisors will issue a warning 2422*4882a593Smuzhiyun when the first VM is started in a 2423*4882a593Smuzhiyun potentially insecure configuration, 2424*4882a593Smuzhiyun i.e. SMT enabled or L1D flush disabled. 2425*4882a593Smuzhiyun 2426*4882a593Smuzhiyun flush,nosmt 2427*4882a593Smuzhiyun 2428*4882a593Smuzhiyun Disables SMT and enables the default 2429*4882a593Smuzhiyun hypervisor mitigation. 2430*4882a593Smuzhiyun 2431*4882a593Smuzhiyun SMT control and L1D flush control via the 2432*4882a593Smuzhiyun sysfs interface is still possible after 2433*4882a593Smuzhiyun boot. Hypervisors will issue a warning 2434*4882a593Smuzhiyun when the first VM is started in a 2435*4882a593Smuzhiyun potentially insecure configuration, 2436*4882a593Smuzhiyun i.e. SMT enabled or L1D flush disabled. 2437*4882a593Smuzhiyun 2438*4882a593Smuzhiyun flush,nowarn 2439*4882a593Smuzhiyun Same as 'flush', but hypervisors will not 2440*4882a593Smuzhiyun warn when a VM is started in a potentially 2441*4882a593Smuzhiyun insecure configuration. 2442*4882a593Smuzhiyun 2443*4882a593Smuzhiyun off 2444*4882a593Smuzhiyun Disables hypervisor mitigations and doesn't 2445*4882a593Smuzhiyun emit any warnings. 2446*4882a593Smuzhiyun It also drops the swap size and available 2447*4882a593Smuzhiyun RAM limit restriction on both hypervisor and 2448*4882a593Smuzhiyun bare metal. 2449*4882a593Smuzhiyun 2450*4882a593Smuzhiyun Default is 'flush'. 2451*4882a593Smuzhiyun 2452*4882a593Smuzhiyun For details see: Documentation/admin-guide/hw-vuln/l1tf.rst 2453*4882a593Smuzhiyun 2454*4882a593Smuzhiyun l2cr= [PPC] 2455*4882a593Smuzhiyun 2456*4882a593Smuzhiyun l3cr= [PPC] 2457*4882a593Smuzhiyun 2458*4882a593Smuzhiyun lapic [X86-32,APIC] Enable the local APIC even if BIOS 2459*4882a593Smuzhiyun disabled it. 2460*4882a593Smuzhiyun 2461*4882a593Smuzhiyun lapic= [X86,APIC] Do not use TSC deadline 2462*4882a593Smuzhiyun value for LAPIC timer one-shot implementation. Default 2463*4882a593Smuzhiyun back to the programmable timer unit in the LAPIC. 2464*4882a593Smuzhiyun Format: notscdeadline 2465*4882a593Smuzhiyun 2466*4882a593Smuzhiyun lapic_timer_c2_ok [X86,APIC] trust the local apic timer 2467*4882a593Smuzhiyun in C2 power state. 2468*4882a593Smuzhiyun 2469*4882a593Smuzhiyun libata.dma= [LIBATA] DMA control 2470*4882a593Smuzhiyun libata.dma=0 Disable all PATA and SATA DMA 2471*4882a593Smuzhiyun libata.dma=1 PATA and SATA Disk DMA only 2472*4882a593Smuzhiyun libata.dma=2 ATAPI (CDROM) DMA only 2473*4882a593Smuzhiyun libata.dma=4 Compact Flash DMA only 2474*4882a593Smuzhiyun Combinations also work, so libata.dma=3 enables DMA 2475*4882a593Smuzhiyun for disks and CDROMs, but not CFs. 2476*4882a593Smuzhiyun 2477*4882a593Smuzhiyun libata.ignore_hpa= [LIBATA] Ignore HPA limit 2478*4882a593Smuzhiyun libata.ignore_hpa=0 keep BIOS limits (default) 2479*4882a593Smuzhiyun libata.ignore_hpa=1 ignore limits, using full disk 2480*4882a593Smuzhiyun 2481*4882a593Smuzhiyun libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume 2482*4882a593Smuzhiyun when set. 2483*4882a593Smuzhiyun Format: <int> 2484*4882a593Smuzhiyun 2485*4882a593Smuzhiyun libata.force= [LIBATA] Force configurations. The format is comma 2486*4882a593Smuzhiyun separated list of "[ID:]VAL" where ID is 2487*4882a593Smuzhiyun PORT[.DEVICE]. PORT and DEVICE are decimal numbers 2488*4882a593Smuzhiyun matching port, link or device. Basically, it matches 2489*4882a593Smuzhiyun the ATA ID string printed on console by libata. If 2490*4882a593Smuzhiyun the whole ID part is omitted, the last PORT and DEVICE 2491*4882a593Smuzhiyun values are used. If ID hasn't been specified yet, the 2492*4882a593Smuzhiyun configuration applies to all ports, links and devices. 2493*4882a593Smuzhiyun 2494*4882a593Smuzhiyun If only DEVICE is omitted, the parameter applies to 2495*4882a593Smuzhiyun the port and all links and devices behind it. DEVICE 2496*4882a593Smuzhiyun number of 0 either selects the first device or the 2497*4882a593Smuzhiyun first fan-out link behind PMP device. It does not 2498*4882a593Smuzhiyun select the host link. DEVICE number of 15 selects the 2499*4882a593Smuzhiyun host link and device attached to it. 2500*4882a593Smuzhiyun 2501*4882a593Smuzhiyun The VAL specifies the configuration to force. As long 2502*4882a593Smuzhiyun as there's no ambiguity shortcut notation is allowed. 2503*4882a593Smuzhiyun For example, both 1.5 and 1.5G would work for 1.5Gbps. 2504*4882a593Smuzhiyun The following configurations can be forced. 2505*4882a593Smuzhiyun 2506*4882a593Smuzhiyun * Cable type: 40c, 80c, short40c, unk, ign or sata. 2507*4882a593Smuzhiyun Any ID with matching PORT is used. 2508*4882a593Smuzhiyun 2509*4882a593Smuzhiyun * SATA link speed limit: 1.5Gbps or 3.0Gbps. 2510*4882a593Smuzhiyun 2511*4882a593Smuzhiyun * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7]. 2512*4882a593Smuzhiyun udma[/][16,25,33,44,66,100,133] notation is also 2513*4882a593Smuzhiyun allowed. 2514*4882a593Smuzhiyun 2515*4882a593Smuzhiyun * [no]ncq: Turn on or off NCQ. 2516*4882a593Smuzhiyun 2517*4882a593Smuzhiyun * [no]ncqtrim: Turn off queued DSM TRIM. 2518*4882a593Smuzhiyun 2519*4882a593Smuzhiyun * nohrst, nosrst, norst: suppress hard, soft 2520*4882a593Smuzhiyun and both resets. 2521*4882a593Smuzhiyun 2522*4882a593Smuzhiyun * rstonce: only attempt one reset during 2523*4882a593Smuzhiyun hot-unplug link recovery 2524*4882a593Smuzhiyun 2525*4882a593Smuzhiyun * dump_id: dump IDENTIFY data. 2526*4882a593Smuzhiyun 2527*4882a593Smuzhiyun * atapi_dmadir: Enable ATAPI DMADIR bridge support 2528*4882a593Smuzhiyun 2529*4882a593Smuzhiyun * disable: Disable this device. 2530*4882a593Smuzhiyun 2531*4882a593Smuzhiyun If there are multiple matching configurations changing 2532*4882a593Smuzhiyun the same attribute, the last one is used. 2533*4882a593Smuzhiyun 2534*4882a593Smuzhiyun memblock=debug [KNL] Enable memblock debug messages. 2535*4882a593Smuzhiyun 2536*4882a593Smuzhiyun android12_only.will_be_removed_soon.memblock_nomap_remove= [KNL] 2537*4882a593Smuzhiyun Setting this to true through kernel command line will 2538*4882a593Smuzhiyun call memblock_remove on the regions marked with no-map 2539*4882a593Smuzhiyun property thereby saving memory by removing page structs 2540*4882a593Smuzhiyun for those regions. By default this is set to false. 2541*4882a593Smuzhiyun 2542*4882a593Smuzhiyun load_ramdisk= [RAM] [Deprecated] 2543*4882a593Smuzhiyun 2544*4882a593Smuzhiyun lockd.nlm_grace_period=P [NFS] Assign grace period. 2545*4882a593Smuzhiyun Format: <integer> 2546*4882a593Smuzhiyun 2547*4882a593Smuzhiyun lockd.nlm_tcpport=N [NFS] Assign TCP port. 2548*4882a593Smuzhiyun Format: <integer> 2549*4882a593Smuzhiyun 2550*4882a593Smuzhiyun lockd.nlm_timeout=T [NFS] Assign timeout value. 2551*4882a593Smuzhiyun Format: <integer> 2552*4882a593Smuzhiyun 2553*4882a593Smuzhiyun lockd.nlm_udpport=M [NFS] Assign UDP port. 2554*4882a593Smuzhiyun Format: <integer> 2555*4882a593Smuzhiyun 2556*4882a593Smuzhiyun lockdown= [SECURITY] 2557*4882a593Smuzhiyun { integrity | confidentiality } 2558*4882a593Smuzhiyun Enable the kernel lockdown feature. If set to 2559*4882a593Smuzhiyun integrity, kernel features that allow userland to 2560*4882a593Smuzhiyun modify the running kernel are disabled. If set to 2561*4882a593Smuzhiyun confidentiality, kernel features that allow userland 2562*4882a593Smuzhiyun to extract confidential information from the kernel 2563*4882a593Smuzhiyun are also disabled. 2564*4882a593Smuzhiyun 2565*4882a593Smuzhiyun locktorture.nreaders_stress= [KNL] 2566*4882a593Smuzhiyun Set the number of locking read-acquisition kthreads. 2567*4882a593Smuzhiyun Defaults to being automatically set based on the 2568*4882a593Smuzhiyun number of online CPUs. 2569*4882a593Smuzhiyun 2570*4882a593Smuzhiyun locktorture.nwriters_stress= [KNL] 2571*4882a593Smuzhiyun Set the number of locking write-acquisition kthreads. 2572*4882a593Smuzhiyun 2573*4882a593Smuzhiyun locktorture.onoff_holdoff= [KNL] 2574*4882a593Smuzhiyun Set time (s) after boot for CPU-hotplug testing. 2575*4882a593Smuzhiyun 2576*4882a593Smuzhiyun locktorture.onoff_interval= [KNL] 2577*4882a593Smuzhiyun Set time (s) between CPU-hotplug operations, or 2578*4882a593Smuzhiyun zero to disable CPU-hotplug testing. 2579*4882a593Smuzhiyun 2580*4882a593Smuzhiyun locktorture.shuffle_interval= [KNL] 2581*4882a593Smuzhiyun Set task-shuffle interval (jiffies). Shuffling 2582*4882a593Smuzhiyun tasks allows some CPUs to go into dyntick-idle 2583*4882a593Smuzhiyun mode during the locktorture test. 2584*4882a593Smuzhiyun 2585*4882a593Smuzhiyun locktorture.shutdown_secs= [KNL] 2586*4882a593Smuzhiyun Set time (s) after boot system shutdown. This 2587*4882a593Smuzhiyun is useful for hands-off automated testing. 2588*4882a593Smuzhiyun 2589*4882a593Smuzhiyun locktorture.stat_interval= [KNL] 2590*4882a593Smuzhiyun Time (s) between statistics printk()s. 2591*4882a593Smuzhiyun 2592*4882a593Smuzhiyun locktorture.stutter= [KNL] 2593*4882a593Smuzhiyun Time (s) to stutter testing, for example, 2594*4882a593Smuzhiyun specifying five seconds causes the test to run for 2595*4882a593Smuzhiyun five seconds, wait for five seconds, and so on. 2596*4882a593Smuzhiyun This tests the locking primitive's ability to 2597*4882a593Smuzhiyun transition abruptly to and from idle. 2598*4882a593Smuzhiyun 2599*4882a593Smuzhiyun locktorture.torture_type= [KNL] 2600*4882a593Smuzhiyun Specify the locking implementation to test. 2601*4882a593Smuzhiyun 2602*4882a593Smuzhiyun locktorture.verbose= [KNL] 2603*4882a593Smuzhiyun Enable additional printk() statements. 2604*4882a593Smuzhiyun 2605*4882a593Smuzhiyun logibm.irq= [HW,MOUSE] Logitech Bus Mouse Driver 2606*4882a593Smuzhiyun Format: <irq> 2607*4882a593Smuzhiyun 2608*4882a593Smuzhiyun loglevel= All Kernel Messages with a loglevel smaller than the 2609*4882a593Smuzhiyun console loglevel will be printed to the console. It can 2610*4882a593Smuzhiyun also be changed with klogd or other programs. The 2611*4882a593Smuzhiyun loglevels are defined as follows: 2612*4882a593Smuzhiyun 2613*4882a593Smuzhiyun 0 (KERN_EMERG) system is unusable 2614*4882a593Smuzhiyun 1 (KERN_ALERT) action must be taken immediately 2615*4882a593Smuzhiyun 2 (KERN_CRIT) critical conditions 2616*4882a593Smuzhiyun 3 (KERN_ERR) error conditions 2617*4882a593Smuzhiyun 4 (KERN_WARNING) warning conditions 2618*4882a593Smuzhiyun 5 (KERN_NOTICE) normal but significant condition 2619*4882a593Smuzhiyun 6 (KERN_INFO) informational 2620*4882a593Smuzhiyun 7 (KERN_DEBUG) debug-level messages 2621*4882a593Smuzhiyun 2622*4882a593Smuzhiyun log_buf_len=n[KMG] Sets the size of the printk ring buffer, 2623*4882a593Smuzhiyun in bytes. n must be a power of two and greater 2624*4882a593Smuzhiyun than the minimal size. The minimal size is defined 2625*4882a593Smuzhiyun by LOG_BUF_SHIFT kernel config parameter. There is 2626*4882a593Smuzhiyun also CONFIG_LOG_CPU_MAX_BUF_SHIFT config parameter 2627*4882a593Smuzhiyun that allows to increase the default size depending on 2628*4882a593Smuzhiyun the number of CPUs. See init/Kconfig for more details. 2629*4882a593Smuzhiyun 2630*4882a593Smuzhiyun logo.nologo [FB] Disables display of the built-in Linux logo. 2631*4882a593Smuzhiyun This may be used to provide more screen space for 2632*4882a593Smuzhiyun kernel log messages and is useful when debugging 2633*4882a593Smuzhiyun kernel boot problems. 2634*4882a593Smuzhiyun 2635*4882a593Smuzhiyun lp=0 [LP] Specify parallel ports to use, e.g, 2636*4882a593Smuzhiyun lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses 2637*4882a593Smuzhiyun lp=reset first parallel port). 'lp=0' disables the 2638*4882a593Smuzhiyun lp=auto printer driver. 'lp=reset' (which can be 2639*4882a593Smuzhiyun specified in addition to the ports) causes 2640*4882a593Smuzhiyun attached printers to be reset. Using 2641*4882a593Smuzhiyun lp=port1,port2,... specifies the parallel ports 2642*4882a593Smuzhiyun to associate lp devices with, starting with 2643*4882a593Smuzhiyun lp0. A port specification may be 'none' to skip 2644*4882a593Smuzhiyun that lp device, or a parport name such as 2645*4882a593Smuzhiyun 'parport0'. Specifying 'lp=auto' instead of a 2646*4882a593Smuzhiyun port specification list means that device IDs 2647*4882a593Smuzhiyun from each port should be examined, to see if 2648*4882a593Smuzhiyun an IEEE 1284-compliant printer is attached; if 2649*4882a593Smuzhiyun so, the driver will manage that printer. 2650*4882a593Smuzhiyun See also header of drivers/char/lp.c. 2651*4882a593Smuzhiyun 2652*4882a593Smuzhiyun lpj=n [KNL] 2653*4882a593Smuzhiyun Sets loops_per_jiffy to given constant, thus avoiding 2654*4882a593Smuzhiyun time-consuming boot-time autodetection (up to 250 ms per 2655*4882a593Smuzhiyun CPU). 0 enables autodetection (default). To determine 2656*4882a593Smuzhiyun the correct value for your kernel, boot with normal 2657*4882a593Smuzhiyun autodetection and see what value is printed. Note that 2658*4882a593Smuzhiyun on SMP systems the preset will be applied to all CPUs, 2659*4882a593Smuzhiyun which is likely to cause problems if your CPUs need 2660*4882a593Smuzhiyun significantly divergent settings. An incorrect value 2661*4882a593Smuzhiyun will cause delays in the kernel to be wrong, leading to 2662*4882a593Smuzhiyun unpredictable I/O errors and other breakage. Although 2663*4882a593Smuzhiyun unlikely, in the extreme case this might damage your 2664*4882a593Smuzhiyun hardware. 2665*4882a593Smuzhiyun 2666*4882a593Smuzhiyun ltpc= [NET] 2667*4882a593Smuzhiyun Format: <io>,<irq>,<dma> 2668*4882a593Smuzhiyun 2669*4882a593Smuzhiyun lsm.debug [SECURITY] Enable LSM initialization debugging output. 2670*4882a593Smuzhiyun 2671*4882a593Smuzhiyun lsm=lsm1,...,lsmN 2672*4882a593Smuzhiyun [SECURITY] Choose order of LSM initialization. This 2673*4882a593Smuzhiyun overrides CONFIG_LSM, and the "security=" parameter. 2674*4882a593Smuzhiyun 2675*4882a593Smuzhiyun machvec= [IA-64] Force the use of a particular machine-vector 2676*4882a593Smuzhiyun (machvec) in a generic kernel. 2677*4882a593Smuzhiyun Example: machvec=hpzx1 2678*4882a593Smuzhiyun 2679*4882a593Smuzhiyun machtype= [Loongson] Share the same kernel image file between 2680*4882a593Smuzhiyun different yeeloong laptops. 2681*4882a593Smuzhiyun Example: machtype=lemote-yeeloong-2f-7inch 2682*4882a593Smuzhiyun 2683*4882a593Smuzhiyun max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater 2684*4882a593Smuzhiyun than or equal to this physical address is ignored. 2685*4882a593Smuzhiyun 2686*4882a593Smuzhiyun maxcpus= [SMP] Maximum number of processors that an SMP kernel 2687*4882a593Smuzhiyun will bring up during bootup. maxcpus=n : n >= 0 limits 2688*4882a593Smuzhiyun the kernel to bring up 'n' processors. Surely after 2689*4882a593Smuzhiyun bootup you can bring up the other plugged cpu by executing 2690*4882a593Smuzhiyun "echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus 2691*4882a593Smuzhiyun only takes effect during system bootup. 2692*4882a593Smuzhiyun While n=0 is a special case, it is equivalent to "nosmp", 2693*4882a593Smuzhiyun which also disables the IO APIC. 2694*4882a593Smuzhiyun 2695*4882a593Smuzhiyun max_loop= [LOOP] The number of loop block devices that get 2696*4882a593Smuzhiyun (loop.max_loop) unconditionally pre-created at init time. The default 2697*4882a593Smuzhiyun number is configured by BLK_DEV_LOOP_MIN_COUNT. Instead 2698*4882a593Smuzhiyun of statically allocating a predefined number, loop 2699*4882a593Smuzhiyun devices can be requested on-demand with the 2700*4882a593Smuzhiyun /dev/loop-control interface. 2701*4882a593Smuzhiyun 2702*4882a593Smuzhiyun mce [X86-32] Machine Check Exception 2703*4882a593Smuzhiyun 2704*4882a593Smuzhiyun mce=option [X86-64] See Documentation/x86/x86_64/boot-options.rst 2705*4882a593Smuzhiyun 2706*4882a593Smuzhiyun md= [HW] RAID subsystems devices and level 2707*4882a593Smuzhiyun See Documentation/admin-guide/md.rst. 2708*4882a593Smuzhiyun 2709*4882a593Smuzhiyun mdacon= [MDA] 2710*4882a593Smuzhiyun Format: <first>,<last> 2711*4882a593Smuzhiyun Specifies range of consoles to be captured by the MDA. 2712*4882a593Smuzhiyun 2713*4882a593Smuzhiyun mds= [X86,INTEL] 2714*4882a593Smuzhiyun Control mitigation for the Micro-architectural Data 2715*4882a593Smuzhiyun Sampling (MDS) vulnerability. 2716*4882a593Smuzhiyun 2717*4882a593Smuzhiyun Certain CPUs are vulnerable to an exploit against CPU 2718*4882a593Smuzhiyun internal buffers which can forward information to a 2719*4882a593Smuzhiyun disclosure gadget under certain conditions. 2720*4882a593Smuzhiyun 2721*4882a593Smuzhiyun In vulnerable processors, the speculatively 2722*4882a593Smuzhiyun forwarded data can be used in a cache side channel 2723*4882a593Smuzhiyun attack, to access data to which the attacker does 2724*4882a593Smuzhiyun not have direct access. 2725*4882a593Smuzhiyun 2726*4882a593Smuzhiyun This parameter controls the MDS mitigation. The 2727*4882a593Smuzhiyun options are: 2728*4882a593Smuzhiyun 2729*4882a593Smuzhiyun full - Enable MDS mitigation on vulnerable CPUs 2730*4882a593Smuzhiyun full,nosmt - Enable MDS mitigation and disable 2731*4882a593Smuzhiyun SMT on vulnerable CPUs 2732*4882a593Smuzhiyun off - Unconditionally disable MDS mitigation 2733*4882a593Smuzhiyun 2734*4882a593Smuzhiyun On TAA-affected machines, mds=off can be prevented by 2735*4882a593Smuzhiyun an active TAA mitigation as both vulnerabilities are 2736*4882a593Smuzhiyun mitigated with the same mechanism so in order to disable 2737*4882a593Smuzhiyun this mitigation, you need to specify tsx_async_abort=off 2738*4882a593Smuzhiyun too. 2739*4882a593Smuzhiyun 2740*4882a593Smuzhiyun Not specifying this option is equivalent to 2741*4882a593Smuzhiyun mds=full. 2742*4882a593Smuzhiyun 2743*4882a593Smuzhiyun For details see: Documentation/admin-guide/hw-vuln/mds.rst 2744*4882a593Smuzhiyun 2745*4882a593Smuzhiyun mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory 2746*4882a593Smuzhiyun Amount of memory to be used in cases as follows: 2747*4882a593Smuzhiyun 2748*4882a593Smuzhiyun 1 for test; 2749*4882a593Smuzhiyun 2 when the kernel is not able to see the whole system memory; 2750*4882a593Smuzhiyun 3 memory that lies after 'mem=' boundary is excluded from 2751*4882a593Smuzhiyun the hypervisor, then assigned to KVM guests. 2752*4882a593Smuzhiyun 2753*4882a593Smuzhiyun [X86] Work as limiting max address. Use together 2754*4882a593Smuzhiyun with memmap= to avoid physical address space collisions. 2755*4882a593Smuzhiyun Without memmap= PCI devices could be placed at addresses 2756*4882a593Smuzhiyun belonging to unused RAM. 2757*4882a593Smuzhiyun 2758*4882a593Smuzhiyun Note that this only takes effects during boot time since 2759*4882a593Smuzhiyun in above case 3, memory may need be hot added after boot 2760*4882a593Smuzhiyun if system memory of hypervisor is not sufficient. 2761*4882a593Smuzhiyun 2762*4882a593Smuzhiyun mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel 2763*4882a593Smuzhiyun memory. 2764*4882a593Smuzhiyun 2765*4882a593Smuzhiyun memchunk=nn[KMG] 2766*4882a593Smuzhiyun [KNL,SH] Allow user to override the default size for 2767*4882a593Smuzhiyun per-device physically contiguous DMA buffers. 2768*4882a593Smuzhiyun 2769*4882a593Smuzhiyun memhp_default_state=online/offline 2770*4882a593Smuzhiyun [KNL] Set the initial state for the memory hotplug 2771*4882a593Smuzhiyun onlining policy. If not specified, the default value is 2772*4882a593Smuzhiyun set according to the 2773*4882a593Smuzhiyun CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel config 2774*4882a593Smuzhiyun option. 2775*4882a593Smuzhiyun See Documentation/admin-guide/mm/memory-hotplug.rst. 2776*4882a593Smuzhiyun 2777*4882a593Smuzhiyun memmap=exactmap [KNL,X86] Enable setting of an exact 2778*4882a593Smuzhiyun E820 memory map, as specified by the user. 2779*4882a593Smuzhiyun Such memmap=exactmap lines can be constructed based on 2780*4882a593Smuzhiyun BIOS output or other requirements. See the memmap=nn@ss 2781*4882a593Smuzhiyun option description. 2782*4882a593Smuzhiyun 2783*4882a593Smuzhiyun memmap=nn[KMG]@ss[KMG] 2784*4882a593Smuzhiyun [KNL] Force usage of a specific region of memory. 2785*4882a593Smuzhiyun Region of memory to be used is from ss to ss+nn. 2786*4882a593Smuzhiyun If @ss[KMG] is omitted, it is equivalent to mem=nn[KMG], 2787*4882a593Smuzhiyun which limits max address to nn[KMG]. 2788*4882a593Smuzhiyun Multiple different regions can be specified, 2789*4882a593Smuzhiyun comma delimited. 2790*4882a593Smuzhiyun Example: 2791*4882a593Smuzhiyun memmap=100M@2G,100M#3G,1G!1024G 2792*4882a593Smuzhiyun 2793*4882a593Smuzhiyun memmap=nn[KMG]#ss[KMG] 2794*4882a593Smuzhiyun [KNL,ACPI] Mark specific memory as ACPI data. 2795*4882a593Smuzhiyun Region of memory to be marked is from ss to ss+nn. 2796*4882a593Smuzhiyun 2797*4882a593Smuzhiyun memmap=nn[KMG]$ss[KMG] 2798*4882a593Smuzhiyun [KNL,ACPI] Mark specific memory as reserved. 2799*4882a593Smuzhiyun Region of memory to be reserved is from ss to ss+nn. 2800*4882a593Smuzhiyun Example: Exclude memory from 0x18690000-0x1869ffff 2801*4882a593Smuzhiyun memmap=64K$0x18690000 2802*4882a593Smuzhiyun or 2803*4882a593Smuzhiyun memmap=0x10000$0x18690000 2804*4882a593Smuzhiyun Some bootloaders may need an escape character before '$', 2805*4882a593Smuzhiyun like Grub2, otherwise '$' and the following number 2806*4882a593Smuzhiyun will be eaten. 2807*4882a593Smuzhiyun 2808*4882a593Smuzhiyun memmap=nn[KMG]!ss[KMG] 2809*4882a593Smuzhiyun [KNL,X86] Mark specific memory as protected. 2810*4882a593Smuzhiyun Region of memory to be used, from ss to ss+nn. 2811*4882a593Smuzhiyun The memory region may be marked as e820 type 12 (0xc) 2812*4882a593Smuzhiyun and is NVDIMM or ADR memory. 2813*4882a593Smuzhiyun 2814*4882a593Smuzhiyun memmap=<size>%<offset>-<oldtype>+<newtype> 2815*4882a593Smuzhiyun [KNL,ACPI] Convert memory within the specified region 2816*4882a593Smuzhiyun from <oldtype> to <newtype>. If "-<oldtype>" is left 2817*4882a593Smuzhiyun out, the whole region will be marked as <newtype>, 2818*4882a593Smuzhiyun even if previously unavailable. If "+<newtype>" is left 2819*4882a593Smuzhiyun out, matching memory will be removed. Types are 2820*4882a593Smuzhiyun specified as e820 types, e.g., 1 = RAM, 2 = reserved, 2821*4882a593Smuzhiyun 3 = ACPI, 12 = PRAM. 2822*4882a593Smuzhiyun 2823*4882a593Smuzhiyun memory_corruption_check=0/1 [X86] 2824*4882a593Smuzhiyun Some BIOSes seem to corrupt the first 64k of 2825*4882a593Smuzhiyun memory when doing things like suspend/resume. 2826*4882a593Smuzhiyun Setting this option will scan the memory 2827*4882a593Smuzhiyun looking for corruption. Enabling this will 2828*4882a593Smuzhiyun both detect corruption and prevent the kernel 2829*4882a593Smuzhiyun from using the memory being corrupted. 2830*4882a593Smuzhiyun However, its intended as a diagnostic tool; if 2831*4882a593Smuzhiyun repeatable BIOS-originated corruption always 2832*4882a593Smuzhiyun affects the same memory, you can use memmap= 2833*4882a593Smuzhiyun to prevent the kernel from using that memory. 2834*4882a593Smuzhiyun 2835*4882a593Smuzhiyun memory_corruption_check_size=size [X86] 2836*4882a593Smuzhiyun By default it checks for corruption in the low 2837*4882a593Smuzhiyun 64k, making this memory unavailable for normal 2838*4882a593Smuzhiyun use. Use this parameter to scan for 2839*4882a593Smuzhiyun corruption in more or less memory. 2840*4882a593Smuzhiyun 2841*4882a593Smuzhiyun memory_corruption_check_period=seconds [X86] 2842*4882a593Smuzhiyun By default it checks for corruption every 60 2843*4882a593Smuzhiyun seconds. Use this parameter to check at some 2844*4882a593Smuzhiyun other rate. 0 disables periodic checking. 2845*4882a593Smuzhiyun 2846*4882a593Smuzhiyun memtest= [KNL,X86,ARM,PPC] Enable memtest 2847*4882a593Smuzhiyun Format: <integer> 2848*4882a593Smuzhiyun default : 0 <disable> 2849*4882a593Smuzhiyun Specifies the number of memtest passes to be 2850*4882a593Smuzhiyun performed. Each pass selects another test 2851*4882a593Smuzhiyun pattern from a given set of patterns. Memtest 2852*4882a593Smuzhiyun fills the memory with this pattern, validates 2853*4882a593Smuzhiyun memory contents and reserves bad memory 2854*4882a593Smuzhiyun regions that are detected. 2855*4882a593Smuzhiyun 2856*4882a593Smuzhiyun mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control 2857*4882a593Smuzhiyun Valid arguments: on, off 2858*4882a593Smuzhiyun Default (depends on kernel configuration option): 2859*4882a593Smuzhiyun on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y) 2860*4882a593Smuzhiyun off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n) 2861*4882a593Smuzhiyun mem_encrypt=on: Activate SME 2862*4882a593Smuzhiyun mem_encrypt=off: Do not activate SME 2863*4882a593Smuzhiyun 2864*4882a593Smuzhiyun Refer to Documentation/virt/kvm/amd-memory-encryption.rst 2865*4882a593Smuzhiyun for details on when memory encryption can be activated. 2866*4882a593Smuzhiyun 2867*4882a593Smuzhiyun mem_sleep_default= [SUSPEND] Default system suspend mode: 2868*4882a593Smuzhiyun s2idle - Suspend-To-Idle 2869*4882a593Smuzhiyun shallow - Power-On Suspend or equivalent (if supported) 2870*4882a593Smuzhiyun deep - Suspend-To-RAM or equivalent (if supported) 2871*4882a593Smuzhiyun See Documentation/admin-guide/pm/sleep-states.rst. 2872*4882a593Smuzhiyun 2873*4882a593Smuzhiyun meye.*= [HW] Set MotionEye Camera parameters 2874*4882a593Smuzhiyun See Documentation/admin-guide/media/meye.rst. 2875*4882a593Smuzhiyun 2876*4882a593Smuzhiyun mfgpt_irq= [IA-32] Specify the IRQ to use for the 2877*4882a593Smuzhiyun Multi-Function General Purpose Timers on AMD Geode 2878*4882a593Smuzhiyun platforms. 2879*4882a593Smuzhiyun 2880*4882a593Smuzhiyun mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms when 2881*4882a593Smuzhiyun the BIOS has incorrectly applied a workaround. TinyBIOS 2882*4882a593Smuzhiyun version 0.98 is known to be affected, 0.99 fixes the 2883*4882a593Smuzhiyun problem by letting the user disable the workaround. 2884*4882a593Smuzhiyun 2885*4882a593Smuzhiyun mga= [HW,DRM] 2886*4882a593Smuzhiyun 2887*4882a593Smuzhiyun min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this 2888*4882a593Smuzhiyun physical address is ignored. 2889*4882a593Smuzhiyun 2890*4882a593Smuzhiyun mini2440= [ARM,HW,KNL] 2891*4882a593Smuzhiyun Format:[0..2][b][c][t] 2892*4882a593Smuzhiyun Default: "0tb" 2893*4882a593Smuzhiyun MINI2440 configuration specification: 2894*4882a593Smuzhiyun 0 - The attached screen is the 3.5" TFT 2895*4882a593Smuzhiyun 1 - The attached screen is the 7" TFT 2896*4882a593Smuzhiyun 2 - The VGA Shield is attached (1024x768) 2897*4882a593Smuzhiyun Leaving out the screen size parameter will not load 2898*4882a593Smuzhiyun the TFT driver, and the framebuffer will be left 2899*4882a593Smuzhiyun unconfigured. 2900*4882a593Smuzhiyun b - Enable backlight. The TFT backlight pin will be 2901*4882a593Smuzhiyun linked to the kernel VESA blanking code and a GPIO 2902*4882a593Smuzhiyun LED. This parameter is not necessary when using the 2903*4882a593Smuzhiyun VGA shield. 2904*4882a593Smuzhiyun c - Enable the s3c camera interface. 2905*4882a593Smuzhiyun t - Reserved for enabling touchscreen support. The 2906*4882a593Smuzhiyun touchscreen support is not enabled in the mainstream 2907*4882a593Smuzhiyun kernel as of 2.6.30, a preliminary port can be found 2908*4882a593Smuzhiyun in the "bleeding edge" mini2440 support kernel at 2909*4882a593Smuzhiyun https://repo.or.cz/w/linux-2.6/mini2440.git 2910*4882a593Smuzhiyun 2911*4882a593Smuzhiyun mitigations= 2912*4882a593Smuzhiyun [X86,PPC,S390,ARM64] Control optional mitigations for 2913*4882a593Smuzhiyun CPU vulnerabilities. This is a set of curated, 2914*4882a593Smuzhiyun arch-independent options, each of which is an 2915*4882a593Smuzhiyun aggregation of existing arch-specific options. 2916*4882a593Smuzhiyun 2917*4882a593Smuzhiyun off 2918*4882a593Smuzhiyun Disable all optional CPU mitigations. This 2919*4882a593Smuzhiyun improves system performance, but it may also 2920*4882a593Smuzhiyun expose users to several CPU vulnerabilities. 2921*4882a593Smuzhiyun Equivalent to: nopti [X86,PPC] 2922*4882a593Smuzhiyun kpti=0 [ARM64] 2923*4882a593Smuzhiyun nospectre_v1 [X86,PPC] 2924*4882a593Smuzhiyun nobp=0 [S390] 2925*4882a593Smuzhiyun nospectre_v2 [X86,PPC,S390,ARM64] 2926*4882a593Smuzhiyun spectre_v2_user=off [X86] 2927*4882a593Smuzhiyun spec_store_bypass_disable=off [X86,PPC] 2928*4882a593Smuzhiyun ssbd=force-off [ARM64] 2929*4882a593Smuzhiyun l1tf=off [X86] 2930*4882a593Smuzhiyun mds=off [X86] 2931*4882a593Smuzhiyun tsx_async_abort=off [X86] 2932*4882a593Smuzhiyun kvm.nx_huge_pages=off [X86] 2933*4882a593Smuzhiyun no_entry_flush [PPC] 2934*4882a593Smuzhiyun no_uaccess_flush [PPC] 2935*4882a593Smuzhiyun mmio_stale_data=off [X86] 2936*4882a593Smuzhiyun retbleed=off [X86] 2937*4882a593Smuzhiyun 2938*4882a593Smuzhiyun Exceptions: 2939*4882a593Smuzhiyun This does not have any effect on 2940*4882a593Smuzhiyun kvm.nx_huge_pages when 2941*4882a593Smuzhiyun kvm.nx_huge_pages=force. 2942*4882a593Smuzhiyun 2943*4882a593Smuzhiyun auto (default) 2944*4882a593Smuzhiyun Mitigate all CPU vulnerabilities, but leave SMT 2945*4882a593Smuzhiyun enabled, even if it's vulnerable. This is for 2946*4882a593Smuzhiyun users who don't want to be surprised by SMT 2947*4882a593Smuzhiyun getting disabled across kernel upgrades, or who 2948*4882a593Smuzhiyun have other ways of avoiding SMT-based attacks. 2949*4882a593Smuzhiyun Equivalent to: (default behavior) 2950*4882a593Smuzhiyun 2951*4882a593Smuzhiyun auto,nosmt 2952*4882a593Smuzhiyun Mitigate all CPU vulnerabilities, disabling SMT 2953*4882a593Smuzhiyun if needed. This is for users who always want to 2954*4882a593Smuzhiyun be fully mitigated, even if it means losing SMT. 2955*4882a593Smuzhiyun Equivalent to: l1tf=flush,nosmt [X86] 2956*4882a593Smuzhiyun mds=full,nosmt [X86] 2957*4882a593Smuzhiyun tsx_async_abort=full,nosmt [X86] 2958*4882a593Smuzhiyun mmio_stale_data=full,nosmt [X86] 2959*4882a593Smuzhiyun retbleed=auto,nosmt [X86] 2960*4882a593Smuzhiyun 2961*4882a593Smuzhiyun mminit_loglevel= 2962*4882a593Smuzhiyun [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this 2963*4882a593Smuzhiyun parameter allows control of the logging verbosity for 2964*4882a593Smuzhiyun the additional memory initialisation checks. A value 2965*4882a593Smuzhiyun of 0 disables mminit logging and a level of 4 will 2966*4882a593Smuzhiyun log everything. Information is printed at KERN_DEBUG 2967*4882a593Smuzhiyun so loglevel=8 may also need to be specified. 2968*4882a593Smuzhiyun 2969*4882a593Smuzhiyun mmio_stale_data= 2970*4882a593Smuzhiyun [X86,INTEL] Control mitigation for the Processor 2971*4882a593Smuzhiyun MMIO Stale Data vulnerabilities. 2972*4882a593Smuzhiyun 2973*4882a593Smuzhiyun Processor MMIO Stale Data is a class of 2974*4882a593Smuzhiyun vulnerabilities that may expose data after an MMIO 2975*4882a593Smuzhiyun operation. Exposed data could originate or end in 2976*4882a593Smuzhiyun the same CPU buffers as affected by MDS and TAA. 2977*4882a593Smuzhiyun Therefore, similar to MDS and TAA, the mitigation 2978*4882a593Smuzhiyun is to clear the affected CPU buffers. 2979*4882a593Smuzhiyun 2980*4882a593Smuzhiyun This parameter controls the mitigation. The 2981*4882a593Smuzhiyun options are: 2982*4882a593Smuzhiyun 2983*4882a593Smuzhiyun full - Enable mitigation on vulnerable CPUs 2984*4882a593Smuzhiyun 2985*4882a593Smuzhiyun full,nosmt - Enable mitigation and disable SMT on 2986*4882a593Smuzhiyun vulnerable CPUs. 2987*4882a593Smuzhiyun 2988*4882a593Smuzhiyun off - Unconditionally disable mitigation 2989*4882a593Smuzhiyun 2990*4882a593Smuzhiyun On MDS or TAA affected machines, 2991*4882a593Smuzhiyun mmio_stale_data=off can be prevented by an active 2992*4882a593Smuzhiyun MDS or TAA mitigation as these vulnerabilities are 2993*4882a593Smuzhiyun mitigated with the same mechanism so in order to 2994*4882a593Smuzhiyun disable this mitigation, you need to specify 2995*4882a593Smuzhiyun mds=off and tsx_async_abort=off too. 2996*4882a593Smuzhiyun 2997*4882a593Smuzhiyun Not specifying this option is equivalent to 2998*4882a593Smuzhiyun mmio_stale_data=full. 2999*4882a593Smuzhiyun 3000*4882a593Smuzhiyun For details see: 3001*4882a593Smuzhiyun Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst 3002*4882a593Smuzhiyun 3003*4882a593Smuzhiyun module.sig_enforce 3004*4882a593Smuzhiyun [KNL] When CONFIG_MODULE_SIG is set, this means that 3005*4882a593Smuzhiyun modules without (valid) signatures will fail to load. 3006*4882a593Smuzhiyun Note that if CONFIG_MODULE_SIG_FORCE is set, that 3007*4882a593Smuzhiyun is always true, so this option does nothing. 3008*4882a593Smuzhiyun 3009*4882a593Smuzhiyun module_blacklist= [KNL] Do not load a comma-separated list of 3010*4882a593Smuzhiyun modules. Useful for debugging problem modules. 3011*4882a593Smuzhiyun 3012*4882a593Smuzhiyun mousedev.tap_time= 3013*4882a593Smuzhiyun [MOUSE] Maximum time between finger touching and 3014*4882a593Smuzhiyun leaving touchpad surface for touch to be considered 3015*4882a593Smuzhiyun a tap and be reported as a left button click (for 3016*4882a593Smuzhiyun touchpads working in absolute mode only). 3017*4882a593Smuzhiyun Format: <msecs> 3018*4882a593Smuzhiyun mousedev.xres= [MOUSE] Horizontal screen resolution, used for devices 3019*4882a593Smuzhiyun reporting absolute coordinates, such as tablets 3020*4882a593Smuzhiyun mousedev.yres= [MOUSE] Vertical screen resolution, used for devices 3021*4882a593Smuzhiyun reporting absolute coordinates, such as tablets 3022*4882a593Smuzhiyun 3023*4882a593Smuzhiyun movablecore= [KNL,X86,IA-64,PPC] 3024*4882a593Smuzhiyun Format: nn[KMGTPE] | nn% 3025*4882a593Smuzhiyun This parameter is the complement to kernelcore=, it 3026*4882a593Smuzhiyun specifies the amount of memory used for migratable 3027*4882a593Smuzhiyun allocations. If both kernelcore and movablecore is 3028*4882a593Smuzhiyun specified, then kernelcore will be at *least* the 3029*4882a593Smuzhiyun specified value but may be more. If movablecore on its 3030*4882a593Smuzhiyun own is specified, the administrator must be careful 3031*4882a593Smuzhiyun that the amount of memory usable for all allocations 3032*4882a593Smuzhiyun is not too small. 3033*4882a593Smuzhiyun 3034*4882a593Smuzhiyun movable_node [KNL] Boot-time switch to make hotplugable memory 3035*4882a593Smuzhiyun NUMA nodes to be movable. This means that the memory 3036*4882a593Smuzhiyun of such nodes will be usable only for movable 3037*4882a593Smuzhiyun allocations which rules out almost all kernel 3038*4882a593Smuzhiyun allocations. Use with caution! 3039*4882a593Smuzhiyun 3040*4882a593Smuzhiyun MTD_Partition= [MTD] 3041*4882a593Smuzhiyun Format: <name>,<region-number>,<size>,<offset> 3042*4882a593Smuzhiyun 3043*4882a593Smuzhiyun MTD_Region= [MTD] Format: 3044*4882a593Smuzhiyun <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] 3045*4882a593Smuzhiyun 3046*4882a593Smuzhiyun mtdparts= [MTD] 3047*4882a593Smuzhiyun See drivers/mtd/parsers/cmdlinepart.c 3048*4882a593Smuzhiyun 3049*4882a593Smuzhiyun multitce=off [PPC] This parameter disables the use of the pSeries 3050*4882a593Smuzhiyun firmware feature for updating multiple TCE entries 3051*4882a593Smuzhiyun at a time. 3052*4882a593Smuzhiyun 3053*4882a593Smuzhiyun kswapd_per_node= 3054*4882a593Smuzhiyun kswapd_per_node allows you to control the number of kswapd threads 3055*4882a593Smuzhiyun running on the system. This provides the ability to devote additional 3056*4882a593Smuzhiyun CPU resources toward proactive page replacement with the goal of 3057*4882a593Smuzhiyun reducing direct reclaims. When direct reclaims are prevented, the CPU 3058*4882a593Smuzhiyun consumed by them is prevented as well. Depending on the workload, the 3059*4882a593Smuzhiyun result can cause aggregate CPU usage on the system to go up, down or 3060*4882a593Smuzhiyun stay the same. 3061*4882a593Smuzhiyun 3062*4882a593Smuzhiyun More aggressive page replacement can reduce direct reclaims which 3063*4882a593Smuzhiyun cause latency for tasks and decrease throughput when doing filesystem 3064*4882a593Smuzhiyun IO through the pagecache. Direct reclaims are recorded using the 3065*4882a593Smuzhiyun allocstall counter in /proc/vmstat. 3066*4882a593Smuzhiyun 3067*4882a593Smuzhiyun The range of acceptible values are 1-16. Always start with lower 3068*4882a593Smuzhiyun values in the 2-6 range. Higher values should be justified with 3069*4882a593Smuzhiyun testing. If direct reclaims occur in spite of high values, the cost 3070*4882a593Smuzhiyun of direct reclaims (in latency) that occur can be higher due to 3071*4882a593Smuzhiyun increased lock contention. 3072*4882a593Smuzhiyun 3073*4882a593Smuzhiyun onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration 3074*4882a593Smuzhiyun 3075*4882a593Smuzhiyun Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock] 3076*4882a593Smuzhiyun 3077*4882a593Smuzhiyun boundary - index of last SLC block on Flex-OneNAND. 3078*4882a593Smuzhiyun The remaining blocks are configured as MLC blocks. 3079*4882a593Smuzhiyun lock - Configure if Flex-OneNAND boundary should be locked. 3080*4882a593Smuzhiyun Once locked, the boundary cannot be changed. 3081*4882a593Smuzhiyun 1 indicates lock status, 0 indicates unlock status. 3082*4882a593Smuzhiyun 3083*4882a593Smuzhiyun mtdset= [ARM] 3084*4882a593Smuzhiyun ARM/S3C2412 JIVE boot control 3085*4882a593Smuzhiyun 3086*4882a593Smuzhiyun See arch/arm/mach-s3c2412/mach-jive.c 3087*4882a593Smuzhiyun 3088*4882a593Smuzhiyun mtouchusb.raw_coordinates= 3089*4882a593Smuzhiyun [HW] Make the MicroTouch USB driver use raw coordinates 3090*4882a593Smuzhiyun ('y', default) or cooked coordinates ('n') 3091*4882a593Smuzhiyun 3092*4882a593Smuzhiyun mtrr_chunk_size=nn[KMG] [X86] 3093*4882a593Smuzhiyun used for mtrr cleanup. It is largest continuous chunk 3094*4882a593Smuzhiyun that could hold holes aka. UC entries. 3095*4882a593Smuzhiyun 3096*4882a593Smuzhiyun mtrr_gran_size=nn[KMG] [X86] 3097*4882a593Smuzhiyun Used for mtrr cleanup. It is granularity of mtrr block. 3098*4882a593Smuzhiyun Default is 1. 3099*4882a593Smuzhiyun Large value could prevent small alignment from 3100*4882a593Smuzhiyun using up MTRRs. 3101*4882a593Smuzhiyun 3102*4882a593Smuzhiyun mtrr_spare_reg_nr=n [X86] 3103*4882a593Smuzhiyun Format: <integer> 3104*4882a593Smuzhiyun Range: 0,7 : spare reg number 3105*4882a593Smuzhiyun Default : 1 3106*4882a593Smuzhiyun Used for mtrr cleanup. It is spare mtrr entries number. 3107*4882a593Smuzhiyun Set to 2 or more if your graphical card needs more. 3108*4882a593Smuzhiyun 3109*4882a593Smuzhiyun n2= [NET] SDL Inc. RISCom/N2 synchronous serial card 3110*4882a593Smuzhiyun 3111*4882a593Smuzhiyun netdev= [NET] Network devices parameters 3112*4882a593Smuzhiyun Format: <irq>,<io>,<mem_start>,<mem_end>,<name> 3113*4882a593Smuzhiyun Note that mem_start is often overloaded to mean 3114*4882a593Smuzhiyun something different and driver-specific. 3115*4882a593Smuzhiyun This usage is only documented in each driver source 3116*4882a593Smuzhiyun file if at all. 3117*4882a593Smuzhiyun 3118*4882a593Smuzhiyun nf_conntrack.acct= 3119*4882a593Smuzhiyun [NETFILTER] Enable connection tracking flow accounting 3120*4882a593Smuzhiyun 0 to disable accounting 3121*4882a593Smuzhiyun 1 to enable accounting 3122*4882a593Smuzhiyun Default value is 0. 3123*4882a593Smuzhiyun 3124*4882a593Smuzhiyun nfsaddrs= [NFS] Deprecated. Use ip= instead. 3125*4882a593Smuzhiyun See Documentation/admin-guide/nfs/nfsroot.rst. 3126*4882a593Smuzhiyun 3127*4882a593Smuzhiyun nfsroot= [NFS] nfs root filesystem for disk-less boxes. 3128*4882a593Smuzhiyun See Documentation/admin-guide/nfs/nfsroot.rst. 3129*4882a593Smuzhiyun 3130*4882a593Smuzhiyun nfsrootdebug [NFS] enable nfsroot debugging messages. 3131*4882a593Smuzhiyun See Documentation/admin-guide/nfs/nfsroot.rst. 3132*4882a593Smuzhiyun 3133*4882a593Smuzhiyun nfs.callback_nr_threads= 3134*4882a593Smuzhiyun [NFSv4] set the total number of threads that the 3135*4882a593Smuzhiyun NFS client will assign to service NFSv4 callback 3136*4882a593Smuzhiyun requests. 3137*4882a593Smuzhiyun 3138*4882a593Smuzhiyun nfs.callback_tcpport= 3139*4882a593Smuzhiyun [NFS] set the TCP port on which the NFSv4 callback 3140*4882a593Smuzhiyun channel should listen. 3141*4882a593Smuzhiyun 3142*4882a593Smuzhiyun nfs.cache_getent= 3143*4882a593Smuzhiyun [NFS] sets the pathname to the program which is used 3144*4882a593Smuzhiyun to update the NFS client cache entries. 3145*4882a593Smuzhiyun 3146*4882a593Smuzhiyun nfs.cache_getent_timeout= 3147*4882a593Smuzhiyun [NFS] sets the timeout after which an attempt to 3148*4882a593Smuzhiyun update a cache entry is deemed to have failed. 3149*4882a593Smuzhiyun 3150*4882a593Smuzhiyun nfs.idmap_cache_timeout= 3151*4882a593Smuzhiyun [NFS] set the maximum lifetime for idmapper cache 3152*4882a593Smuzhiyun entries. 3153*4882a593Smuzhiyun 3154*4882a593Smuzhiyun nfs.enable_ino64= 3155*4882a593Smuzhiyun [NFS] enable 64-bit inode numbers. 3156*4882a593Smuzhiyun If zero, the NFS client will fake up a 32-bit inode 3157*4882a593Smuzhiyun number for the readdir() and stat() syscalls instead 3158*4882a593Smuzhiyun of returning the full 64-bit number. 3159*4882a593Smuzhiyun The default is to return 64-bit inode numbers. 3160*4882a593Smuzhiyun 3161*4882a593Smuzhiyun nfs.max_session_cb_slots= 3162*4882a593Smuzhiyun [NFSv4.1] Sets the maximum number of session 3163*4882a593Smuzhiyun slots the client will assign to the callback 3164*4882a593Smuzhiyun channel. This determines the maximum number of 3165*4882a593Smuzhiyun callbacks the client will process in parallel for 3166*4882a593Smuzhiyun a particular server. 3167*4882a593Smuzhiyun 3168*4882a593Smuzhiyun nfs.max_session_slots= 3169*4882a593Smuzhiyun [NFSv4.1] Sets the maximum number of session slots 3170*4882a593Smuzhiyun the client will attempt to negotiate with the server. 3171*4882a593Smuzhiyun This limits the number of simultaneous RPC requests 3172*4882a593Smuzhiyun that the client can send to the NFSv4.1 server. 3173*4882a593Smuzhiyun Note that there is little point in setting this 3174*4882a593Smuzhiyun value higher than the max_tcp_slot_table_limit. 3175*4882a593Smuzhiyun 3176*4882a593Smuzhiyun nfs.nfs4_disable_idmapping= 3177*4882a593Smuzhiyun [NFSv4] When set to the default of '1', this option 3178*4882a593Smuzhiyun ensures that both the RPC level authentication 3179*4882a593Smuzhiyun scheme and the NFS level operations agree to use 3180*4882a593Smuzhiyun numeric uids/gids if the mount is using the 3181*4882a593Smuzhiyun 'sec=sys' security flavour. In effect it is 3182*4882a593Smuzhiyun disabling idmapping, which can make migration from 3183*4882a593Smuzhiyun legacy NFSv2/v3 systems to NFSv4 easier. 3184*4882a593Smuzhiyun Servers that do not support this mode of operation 3185*4882a593Smuzhiyun will be autodetected by the client, and it will fall 3186*4882a593Smuzhiyun back to using the idmapper. 3187*4882a593Smuzhiyun To turn off this behaviour, set the value to '0'. 3188*4882a593Smuzhiyun nfs.nfs4_unique_id= 3189*4882a593Smuzhiyun [NFS4] Specify an additional fixed unique ident- 3190*4882a593Smuzhiyun ification string that NFSv4 clients can insert into 3191*4882a593Smuzhiyun their nfs_client_id4 string. This is typically a 3192*4882a593Smuzhiyun UUID that is generated at system install time. 3193*4882a593Smuzhiyun 3194*4882a593Smuzhiyun nfs.send_implementation_id = 3195*4882a593Smuzhiyun [NFSv4.1] Send client implementation identification 3196*4882a593Smuzhiyun information in exchange_id requests. 3197*4882a593Smuzhiyun If zero, no implementation identification information 3198*4882a593Smuzhiyun will be sent. 3199*4882a593Smuzhiyun The default is to send the implementation identification 3200*4882a593Smuzhiyun information. 3201*4882a593Smuzhiyun 3202*4882a593Smuzhiyun nfs.recover_lost_locks = 3203*4882a593Smuzhiyun [NFSv4] Attempt to recover locks that were lost due 3204*4882a593Smuzhiyun to a lease timeout on the server. Please note that 3205*4882a593Smuzhiyun doing this risks data corruption, since there are 3206*4882a593Smuzhiyun no guarantees that the file will remain unchanged 3207*4882a593Smuzhiyun after the locks are lost. 3208*4882a593Smuzhiyun If you want to enable the kernel legacy behaviour of 3209*4882a593Smuzhiyun attempting to recover these locks, then set this 3210*4882a593Smuzhiyun parameter to '1'. 3211*4882a593Smuzhiyun The default parameter value of '0' causes the kernel 3212*4882a593Smuzhiyun not to attempt recovery of lost locks. 3213*4882a593Smuzhiyun 3214*4882a593Smuzhiyun nfs4.layoutstats_timer = 3215*4882a593Smuzhiyun [NFSv4.2] Change the rate at which the kernel sends 3216*4882a593Smuzhiyun layoutstats to the pNFS metadata server. 3217*4882a593Smuzhiyun 3218*4882a593Smuzhiyun Setting this to value to 0 causes the kernel to use 3219*4882a593Smuzhiyun whatever value is the default set by the layout 3220*4882a593Smuzhiyun driver. A non-zero value sets the minimum interval 3221*4882a593Smuzhiyun in seconds between layoutstats transmissions. 3222*4882a593Smuzhiyun 3223*4882a593Smuzhiyun nfsd.nfs4_disable_idmapping= 3224*4882a593Smuzhiyun [NFSv4] When set to the default of '1', the NFSv4 3225*4882a593Smuzhiyun server will return only numeric uids and gids to 3226*4882a593Smuzhiyun clients using auth_sys, and will accept numeric uids 3227*4882a593Smuzhiyun and gids from such clients. This is intended to ease 3228*4882a593Smuzhiyun migration from NFSv2/v3. 3229*4882a593Smuzhiyun 3230*4882a593Smuzhiyun nmi_backtrace.backtrace_idle [KNL] 3231*4882a593Smuzhiyun Dump stacks even of idle CPUs in response to an 3232*4882a593Smuzhiyun NMI stack-backtrace request. 3233*4882a593Smuzhiyun 3234*4882a593Smuzhiyun nmi_debug= [KNL,SH] Specify one or more actions to take 3235*4882a593Smuzhiyun when a NMI is triggered. 3236*4882a593Smuzhiyun Format: [state][,regs][,debounce][,die] 3237*4882a593Smuzhiyun 3238*4882a593Smuzhiyun nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels 3239*4882a593Smuzhiyun Format: [panic,][nopanic,][num] 3240*4882a593Smuzhiyun Valid num: 0 or 1 3241*4882a593Smuzhiyun 0 - turn hardlockup detector in nmi_watchdog off 3242*4882a593Smuzhiyun 1 - turn hardlockup detector in nmi_watchdog on 3243*4882a593Smuzhiyun When panic is specified, panic when an NMI watchdog 3244*4882a593Smuzhiyun timeout occurs (or 'nopanic' to not panic on an NMI 3245*4882a593Smuzhiyun watchdog, if CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is set) 3246*4882a593Smuzhiyun To disable both hard and soft lockup detectors, 3247*4882a593Smuzhiyun please see 'nowatchdog'. 3248*4882a593Smuzhiyun This is useful when you use a panic=... timeout and 3249*4882a593Smuzhiyun need the box quickly up again. 3250*4882a593Smuzhiyun 3251*4882a593Smuzhiyun These settings can be accessed at runtime via 3252*4882a593Smuzhiyun the nmi_watchdog and hardlockup_panic sysctls. 3253*4882a593Smuzhiyun 3254*4882a593Smuzhiyun netpoll.carrier_timeout= 3255*4882a593Smuzhiyun [NET] Specifies amount of time (in seconds) that 3256*4882a593Smuzhiyun netpoll should wait for a carrier. By default netpoll 3257*4882a593Smuzhiyun waits 4 seconds. 3258*4882a593Smuzhiyun 3259*4882a593Smuzhiyun no387 [BUGS=X86-32] Tells the kernel to use the 387 maths 3260*4882a593Smuzhiyun emulation library even if a 387 maths coprocessor 3261*4882a593Smuzhiyun is present. 3262*4882a593Smuzhiyun 3263*4882a593Smuzhiyun no5lvl [X86-64] Disable 5-level paging mode. Forces 3264*4882a593Smuzhiyun kernel to use 4-level paging instead. 3265*4882a593Smuzhiyun 3266*4882a593Smuzhiyun nofsgsbase [X86] Disables FSGSBASE instructions. 3267*4882a593Smuzhiyun 3268*4882a593Smuzhiyun no_console_suspend 3269*4882a593Smuzhiyun [HW] Never suspend the console 3270*4882a593Smuzhiyun Disable suspending of consoles during suspend and 3271*4882a593Smuzhiyun hibernate operations. Once disabled, debugging 3272*4882a593Smuzhiyun messages can reach various consoles while the rest 3273*4882a593Smuzhiyun of the system is being put to sleep (ie, while 3274*4882a593Smuzhiyun debugging driver suspend/resume hooks). This may 3275*4882a593Smuzhiyun not work reliably with all consoles, but is known 3276*4882a593Smuzhiyun to work with serial and VGA consoles. 3277*4882a593Smuzhiyun To facilitate more flexible debugging, we also add 3278*4882a593Smuzhiyun console_suspend, a printk module parameter to control 3279*4882a593Smuzhiyun it. Users could use console_suspend (usually 3280*4882a593Smuzhiyun /sys/module/printk/parameters/console_suspend) to 3281*4882a593Smuzhiyun turn on/off it dynamically. 3282*4882a593Smuzhiyun 3283*4882a593Smuzhiyun novmcoredd [KNL,KDUMP] 3284*4882a593Smuzhiyun Disable device dump. Device dump allows drivers to 3285*4882a593Smuzhiyun append dump data to vmcore so you can collect driver 3286*4882a593Smuzhiyun specified debug info. Drivers can append the data 3287*4882a593Smuzhiyun without any limit and this data is stored in memory, 3288*4882a593Smuzhiyun so this may cause significant memory stress. Disabling 3289*4882a593Smuzhiyun device dump can help save memory but the driver debug 3290*4882a593Smuzhiyun data will be no longer available. This parameter 3291*4882a593Smuzhiyun is only available when CONFIG_PROC_VMCORE_DEVICE_DUMP 3292*4882a593Smuzhiyun is set. 3293*4882a593Smuzhiyun 3294*4882a593Smuzhiyun noaliencache [MM, NUMA, SLAB] Disables the allocation of alien 3295*4882a593Smuzhiyun caches in the slab allocator. Saves per-node memory, 3296*4882a593Smuzhiyun but will impact performance. 3297*4882a593Smuzhiyun 3298*4882a593Smuzhiyun noalign [KNL,ARM] 3299*4882a593Smuzhiyun 3300*4882a593Smuzhiyun noaltinstr [S390] Disables alternative instructions patching 3301*4882a593Smuzhiyun (CPU alternatives feature). 3302*4882a593Smuzhiyun 3303*4882a593Smuzhiyun noapic [SMP,APIC] Tells the kernel to not make use of any 3304*4882a593Smuzhiyun IOAPICs that may be present in the system. 3305*4882a593Smuzhiyun 3306*4882a593Smuzhiyun noautogroup Disable scheduler automatic task group creation. 3307*4882a593Smuzhiyun 3308*4882a593Smuzhiyun nobats [PPC] Do not use BATs for mapping kernel lowmem 3309*4882a593Smuzhiyun on "Classic" PPC cores. 3310*4882a593Smuzhiyun 3311*4882a593Smuzhiyun nocache [ARM] 3312*4882a593Smuzhiyun 3313*4882a593Smuzhiyun noclflush [BUGS=X86] Don't use the CLFLUSH instruction 3314*4882a593Smuzhiyun 3315*4882a593Smuzhiyun nodelayacct [KNL] Disable per-task delay accounting 3316*4882a593Smuzhiyun 3317*4882a593Smuzhiyun nodsp [SH] Disable hardware DSP at boot time. 3318*4882a593Smuzhiyun 3319*4882a593Smuzhiyun noefi Disable EFI runtime services support. 3320*4882a593Smuzhiyun 3321*4882a593Smuzhiyun no_entry_flush [PPC] Don't flush the L1-D cache when entering the kernel. 3322*4882a593Smuzhiyun 3323*4882a593Smuzhiyun noexec [IA-64] 3324*4882a593Smuzhiyun 3325*4882a593Smuzhiyun noexec [X86] 3326*4882a593Smuzhiyun On X86-32 available only on PAE configured kernels. 3327*4882a593Smuzhiyun noexec=on: enable non-executable mappings (default) 3328*4882a593Smuzhiyun noexec=off: disable non-executable mappings 3329*4882a593Smuzhiyun 3330*4882a593Smuzhiyun nosmap [X86,PPC] 3331*4882a593Smuzhiyun Disable SMAP (Supervisor Mode Access Prevention) 3332*4882a593Smuzhiyun even if it is supported by processor. 3333*4882a593Smuzhiyun 3334*4882a593Smuzhiyun nosmep [X86,PPC] 3335*4882a593Smuzhiyun Disable SMEP (Supervisor Mode Execution Prevention) 3336*4882a593Smuzhiyun even if it is supported by processor. 3337*4882a593Smuzhiyun 3338*4882a593Smuzhiyun noexec32 [X86-64] 3339*4882a593Smuzhiyun This affects only 32-bit executables. 3340*4882a593Smuzhiyun noexec32=on: enable non-executable mappings (default) 3341*4882a593Smuzhiyun read doesn't imply executable mappings 3342*4882a593Smuzhiyun noexec32=off: disable non-executable mappings 3343*4882a593Smuzhiyun read implies executable mappings 3344*4882a593Smuzhiyun 3345*4882a593Smuzhiyun nofpu [MIPS,SH] Disable hardware FPU at boot time. 3346*4882a593Smuzhiyun 3347*4882a593Smuzhiyun nofxsr [BUGS=X86-32] Disables x86 floating point extended 3348*4882a593Smuzhiyun register save and restore. The kernel will only save 3349*4882a593Smuzhiyun legacy floating-point registers on task switch. 3350*4882a593Smuzhiyun 3351*4882a593Smuzhiyun nohugeiomap [KNL,X86,PPC,ARM64] Disable kernel huge I/O mappings. 3352*4882a593Smuzhiyun 3353*4882a593Smuzhiyun nosmt [KNL,S390] Disable symmetric multithreading (SMT). 3354*4882a593Smuzhiyun Equivalent to smt=1. 3355*4882a593Smuzhiyun 3356*4882a593Smuzhiyun [KNL,X86] Disable symmetric multithreading (SMT). 3357*4882a593Smuzhiyun nosmt=force: Force disable SMT, cannot be undone 3358*4882a593Smuzhiyun via the sysfs control file. 3359*4882a593Smuzhiyun 3360*4882a593Smuzhiyun nospectre_v1 [X86,PPC] Disable mitigations for Spectre Variant 1 3361*4882a593Smuzhiyun (bounds check bypass). With this option data leaks are 3362*4882a593Smuzhiyun possible in the system. 3363*4882a593Smuzhiyun 3364*4882a593Smuzhiyun nospectre_v2 [X86,PPC_FSL_BOOK3E,ARM64] Disable all mitigations for 3365*4882a593Smuzhiyun the Spectre variant 2 (indirect branch prediction) 3366*4882a593Smuzhiyun vulnerability. System may allow data leaks with this 3367*4882a593Smuzhiyun option. 3368*4882a593Smuzhiyun 3369*4882a593Smuzhiyun nospec_store_bypass_disable 3370*4882a593Smuzhiyun [HW] Disable all mitigations for the Speculative Store Bypass vulnerability 3371*4882a593Smuzhiyun 3372*4882a593Smuzhiyun no_uaccess_flush 3373*4882a593Smuzhiyun [PPC] Don't flush the L1-D cache after accessing user data. 3374*4882a593Smuzhiyun 3375*4882a593Smuzhiyun noxsave [BUGS=X86] Disables x86 extended register state save 3376*4882a593Smuzhiyun and restore using xsave. The kernel will fallback to 3377*4882a593Smuzhiyun enabling legacy floating-point and sse state. 3378*4882a593Smuzhiyun 3379*4882a593Smuzhiyun noxsaveopt [X86] Disables xsaveopt used in saving x86 extended 3380*4882a593Smuzhiyun register states. The kernel will fall back to use 3381*4882a593Smuzhiyun xsave to save the states. By using this parameter, 3382*4882a593Smuzhiyun performance of saving the states is degraded because 3383*4882a593Smuzhiyun xsave doesn't support modified optimization while 3384*4882a593Smuzhiyun xsaveopt supports it on xsaveopt enabled systems. 3385*4882a593Smuzhiyun 3386*4882a593Smuzhiyun noxsaves [X86] Disables xsaves and xrstors used in saving and 3387*4882a593Smuzhiyun restoring x86 extended register state in compacted 3388*4882a593Smuzhiyun form of xsave area. The kernel will fall back to use 3389*4882a593Smuzhiyun xsaveopt and xrstor to save and restore the states 3390*4882a593Smuzhiyun in standard form of xsave area. By using this 3391*4882a593Smuzhiyun parameter, xsave area per process might occupy more 3392*4882a593Smuzhiyun memory on xsaves enabled systems. 3393*4882a593Smuzhiyun 3394*4882a593Smuzhiyun nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or 3395*4882a593Smuzhiyun wfi(ARM) instruction doesn't work correctly and not to 3396*4882a593Smuzhiyun use it. This is also useful when using JTAG debugger. 3397*4882a593Smuzhiyun 3398*4882a593Smuzhiyun no_file_caps Tells the kernel not to honor file capabilities. The 3399*4882a593Smuzhiyun only way then for a file to be executed with privilege 3400*4882a593Smuzhiyun is to be setuid root or executed by root. 3401*4882a593Smuzhiyun 3402*4882a593Smuzhiyun nohalt [IA-64] Tells the kernel not to use the power saving 3403*4882a593Smuzhiyun function PAL_HALT_LIGHT when idle. This increases 3404*4882a593Smuzhiyun power-consumption. On the positive side, it reduces 3405*4882a593Smuzhiyun interrupt wake-up latency, which may improve performance 3406*4882a593Smuzhiyun in certain environments such as networked servers or 3407*4882a593Smuzhiyun real-time systems. 3408*4882a593Smuzhiyun 3409*4882a593Smuzhiyun no_hash_pointers 3410*4882a593Smuzhiyun Force pointers printed to the console or buffers to be 3411*4882a593Smuzhiyun unhashed. By default, when a pointer is printed via %p 3412*4882a593Smuzhiyun format string, that pointer is "hashed", i.e. obscured 3413*4882a593Smuzhiyun by hashing the pointer value. This is a security feature 3414*4882a593Smuzhiyun that hides actual kernel addresses from unprivileged 3415*4882a593Smuzhiyun users, but it also makes debugging the kernel more 3416*4882a593Smuzhiyun difficult since unequal pointers can no longer be 3417*4882a593Smuzhiyun compared. However, if this command-line option is 3418*4882a593Smuzhiyun specified, then all normal pointers will have their true 3419*4882a593Smuzhiyun value printed. This option should only be specified when 3420*4882a593Smuzhiyun debugging the kernel. Please do not use on production 3421*4882a593Smuzhiyun kernels. 3422*4882a593Smuzhiyun 3423*4882a593Smuzhiyun nohibernate [HIBERNATION] Disable hibernation and resume. 3424*4882a593Smuzhiyun 3425*4882a593Smuzhiyun nohz= [KNL] Boottime enable/disable dynamic ticks 3426*4882a593Smuzhiyun Valid arguments: on, off 3427*4882a593Smuzhiyun Default: on 3428*4882a593Smuzhiyun 3429*4882a593Smuzhiyun nohz_full= [KNL,BOOT,SMP,ISOL] 3430*4882a593Smuzhiyun The argument is a cpu list, as described above. 3431*4882a593Smuzhiyun In kernels built with CONFIG_NO_HZ_FULL=y, set 3432*4882a593Smuzhiyun the specified list of CPUs whose tick will be stopped 3433*4882a593Smuzhiyun whenever possible. The boot CPU will be forced outside 3434*4882a593Smuzhiyun the range to maintain the timekeeping. Any CPUs 3435*4882a593Smuzhiyun in this list will have their RCU callbacks offloaded, 3436*4882a593Smuzhiyun just as if they had also been called out in the 3437*4882a593Smuzhiyun rcu_nocbs= boot parameter. 3438*4882a593Smuzhiyun 3439*4882a593Smuzhiyun noiotrap [SH] Disables trapped I/O port accesses. 3440*4882a593Smuzhiyun 3441*4882a593Smuzhiyun noirqdebug [X86-32] Disables the code which attempts to detect and 3442*4882a593Smuzhiyun disable unhandled interrupt sources. 3443*4882a593Smuzhiyun 3444*4882a593Smuzhiyun no_timer_check [X86,APIC] Disables the code which tests for 3445*4882a593Smuzhiyun broken timer IRQ sources. 3446*4882a593Smuzhiyun 3447*4882a593Smuzhiyun noisapnp [ISAPNP] Disables ISA PnP code. 3448*4882a593Smuzhiyun 3449*4882a593Smuzhiyun noinitrd [RAM] Tells the kernel not to load any configured 3450*4882a593Smuzhiyun initial RAM disk. 3451*4882a593Smuzhiyun 3452*4882a593Smuzhiyun nointremap [X86-64, Intel-IOMMU] Do not enable interrupt 3453*4882a593Smuzhiyun remapping. 3454*4882a593Smuzhiyun [Deprecated - use intremap=off] 3455*4882a593Smuzhiyun 3456*4882a593Smuzhiyun nointroute [IA-64] 3457*4882a593Smuzhiyun 3458*4882a593Smuzhiyun noinvpcid [X86] Disable the INVPCID cpu feature. 3459*4882a593Smuzhiyun 3460*4882a593Smuzhiyun nojitter [IA-64] Disables jitter checking for ITC timers. 3461*4882a593Smuzhiyun 3462*4882a593Smuzhiyun no-kvmclock [X86,KVM] Disable paravirtualized KVM clock driver 3463*4882a593Smuzhiyun 3464*4882a593Smuzhiyun no-kvmapf [X86,KVM] Disable paravirtualized asynchronous page 3465*4882a593Smuzhiyun fault handling. 3466*4882a593Smuzhiyun 3467*4882a593Smuzhiyun no-vmw-sched-clock 3468*4882a593Smuzhiyun [X86,PV_OPS] Disable paravirtualized VMware scheduler 3469*4882a593Smuzhiyun clock and use the default one. 3470*4882a593Smuzhiyun 3471*4882a593Smuzhiyun no-steal-acc [X86,PV_OPS,ARM64] Disable paravirtualized steal time 3472*4882a593Smuzhiyun accounting. steal time is computed, but won't 3473*4882a593Smuzhiyun influence scheduler behaviour 3474*4882a593Smuzhiyun 3475*4882a593Smuzhiyun nolapic [X86-32,APIC] Do not enable or use the local APIC. 3476*4882a593Smuzhiyun 3477*4882a593Smuzhiyun nolapic_timer [X86-32,APIC] Do not use the local APIC timer. 3478*4882a593Smuzhiyun 3479*4882a593Smuzhiyun noltlbs [PPC] Do not use large page/tlb entries for kernel 3480*4882a593Smuzhiyun lowmem mapping on PPC40x and PPC8xx 3481*4882a593Smuzhiyun 3482*4882a593Smuzhiyun nomca [IA-64] Disable machine check abort handling 3483*4882a593Smuzhiyun 3484*4882a593Smuzhiyun nomce [X86-32] Disable Machine Check Exception 3485*4882a593Smuzhiyun 3486*4882a593Smuzhiyun nomfgpt [X86-32] Disable Multi-Function General Purpose 3487*4882a593Smuzhiyun Timer usage (for AMD Geode machines). 3488*4882a593Smuzhiyun 3489*4882a593Smuzhiyun nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to 3490*4882a593Smuzhiyun shutdown the other cpus. Instead use the REBOOT_VECTOR 3491*4882a593Smuzhiyun irq. 3492*4882a593Smuzhiyun 3493*4882a593Smuzhiyun nomodule Disable module load 3494*4882a593Smuzhiyun 3495*4882a593Smuzhiyun nopat [X86] Disable PAT (page attribute table extension of 3496*4882a593Smuzhiyun pagetables) support. 3497*4882a593Smuzhiyun 3498*4882a593Smuzhiyun nopcid [X86-64] Disable the PCID cpu feature. 3499*4882a593Smuzhiyun 3500*4882a593Smuzhiyun norandmaps Don't use address space randomization. Equivalent to 3501*4882a593Smuzhiyun echo 0 > /proc/sys/kernel/randomize_va_space 3502*4882a593Smuzhiyun 3503*4882a593Smuzhiyun noreplace-smp [X86-32,SMP] Don't replace SMP instructions 3504*4882a593Smuzhiyun with UP alternatives 3505*4882a593Smuzhiyun 3506*4882a593Smuzhiyun nordrand [X86] Disable kernel use of the RDRAND and 3507*4882a593Smuzhiyun RDSEED instructions even if they are supported 3508*4882a593Smuzhiyun by the processor. RDRAND and RDSEED are still 3509*4882a593Smuzhiyun available to user space applications. 3510*4882a593Smuzhiyun 3511*4882a593Smuzhiyun noresume [SWSUSP] Disables resume and restores original swap 3512*4882a593Smuzhiyun space. 3513*4882a593Smuzhiyun 3514*4882a593Smuzhiyun no-scroll [VGA] Disables scrollback. 3515*4882a593Smuzhiyun This is required for the Braillex ib80-piezo Braille 3516*4882a593Smuzhiyun reader made by F.H. Papenmeier (Germany). 3517*4882a593Smuzhiyun 3518*4882a593Smuzhiyun nosbagart [IA-64] 3519*4882a593Smuzhiyun 3520*4882a593Smuzhiyun nosep [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support. 3521*4882a593Smuzhiyun 3522*4882a593Smuzhiyun nosmp [SMP] Tells an SMP kernel to act as a UP kernel, 3523*4882a593Smuzhiyun and disable the IO APIC. legacy for "maxcpus=0". 3524*4882a593Smuzhiyun 3525*4882a593Smuzhiyun nosoftlockup [KNL] Disable the soft-lockup detector. 3526*4882a593Smuzhiyun 3527*4882a593Smuzhiyun nosync [HW,M68K] Disables sync negotiation for all devices. 3528*4882a593Smuzhiyun 3529*4882a593Smuzhiyun nowatchdog [KNL] Disable both lockup detectors, i.e. 3530*4882a593Smuzhiyun soft-lockup and NMI watchdog (hard-lockup). 3531*4882a593Smuzhiyun 3532*4882a593Smuzhiyun nowb [ARM] 3533*4882a593Smuzhiyun 3534*4882a593Smuzhiyun nox2apic [X86-64,APIC] Do not enable x2APIC mode. 3535*4882a593Smuzhiyun 3536*4882a593Smuzhiyun cpu0_hotplug [X86] Turn on CPU0 hotplug feature when 3537*4882a593Smuzhiyun CONFIG_BOOTPARAM_HOTPLUG_CPU0 is off. 3538*4882a593Smuzhiyun Some features depend on CPU0. Known dependencies are: 3539*4882a593Smuzhiyun 1. Resume from suspend/hibernate depends on CPU0. 3540*4882a593Smuzhiyun Suspend/hibernate will fail if CPU0 is offline and you 3541*4882a593Smuzhiyun need to online CPU0 before suspend/hibernate. 3542*4882a593Smuzhiyun 2. PIC interrupts also depend on CPU0. CPU0 can't be 3543*4882a593Smuzhiyun removed if a PIC interrupt is detected. 3544*4882a593Smuzhiyun It's said poweroff/reboot may depend on CPU0 on some 3545*4882a593Smuzhiyun machines although I haven't seen such issues so far 3546*4882a593Smuzhiyun after CPU0 is offline on a few tested machines. 3547*4882a593Smuzhiyun If the dependencies are under your control, you can 3548*4882a593Smuzhiyun turn on cpu0_hotplug. 3549*4882a593Smuzhiyun 3550*4882a593Smuzhiyun nps_mtm_hs_ctr= [KNL,ARC] 3551*4882a593Smuzhiyun This parameter sets the maximum duration, in 3552*4882a593Smuzhiyun cycles, each HW thread of the CTOP can run 3553*4882a593Smuzhiyun without interruptions, before HW switches it. 3554*4882a593Smuzhiyun The actual maximum duration is 16 times this 3555*4882a593Smuzhiyun parameter's value. 3556*4882a593Smuzhiyun Format: integer between 1 and 255 3557*4882a593Smuzhiyun Default: 255 3558*4882a593Smuzhiyun 3559*4882a593Smuzhiyun nptcg= [IA-64] Override max number of concurrent global TLB 3560*4882a593Smuzhiyun purges which is reported from either PAL_VM_SUMMARY or 3561*4882a593Smuzhiyun SAL PALO. 3562*4882a593Smuzhiyun 3563*4882a593Smuzhiyun nr_cpus= [SMP] Maximum number of processors that an SMP kernel 3564*4882a593Smuzhiyun could support. nr_cpus=n : n >= 1 limits the kernel to 3565*4882a593Smuzhiyun support 'n' processors. It could be larger than the 3566*4882a593Smuzhiyun number of already plugged CPU during bootup, later in 3567*4882a593Smuzhiyun runtime you can physically add extra cpu until it reaches 3568*4882a593Smuzhiyun n. So during boot up some boot time memory for per-cpu 3569*4882a593Smuzhiyun variables need be pre-allocated for later physical cpu 3570*4882a593Smuzhiyun hot plugging. 3571*4882a593Smuzhiyun 3572*4882a593Smuzhiyun nr_uarts= [SERIAL] maximum number of UARTs to be registered. 3573*4882a593Smuzhiyun 3574*4882a593Smuzhiyun numa_balancing= [KNL,X86] Enable or disable automatic NUMA balancing. 3575*4882a593Smuzhiyun Allowed values are enable and disable 3576*4882a593Smuzhiyun 3577*4882a593Smuzhiyun numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA. 3578*4882a593Smuzhiyun 'node', 'default' can be specified 3579*4882a593Smuzhiyun This can be set from sysctl after boot. 3580*4882a593Smuzhiyun See Documentation/admin-guide/sysctl/vm.rst for details. 3581*4882a593Smuzhiyun 3582*4882a593Smuzhiyun ohci1394_dma=early [HW] enable debugging via the ohci1394 driver. 3583*4882a593Smuzhiyun See Documentation/core-api/debugging-via-ohci1394.rst for more 3584*4882a593Smuzhiyun info. 3585*4882a593Smuzhiyun 3586*4882a593Smuzhiyun olpc_ec_timeout= [OLPC] ms delay when issuing EC commands 3587*4882a593Smuzhiyun Rather than timing out after 20 ms if an EC 3588*4882a593Smuzhiyun command is not properly ACKed, override the length 3589*4882a593Smuzhiyun of the timeout. We have interrupts disabled while 3590*4882a593Smuzhiyun waiting for the ACK, so if this is set too high 3591*4882a593Smuzhiyun interrupts *may* be lost! 3592*4882a593Smuzhiyun 3593*4882a593Smuzhiyun omap_mux= [OMAP] Override bootloader pin multiplexing. 3594*4882a593Smuzhiyun Format: <mux_mode0.mode_name=value>... 3595*4882a593Smuzhiyun For example, to override I2C bus2: 3596*4882a593Smuzhiyun omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100 3597*4882a593Smuzhiyun 3598*4882a593Smuzhiyun oprofile.timer= [HW] 3599*4882a593Smuzhiyun Use timer interrupt instead of performance counters 3600*4882a593Smuzhiyun 3601*4882a593Smuzhiyun oprofile.cpu_type= Force an oprofile cpu type 3602*4882a593Smuzhiyun This might be useful if you have an older oprofile 3603*4882a593Smuzhiyun userland or if you want common events. 3604*4882a593Smuzhiyun Format: { arch_perfmon } 3605*4882a593Smuzhiyun arch_perfmon: [X86] Force use of architectural 3606*4882a593Smuzhiyun perfmon on Intel CPUs instead of the 3607*4882a593Smuzhiyun CPU specific event set. 3608*4882a593Smuzhiyun timer: [X86] Force use of architectural NMI 3609*4882a593Smuzhiyun timer mode (see also oprofile.timer 3610*4882a593Smuzhiyun for generic hr timer mode) 3611*4882a593Smuzhiyun 3612*4882a593Smuzhiyun oops=panic Always panic on oopses. Default is to just kill the 3613*4882a593Smuzhiyun process, but there is a small probability of 3614*4882a593Smuzhiyun deadlocking the machine. 3615*4882a593Smuzhiyun This will also cause panics on machine check exceptions. 3616*4882a593Smuzhiyun Useful together with panic=30 to trigger a reboot. 3617*4882a593Smuzhiyun 3618*4882a593Smuzhiyun page_alloc.shuffle= 3619*4882a593Smuzhiyun [KNL] Boolean flag to control whether the page allocator 3620*4882a593Smuzhiyun should randomize its free lists. The randomization may 3621*4882a593Smuzhiyun be automatically enabled if the kernel detects it is 3622*4882a593Smuzhiyun running on a platform with a direct-mapped memory-side 3623*4882a593Smuzhiyun cache, and this parameter can be used to 3624*4882a593Smuzhiyun override/disable that behavior. The state of the flag 3625*4882a593Smuzhiyun can be read from sysfs at: 3626*4882a593Smuzhiyun /sys/module/page_alloc/parameters/shuffle. 3627*4882a593Smuzhiyun 3628*4882a593Smuzhiyun page_owner= [KNL] Boot-time page_owner enabling option. 3629*4882a593Smuzhiyun Storage of the information about who allocated 3630*4882a593Smuzhiyun each page is disabled in default. With this switch, 3631*4882a593Smuzhiyun we can turn it on. 3632*4882a593Smuzhiyun on: enable the feature 3633*4882a593Smuzhiyun 3634*4882a593Smuzhiyun page_poison= [KNL] Boot-time parameter changing the state of 3635*4882a593Smuzhiyun poisoning on the buddy allocator, available with 3636*4882a593Smuzhiyun CONFIG_PAGE_POISONING=y. 3637*4882a593Smuzhiyun off: turn off poisoning (default) 3638*4882a593Smuzhiyun on: turn on poisoning 3639*4882a593Smuzhiyun 3640*4882a593Smuzhiyun panic= [KNL] Kernel behaviour on panic: delay <timeout> 3641*4882a593Smuzhiyun timeout > 0: seconds before rebooting 3642*4882a593Smuzhiyun timeout = 0: wait forever 3643*4882a593Smuzhiyun timeout < 0: reboot immediately 3644*4882a593Smuzhiyun Format: <timeout> 3645*4882a593Smuzhiyun 3646*4882a593Smuzhiyun panic_print= Bitmask for printing system info when panic happens. 3647*4882a593Smuzhiyun User can chose combination of the following bits: 3648*4882a593Smuzhiyun bit 0: print all tasks info 3649*4882a593Smuzhiyun bit 1: print system memory info 3650*4882a593Smuzhiyun bit 2: print timer info 3651*4882a593Smuzhiyun bit 3: print locks info if CONFIG_LOCKDEP is on 3652*4882a593Smuzhiyun bit 4: print ftrace buffer 3653*4882a593Smuzhiyun bit 5: print all printk messages in buffer 3654*4882a593Smuzhiyun 3655*4882a593Smuzhiyun panic_on_taint= Bitmask for conditionally calling panic() in add_taint() 3656*4882a593Smuzhiyun Format: <hex>[,nousertaint] 3657*4882a593Smuzhiyun Hexadecimal bitmask representing the set of TAINT flags 3658*4882a593Smuzhiyun that will cause the kernel to panic when add_taint() is 3659*4882a593Smuzhiyun called with any of the flags in this set. 3660*4882a593Smuzhiyun The optional switch "nousertaint" can be utilized to 3661*4882a593Smuzhiyun prevent userspace forced crashes by writing to sysctl 3662*4882a593Smuzhiyun /proc/sys/kernel/tainted any flagset matching with the 3663*4882a593Smuzhiyun bitmask set on panic_on_taint. 3664*4882a593Smuzhiyun See Documentation/admin-guide/tainted-kernels.rst for 3665*4882a593Smuzhiyun extra details on the taint flags that users can pick 3666*4882a593Smuzhiyun to compose the bitmask to assign to panic_on_taint. 3667*4882a593Smuzhiyun 3668*4882a593Smuzhiyun panic_on_warn panic() instead of WARN(). Useful to cause kdump 3669*4882a593Smuzhiyun on a WARN(). 3670*4882a593Smuzhiyun 3671*4882a593Smuzhiyun pelt= [KNL] Boot-time parameter changing the PELT half life in ms 3672*4882a593Smuzhiyun Format: <int> 3673*4882a593Smuzhiyun 32: Set the half life to 32ms 3674*4882a593Smuzhiyun 8: Set the half life to 8ms 3675*4882a593Smuzhiyun default: 32 3676*4882a593Smuzhiyun 3677*4882a593Smuzhiyun crash_kexec_post_notifiers 3678*4882a593Smuzhiyun Run kdump after running panic-notifiers and dumping 3679*4882a593Smuzhiyun kmsg. This only for the users who doubt kdump always 3680*4882a593Smuzhiyun succeeds in any situation. 3681*4882a593Smuzhiyun Note that this also increases risks of kdump failure, 3682*4882a593Smuzhiyun because some panic notifiers can make the crashed 3683*4882a593Smuzhiyun kernel more unstable. 3684*4882a593Smuzhiyun 3685*4882a593Smuzhiyun parkbd.port= [HW] Parallel port number the keyboard adapter is 3686*4882a593Smuzhiyun connected to, default is 0. 3687*4882a593Smuzhiyun Format: <parport#> 3688*4882a593Smuzhiyun parkbd.mode= [HW] Parallel port keyboard adapter mode of operation, 3689*4882a593Smuzhiyun 0 for XT, 1 for AT (default is AT). 3690*4882a593Smuzhiyun Format: <mode> 3691*4882a593Smuzhiyun 3692*4882a593Smuzhiyun parport= [HW,PPT] Specify parallel ports. 0 disables. 3693*4882a593Smuzhiyun Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] } 3694*4882a593Smuzhiyun Use 'auto' to force the driver to use any 3695*4882a593Smuzhiyun IRQ/DMA settings detected (the default is to 3696*4882a593Smuzhiyun ignore detected IRQ/DMA settings because of 3697*4882a593Smuzhiyun possible conflicts). You can specify the base 3698*4882a593Smuzhiyun address, IRQ, and DMA settings; IRQ and DMA 3699*4882a593Smuzhiyun should be numbers, or 'auto' (for using detected 3700*4882a593Smuzhiyun settings on that particular port), or 'nofifo' 3701*4882a593Smuzhiyun (to avoid using a FIFO even if it is detected). 3702*4882a593Smuzhiyun Parallel ports are assigned in the order they 3703*4882a593Smuzhiyun are specified on the command line, starting 3704*4882a593Smuzhiyun with parport0. 3705*4882a593Smuzhiyun 3706*4882a593Smuzhiyun parport_init_mode= [HW,PPT] 3707*4882a593Smuzhiyun Configure VIA parallel port to operate in 3708*4882a593Smuzhiyun a specific mode. This is necessary on Pegasos 3709*4882a593Smuzhiyun computer where firmware has no options for setting 3710*4882a593Smuzhiyun up parallel port mode and sets it to spp. 3711*4882a593Smuzhiyun Currently this function knows 686a and 8231 chips. 3712*4882a593Smuzhiyun Format: [spp|ps2|epp|ecp|ecpepp] 3713*4882a593Smuzhiyun 3714*4882a593Smuzhiyun pause_on_oops= 3715*4882a593Smuzhiyun Halt all CPUs after the first oops has been printed for 3716*4882a593Smuzhiyun the specified number of seconds. This is to be used if 3717*4882a593Smuzhiyun your oopses keep scrolling off the screen. 3718*4882a593Smuzhiyun 3719*4882a593Smuzhiyun pcbit= [HW,ISDN] 3720*4882a593Smuzhiyun 3721*4882a593Smuzhiyun pcd. [PARIDE] 3722*4882a593Smuzhiyun See header of drivers/block/paride/pcd.c. 3723*4882a593Smuzhiyun See also Documentation/admin-guide/blockdev/paride.rst. 3724*4882a593Smuzhiyun 3725*4882a593Smuzhiyun pci=option[,option...] [PCI] various PCI subsystem options. 3726*4882a593Smuzhiyun 3727*4882a593Smuzhiyun Some options herein operate on a specific device 3728*4882a593Smuzhiyun or a set of devices (<pci_dev>). These are 3729*4882a593Smuzhiyun specified in one of the following formats: 3730*4882a593Smuzhiyun 3731*4882a593Smuzhiyun [<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]* 3732*4882a593Smuzhiyun pci:<vendor>:<device>[:<subvendor>:<subdevice>] 3733*4882a593Smuzhiyun 3734*4882a593Smuzhiyun Note: the first format specifies a PCI 3735*4882a593Smuzhiyun bus/device/function address which may change 3736*4882a593Smuzhiyun if new hardware is inserted, if motherboard 3737*4882a593Smuzhiyun firmware changes, or due to changes caused 3738*4882a593Smuzhiyun by other kernel parameters. If the 3739*4882a593Smuzhiyun domain is left unspecified, it is 3740*4882a593Smuzhiyun taken to be zero. Optionally, a path 3741*4882a593Smuzhiyun to a device through multiple device/function 3742*4882a593Smuzhiyun addresses can be specified after the base 3743*4882a593Smuzhiyun address (this is more robust against 3744*4882a593Smuzhiyun renumbering issues). The second format 3745*4882a593Smuzhiyun selects devices using IDs from the 3746*4882a593Smuzhiyun configuration space which may match multiple 3747*4882a593Smuzhiyun devices in the system. 3748*4882a593Smuzhiyun 3749*4882a593Smuzhiyun earlydump dump PCI config space before the kernel 3750*4882a593Smuzhiyun changes anything 3751*4882a593Smuzhiyun off [X86] don't probe for the PCI bus 3752*4882a593Smuzhiyun bios [X86-32] force use of PCI BIOS, don't access 3753*4882a593Smuzhiyun the hardware directly. Use this if your machine 3754*4882a593Smuzhiyun has a non-standard PCI host bridge. 3755*4882a593Smuzhiyun nobios [X86-32] disallow use of PCI BIOS, only direct 3756*4882a593Smuzhiyun hardware access methods are allowed. Use this 3757*4882a593Smuzhiyun if you experience crashes upon bootup and you 3758*4882a593Smuzhiyun suspect they are caused by the BIOS. 3759*4882a593Smuzhiyun conf1 [X86] Force use of PCI Configuration Access 3760*4882a593Smuzhiyun Mechanism 1 (config address in IO port 0xCF8, 3761*4882a593Smuzhiyun data in IO port 0xCFC, both 32-bit). 3762*4882a593Smuzhiyun conf2 [X86] Force use of PCI Configuration Access 3763*4882a593Smuzhiyun Mechanism 2 (IO port 0xCF8 is an 8-bit port for 3764*4882a593Smuzhiyun the function, IO port 0xCFA, also 8-bit, sets 3765*4882a593Smuzhiyun bus number. The config space is then accessed 3766*4882a593Smuzhiyun through ports 0xC000-0xCFFF). 3767*4882a593Smuzhiyun See http://wiki.osdev.org/PCI for more info 3768*4882a593Smuzhiyun on the configuration access mechanisms. 3769*4882a593Smuzhiyun noaer [PCIE] If the PCIEAER kernel config parameter is 3770*4882a593Smuzhiyun enabled, this kernel boot option can be used to 3771*4882a593Smuzhiyun disable the use of PCIE advanced error reporting. 3772*4882a593Smuzhiyun nodomains [PCI] Disable support for multiple PCI 3773*4882a593Smuzhiyun root domains (aka PCI segments, in ACPI-speak). 3774*4882a593Smuzhiyun nommconf [X86] Disable use of MMCONFIG for PCI 3775*4882a593Smuzhiyun Configuration 3776*4882a593Smuzhiyun check_enable_amd_mmconf [X86] check for and enable 3777*4882a593Smuzhiyun properly configured MMIO access to PCI 3778*4882a593Smuzhiyun config space on AMD family 10h CPU 3779*4882a593Smuzhiyun nomsi [MSI] If the PCI_MSI kernel config parameter is 3780*4882a593Smuzhiyun enabled, this kernel boot option can be used to 3781*4882a593Smuzhiyun disable the use of MSI interrupts system-wide. 3782*4882a593Smuzhiyun noioapicquirk [APIC] Disable all boot interrupt quirks. 3783*4882a593Smuzhiyun Safety option to keep boot IRQs enabled. This 3784*4882a593Smuzhiyun should never be necessary. 3785*4882a593Smuzhiyun ioapicreroute [APIC] Enable rerouting of boot IRQs to the 3786*4882a593Smuzhiyun primary IO-APIC for bridges that cannot disable 3787*4882a593Smuzhiyun boot IRQs. This fixes a source of spurious IRQs 3788*4882a593Smuzhiyun when the system masks IRQs. 3789*4882a593Smuzhiyun noioapicreroute [APIC] Disable workaround that uses the 3790*4882a593Smuzhiyun boot IRQ equivalent of an IRQ that connects to 3791*4882a593Smuzhiyun a chipset where boot IRQs cannot be disabled. 3792*4882a593Smuzhiyun The opposite of ioapicreroute. 3793*4882a593Smuzhiyun biosirq [X86-32] Use PCI BIOS calls to get the interrupt 3794*4882a593Smuzhiyun routing table. These calls are known to be buggy 3795*4882a593Smuzhiyun on several machines and they hang the machine 3796*4882a593Smuzhiyun when used, but on other computers it's the only 3797*4882a593Smuzhiyun way to get the interrupt routing table. Try 3798*4882a593Smuzhiyun this option if the kernel is unable to allocate 3799*4882a593Smuzhiyun IRQs or discover secondary PCI buses on your 3800*4882a593Smuzhiyun motherboard. 3801*4882a593Smuzhiyun rom [X86] Assign address space to expansion ROMs. 3802*4882a593Smuzhiyun Use with caution as certain devices share 3803*4882a593Smuzhiyun address decoders between ROMs and other 3804*4882a593Smuzhiyun resources. 3805*4882a593Smuzhiyun norom [X86] Do not assign address space to 3806*4882a593Smuzhiyun expansion ROMs that do not already have 3807*4882a593Smuzhiyun BIOS assigned address ranges. 3808*4882a593Smuzhiyun nobar [X86] Do not assign address space to the 3809*4882a593Smuzhiyun BARs that weren't assigned by the BIOS. 3810*4882a593Smuzhiyun irqmask=0xMMMM [X86] Set a bit mask of IRQs allowed to be 3811*4882a593Smuzhiyun assigned automatically to PCI devices. You can 3812*4882a593Smuzhiyun make the kernel exclude IRQs of your ISA cards 3813*4882a593Smuzhiyun this way. 3814*4882a593Smuzhiyun pirqaddr=0xAAAAA [X86] Specify the physical address 3815*4882a593Smuzhiyun of the PIRQ table (normally generated 3816*4882a593Smuzhiyun by the BIOS) if it is outside the 3817*4882a593Smuzhiyun F0000h-100000h range. 3818*4882a593Smuzhiyun lastbus=N [X86] Scan all buses thru bus #N. Can be 3819*4882a593Smuzhiyun useful if the kernel is unable to find your 3820*4882a593Smuzhiyun secondary buses and you want to tell it 3821*4882a593Smuzhiyun explicitly which ones they are. 3822*4882a593Smuzhiyun assign-busses [X86] Always assign all PCI bus 3823*4882a593Smuzhiyun numbers ourselves, overriding 3824*4882a593Smuzhiyun whatever the firmware may have done. 3825*4882a593Smuzhiyun usepirqmask [X86] Honor the possible IRQ mask stored 3826*4882a593Smuzhiyun in the BIOS $PIR table. This is needed on 3827*4882a593Smuzhiyun some systems with broken BIOSes, notably 3828*4882a593Smuzhiyun some HP Pavilion N5400 and Omnibook XE3 3829*4882a593Smuzhiyun notebooks. This will have no effect if ACPI 3830*4882a593Smuzhiyun IRQ routing is enabled. 3831*4882a593Smuzhiyun noacpi [X86] Do not use ACPI for IRQ routing 3832*4882a593Smuzhiyun or for PCI scanning. 3833*4882a593Smuzhiyun use_crs [X86] Use PCI host bridge window information 3834*4882a593Smuzhiyun from ACPI. On BIOSes from 2008 or later, this 3835*4882a593Smuzhiyun is enabled by default. If you need to use this, 3836*4882a593Smuzhiyun please report a bug. 3837*4882a593Smuzhiyun nocrs [X86] Ignore PCI host bridge windows from ACPI. 3838*4882a593Smuzhiyun If you need to use this, please report a bug. 3839*4882a593Smuzhiyun routeirq Do IRQ routing for all PCI devices. 3840*4882a593Smuzhiyun This is normally done in pci_enable_device(), 3841*4882a593Smuzhiyun so this option is a temporary workaround 3842*4882a593Smuzhiyun for broken drivers that don't call it. 3843*4882a593Smuzhiyun skip_isa_align [X86] do not align io start addr, so can 3844*4882a593Smuzhiyun handle more pci cards 3845*4882a593Smuzhiyun noearly [X86] Don't do any early type 1 scanning. 3846*4882a593Smuzhiyun This might help on some broken boards which 3847*4882a593Smuzhiyun machine check when some devices' config space 3848*4882a593Smuzhiyun is read. But various workarounds are disabled 3849*4882a593Smuzhiyun and some IOMMU drivers will not work. 3850*4882a593Smuzhiyun bfsort Sort PCI devices into breadth-first order. 3851*4882a593Smuzhiyun This sorting is done to get a device 3852*4882a593Smuzhiyun order compatible with older (<= 2.4) kernels. 3853*4882a593Smuzhiyun nobfsort Don't sort PCI devices into breadth-first order. 3854*4882a593Smuzhiyun pcie_bus_tune_off Disable PCIe MPS (Max Payload Size) 3855*4882a593Smuzhiyun tuning and use the BIOS-configured MPS defaults. 3856*4882a593Smuzhiyun pcie_bus_safe Set every device's MPS to the largest value 3857*4882a593Smuzhiyun supported by all devices below the root complex. 3858*4882a593Smuzhiyun pcie_bus_perf Set device MPS to the largest allowable MPS 3859*4882a593Smuzhiyun based on its parent bus. Also set MRRS (Max 3860*4882a593Smuzhiyun Read Request Size) to the largest supported 3861*4882a593Smuzhiyun value (no larger than the MPS that the device 3862*4882a593Smuzhiyun or bus can support) for best performance. 3863*4882a593Smuzhiyun pcie_bus_peer2peer Set every device's MPS to 128B, which 3864*4882a593Smuzhiyun every device is guaranteed to support. This 3865*4882a593Smuzhiyun configuration allows peer-to-peer DMA between 3866*4882a593Smuzhiyun any pair of devices, possibly at the cost of 3867*4882a593Smuzhiyun reduced performance. This also guarantees 3868*4882a593Smuzhiyun that hot-added devices will work. 3869*4882a593Smuzhiyun cbiosize=nn[KMG] The fixed amount of bus space which is 3870*4882a593Smuzhiyun reserved for the CardBus bridge's IO window. 3871*4882a593Smuzhiyun The default value is 256 bytes. 3872*4882a593Smuzhiyun cbmemsize=nn[KMG] The fixed amount of bus space which is 3873*4882a593Smuzhiyun reserved for the CardBus bridge's memory 3874*4882a593Smuzhiyun window. The default value is 64 megabytes. 3875*4882a593Smuzhiyun resource_alignment= 3876*4882a593Smuzhiyun Format: 3877*4882a593Smuzhiyun [<order of align>@]<pci_dev>[; ...] 3878*4882a593Smuzhiyun Specifies alignment and device to reassign 3879*4882a593Smuzhiyun aligned memory resources. How to 3880*4882a593Smuzhiyun specify the device is described above. 3881*4882a593Smuzhiyun If <order of align> is not specified, 3882*4882a593Smuzhiyun PAGE_SIZE is used as alignment. 3883*4882a593Smuzhiyun A PCI-PCI bridge can be specified if resource 3884*4882a593Smuzhiyun windows need to be expanded. 3885*4882a593Smuzhiyun To specify the alignment for several 3886*4882a593Smuzhiyun instances of a device, the PCI vendor, 3887*4882a593Smuzhiyun device, subvendor, and subdevice may be 3888*4882a593Smuzhiyun specified, e.g., 12@pci:8086:9c22:103c:198f 3889*4882a593Smuzhiyun for 4096-byte alignment. 3890*4882a593Smuzhiyun ecrc= Enable/disable PCIe ECRC (transaction layer 3891*4882a593Smuzhiyun end-to-end CRC checking). 3892*4882a593Smuzhiyun bios: Use BIOS/firmware settings. This is the 3893*4882a593Smuzhiyun the default. 3894*4882a593Smuzhiyun off: Turn ECRC off 3895*4882a593Smuzhiyun on: Turn ECRC on. 3896*4882a593Smuzhiyun hpiosize=nn[KMG] The fixed amount of bus space which is 3897*4882a593Smuzhiyun reserved for hotplug bridge's IO window. 3898*4882a593Smuzhiyun Default size is 256 bytes. 3899*4882a593Smuzhiyun hpmmiosize=nn[KMG] The fixed amount of bus space which is 3900*4882a593Smuzhiyun reserved for hotplug bridge's MMIO window. 3901*4882a593Smuzhiyun Default size is 2 megabytes. 3902*4882a593Smuzhiyun hpmmioprefsize=nn[KMG] The fixed amount of bus space which is 3903*4882a593Smuzhiyun reserved for hotplug bridge's MMIO_PREF window. 3904*4882a593Smuzhiyun Default size is 2 megabytes. 3905*4882a593Smuzhiyun hpmemsize=nn[KMG] The fixed amount of bus space which is 3906*4882a593Smuzhiyun reserved for hotplug bridge's MMIO and 3907*4882a593Smuzhiyun MMIO_PREF window. 3908*4882a593Smuzhiyun Default size is 2 megabytes. 3909*4882a593Smuzhiyun hpbussize=nn The minimum amount of additional bus numbers 3910*4882a593Smuzhiyun reserved for buses below a hotplug bridge. 3911*4882a593Smuzhiyun Default is 1. 3912*4882a593Smuzhiyun realloc= Enable/disable reallocating PCI bridge resources 3913*4882a593Smuzhiyun if allocations done by BIOS are too small to 3914*4882a593Smuzhiyun accommodate resources required by all child 3915*4882a593Smuzhiyun devices. 3916*4882a593Smuzhiyun off: Turn realloc off 3917*4882a593Smuzhiyun on: Turn realloc on 3918*4882a593Smuzhiyun realloc same as realloc=on 3919*4882a593Smuzhiyun noari do not use PCIe ARI. 3920*4882a593Smuzhiyun noats [PCIE, Intel-IOMMU, AMD-IOMMU] 3921*4882a593Smuzhiyun do not use PCIe ATS (and IOMMU device IOTLB). 3922*4882a593Smuzhiyun pcie_scan_all Scan all possible PCIe devices. Otherwise we 3923*4882a593Smuzhiyun only look for one device below a PCIe downstream 3924*4882a593Smuzhiyun port. 3925*4882a593Smuzhiyun big_root_window Try to add a big 64bit memory window to the PCIe 3926*4882a593Smuzhiyun root complex on AMD CPUs. Some GFX hardware 3927*4882a593Smuzhiyun can resize a BAR to allow access to all VRAM. 3928*4882a593Smuzhiyun Adding the window is slightly risky (it may 3929*4882a593Smuzhiyun conflict with unreported devices), so this 3930*4882a593Smuzhiyun taints the kernel. 3931*4882a593Smuzhiyun disable_acs_redir=<pci_dev>[; ...] 3932*4882a593Smuzhiyun Specify one or more PCI devices (in the format 3933*4882a593Smuzhiyun specified above) separated by semicolons. 3934*4882a593Smuzhiyun Each device specified will have the PCI ACS 3935*4882a593Smuzhiyun redirect capabilities forced off which will 3936*4882a593Smuzhiyun allow P2P traffic between devices through 3937*4882a593Smuzhiyun bridges without forcing it upstream. Note: 3938*4882a593Smuzhiyun this removes isolation between devices and 3939*4882a593Smuzhiyun may put more devices in an IOMMU group. 3940*4882a593Smuzhiyun force_floating [S390] Force usage of floating interrupts. 3941*4882a593Smuzhiyun nomio [S390] Do not use MIO instructions. 3942*4882a593Smuzhiyun norid [S390] ignore the RID field and force use of 3943*4882a593Smuzhiyun one PCI domain per PCI function 3944*4882a593Smuzhiyun 3945*4882a593Smuzhiyun pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power 3946*4882a593Smuzhiyun Management. 3947*4882a593Smuzhiyun off Disable ASPM. 3948*4882a593Smuzhiyun force Enable ASPM even on devices that claim not to support it. 3949*4882a593Smuzhiyun WARNING: Forcing ASPM on may cause system lockups. 3950*4882a593Smuzhiyun 3951*4882a593Smuzhiyun pcie_ports= [PCIE] PCIe port services handling: 3952*4882a593Smuzhiyun native Use native PCIe services (PME, AER, DPC, PCIe hotplug) 3953*4882a593Smuzhiyun even if the platform doesn't give the OS permission to 3954*4882a593Smuzhiyun use them. This may cause conflicts if the platform 3955*4882a593Smuzhiyun also tries to use these services. 3956*4882a593Smuzhiyun dpc-native Use native PCIe service for DPC only. May 3957*4882a593Smuzhiyun cause conflicts if firmware uses AER or DPC. 3958*4882a593Smuzhiyun compat Disable native PCIe services (PME, AER, DPC, PCIe 3959*4882a593Smuzhiyun hotplug). 3960*4882a593Smuzhiyun 3961*4882a593Smuzhiyun pcie_port_pm= [PCIE] PCIe port power management handling: 3962*4882a593Smuzhiyun off Disable power management of all PCIe ports 3963*4882a593Smuzhiyun force Forcibly enable power management of all PCIe ports 3964*4882a593Smuzhiyun 3965*4882a593Smuzhiyun pcie_pme= [PCIE,PM] Native PCIe PME signaling options: 3966*4882a593Smuzhiyun nomsi Do not use MSI for native PCIe PME signaling (this makes 3967*4882a593Smuzhiyun all PCIe root ports use INTx for all services). 3968*4882a593Smuzhiyun 3969*4882a593Smuzhiyun pcmv= [HW,PCMCIA] BadgePAD 4 3970*4882a593Smuzhiyun 3971*4882a593Smuzhiyun pd_ignore_unused 3972*4882a593Smuzhiyun [PM] 3973*4882a593Smuzhiyun Keep all power-domains already enabled by bootloader on, 3974*4882a593Smuzhiyun even if no driver has claimed them. This is useful 3975*4882a593Smuzhiyun for debug and development, but should not be 3976*4882a593Smuzhiyun needed on a platform with proper driver support. 3977*4882a593Smuzhiyun 3978*4882a593Smuzhiyun pd. [PARIDE] 3979*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/paride.rst. 3980*4882a593Smuzhiyun 3981*4882a593Smuzhiyun pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at 3982*4882a593Smuzhiyun boot time. 3983*4882a593Smuzhiyun Format: { 0 | 1 } 3984*4882a593Smuzhiyun See arch/parisc/kernel/pdc_chassis.c 3985*4882a593Smuzhiyun 3986*4882a593Smuzhiyun percpu_alloc= Select which percpu first chunk allocator to use. 3987*4882a593Smuzhiyun Currently supported values are "embed" and "page". 3988*4882a593Smuzhiyun Archs may support subset or none of the selections. 3989*4882a593Smuzhiyun See comments in mm/percpu.c for details on each 3990*4882a593Smuzhiyun allocator. This parameter is primarily for debugging 3991*4882a593Smuzhiyun and performance comparison. 3992*4882a593Smuzhiyun 3993*4882a593Smuzhiyun pf. [PARIDE] 3994*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/paride.rst. 3995*4882a593Smuzhiyun 3996*4882a593Smuzhiyun pg. [PARIDE] 3997*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/paride.rst. 3998*4882a593Smuzhiyun 3999*4882a593Smuzhiyun pirq= [SMP,APIC] Manual mp-table setup 4000*4882a593Smuzhiyun See Documentation/x86/i386/IO-APIC.rst. 4001*4882a593Smuzhiyun 4002*4882a593Smuzhiyun plip= [PPT,NET] Parallel port network link 4003*4882a593Smuzhiyun Format: { parport<nr> | timid | 0 } 4004*4882a593Smuzhiyun See also Documentation/admin-guide/parport.rst. 4005*4882a593Smuzhiyun 4006*4882a593Smuzhiyun pmtmr= [X86] Manual setup of pmtmr I/O Port. 4007*4882a593Smuzhiyun Override pmtimer IOPort with a hex value. 4008*4882a593Smuzhiyun e.g. pmtmr=0x508 4009*4882a593Smuzhiyun 4010*4882a593Smuzhiyun pm_debug_messages [SUSPEND,KNL] 4011*4882a593Smuzhiyun Enable suspend/resume debug messages during boot up. 4012*4882a593Smuzhiyun 4013*4882a593Smuzhiyun pnp.debug=1 [PNP] 4014*4882a593Smuzhiyun Enable PNP debug messages (depends on the 4015*4882a593Smuzhiyun CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time 4016*4882a593Smuzhiyun via /sys/module/pnp/parameters/debug. We always show 4017*4882a593Smuzhiyun current resource usage; turning this on also shows 4018*4882a593Smuzhiyun possible settings and some assignment information. 4019*4882a593Smuzhiyun 4020*4882a593Smuzhiyun pnpacpi= [ACPI] 4021*4882a593Smuzhiyun { off } 4022*4882a593Smuzhiyun 4023*4882a593Smuzhiyun pnpbios= [ISAPNP] 4024*4882a593Smuzhiyun { on | off | curr | res | no-curr | no-res } 4025*4882a593Smuzhiyun 4026*4882a593Smuzhiyun pnp_reserve_irq= 4027*4882a593Smuzhiyun [ISAPNP] Exclude IRQs for the autoconfiguration 4028*4882a593Smuzhiyun 4029*4882a593Smuzhiyun pnp_reserve_dma= 4030*4882a593Smuzhiyun [ISAPNP] Exclude DMAs for the autoconfiguration 4031*4882a593Smuzhiyun 4032*4882a593Smuzhiyun pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration 4033*4882a593Smuzhiyun Ranges are in pairs (I/O port base and size). 4034*4882a593Smuzhiyun 4035*4882a593Smuzhiyun pnp_reserve_mem= 4036*4882a593Smuzhiyun [ISAPNP] Exclude memory regions for the 4037*4882a593Smuzhiyun autoconfiguration. 4038*4882a593Smuzhiyun Ranges are in pairs (memory base and size). 4039*4882a593Smuzhiyun 4040*4882a593Smuzhiyun ports= [IP_VS_FTP] IPVS ftp helper module 4041*4882a593Smuzhiyun Default is 21. 4042*4882a593Smuzhiyun Up to 8 (IP_VS_APP_MAX_PORTS) ports 4043*4882a593Smuzhiyun may be specified. 4044*4882a593Smuzhiyun Format: <port>,<port>.... 4045*4882a593Smuzhiyun 4046*4882a593Smuzhiyun powersave=off [PPC] This option disables power saving features. 4047*4882a593Smuzhiyun It specifically disables cpuidle and sets the 4048*4882a593Smuzhiyun platform machine description specific power_save 4049*4882a593Smuzhiyun function to NULL. On Idle the CPU just reduces 4050*4882a593Smuzhiyun execution priority. 4051*4882a593Smuzhiyun 4052*4882a593Smuzhiyun ppc_strict_facility_enable 4053*4882a593Smuzhiyun [PPC] This option catches any kernel floating point, 4054*4882a593Smuzhiyun Altivec, VSX and SPE outside of regions specifically 4055*4882a593Smuzhiyun allowed (eg kernel_enable_fpu()/kernel_disable_fpu()). 4056*4882a593Smuzhiyun There is some performance impact when enabling this. 4057*4882a593Smuzhiyun 4058*4882a593Smuzhiyun ppc_tm= [PPC] 4059*4882a593Smuzhiyun Format: {"off"} 4060*4882a593Smuzhiyun Disable Hardware Transactional Memory 4061*4882a593Smuzhiyun 4062*4882a593Smuzhiyun print-fatal-signals= 4063*4882a593Smuzhiyun [KNL] debug: print fatal signals 4064*4882a593Smuzhiyun 4065*4882a593Smuzhiyun If enabled, warn about various signal handling 4066*4882a593Smuzhiyun related application anomalies: too many signals, 4067*4882a593Smuzhiyun too many POSIX.1 timers, fatal signals causing a 4068*4882a593Smuzhiyun coredump - etc. 4069*4882a593Smuzhiyun 4070*4882a593Smuzhiyun If you hit the warning due to signal overflow, 4071*4882a593Smuzhiyun you might want to try "ulimit -i unlimited". 4072*4882a593Smuzhiyun 4073*4882a593Smuzhiyun default: off. 4074*4882a593Smuzhiyun 4075*4882a593Smuzhiyun printk.always_kmsg_dump= 4076*4882a593Smuzhiyun Trigger kmsg_dump for cases other than kernel oops or 4077*4882a593Smuzhiyun panics 4078*4882a593Smuzhiyun Format: <bool> (1/Y/y=enable, 0/N/n=disable) 4079*4882a593Smuzhiyun default: disabled 4080*4882a593Smuzhiyun 4081*4882a593Smuzhiyun printk.devkmsg={on,off,ratelimit} 4082*4882a593Smuzhiyun Control writing to /dev/kmsg. 4083*4882a593Smuzhiyun on - unlimited logging to /dev/kmsg from userspace 4084*4882a593Smuzhiyun off - logging to /dev/kmsg disabled 4085*4882a593Smuzhiyun ratelimit - ratelimit the logging 4086*4882a593Smuzhiyun Default: ratelimit 4087*4882a593Smuzhiyun 4088*4882a593Smuzhiyun printk.time= Show timing data prefixed to each printk message line 4089*4882a593Smuzhiyun Format: <bool> (1/Y/y=enable, 0/N/n=disable) 4090*4882a593Smuzhiyun 4091*4882a593Smuzhiyun processor.max_cstate= [HW,ACPI] 4092*4882a593Smuzhiyun Limit processor to maximum C-state 4093*4882a593Smuzhiyun max_cstate=9 overrides any DMI blacklist limit. 4094*4882a593Smuzhiyun 4095*4882a593Smuzhiyun processor.nocst [HW,ACPI] 4096*4882a593Smuzhiyun Ignore the _CST method to determine C-states, 4097*4882a593Smuzhiyun instead using the legacy FADT method 4098*4882a593Smuzhiyun 4099*4882a593Smuzhiyun profile= [KNL] Enable kernel profiling via /proc/profile 4100*4882a593Smuzhiyun Format: [<profiletype>,]<number> 4101*4882a593Smuzhiyun Param: <profiletype>: "schedule", "sleep", or "kvm" 4102*4882a593Smuzhiyun [defaults to kernel profiling] 4103*4882a593Smuzhiyun Param: "schedule" - profile schedule points. 4104*4882a593Smuzhiyun Param: "sleep" - profile D-state sleeping (millisecs). 4105*4882a593Smuzhiyun Requires CONFIG_SCHEDSTATS 4106*4882a593Smuzhiyun Param: "kvm" - profile VM exits. 4107*4882a593Smuzhiyun Param: <number> - step/bucket size as a power of 2 for 4108*4882a593Smuzhiyun statistical time based profiling. 4109*4882a593Smuzhiyun 4110*4882a593Smuzhiyun prompt_ramdisk= [RAM] [Deprecated] 4111*4882a593Smuzhiyun 4112*4882a593Smuzhiyun prot_virt= [S390] enable hosting protected virtual machines 4113*4882a593Smuzhiyun isolated from the hypervisor (if hardware supports 4114*4882a593Smuzhiyun that). 4115*4882a593Smuzhiyun Format: <bool> 4116*4882a593Smuzhiyun 4117*4882a593Smuzhiyun psi= [KNL] Enable or disable pressure stall information 4118*4882a593Smuzhiyun tracking. 4119*4882a593Smuzhiyun Format: <bool> 4120*4882a593Smuzhiyun 4121*4882a593Smuzhiyun psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 4122*4882a593Smuzhiyun probe for; one of (bare|imps|exps|lifebook|any). 4123*4882a593Smuzhiyun psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports 4124*4882a593Smuzhiyun per second. 4125*4882a593Smuzhiyun psmouse.resetafter= [HW,MOUSE] 4126*4882a593Smuzhiyun Try to reset the device after so many bad packets 4127*4882a593Smuzhiyun (0 = never). 4128*4882a593Smuzhiyun psmouse.resolution= 4129*4882a593Smuzhiyun [HW,MOUSE] Set desired mouse resolution, in dpi. 4130*4882a593Smuzhiyun psmouse.smartscroll= 4131*4882a593Smuzhiyun [HW,MOUSE] Controls Logitech smartscroll autorepeat. 4132*4882a593Smuzhiyun 0 = disabled, 1 = enabled (default). 4133*4882a593Smuzhiyun 4134*4882a593Smuzhiyun pstore.backend= Specify the name of the pstore backend to use 4135*4882a593Smuzhiyun 4136*4882a593Smuzhiyun pt. [PARIDE] 4137*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/paride.rst. 4138*4882a593Smuzhiyun 4139*4882a593Smuzhiyun pti= [X86-64] Control Page Table Isolation of user and 4140*4882a593Smuzhiyun kernel address spaces. Disabling this feature 4141*4882a593Smuzhiyun removes hardening, but improves performance of 4142*4882a593Smuzhiyun system calls and interrupts. 4143*4882a593Smuzhiyun 4144*4882a593Smuzhiyun on - unconditionally enable 4145*4882a593Smuzhiyun off - unconditionally disable 4146*4882a593Smuzhiyun auto - kernel detects whether your CPU model is 4147*4882a593Smuzhiyun vulnerable to issues that PTI mitigates 4148*4882a593Smuzhiyun 4149*4882a593Smuzhiyun Not specifying this option is equivalent to pti=auto. 4150*4882a593Smuzhiyun 4151*4882a593Smuzhiyun nopti [X86-64] 4152*4882a593Smuzhiyun Equivalent to pti=off 4153*4882a593Smuzhiyun 4154*4882a593Smuzhiyun pty.legacy_count= 4155*4882a593Smuzhiyun [KNL] Number of legacy pty's. Overwrites compiled-in 4156*4882a593Smuzhiyun default number. 4157*4882a593Smuzhiyun 4158*4882a593Smuzhiyun quiet [KNL] Disable most log messages 4159*4882a593Smuzhiyun 4160*4882a593Smuzhiyun r128= [HW,DRM] 4161*4882a593Smuzhiyun 4162*4882a593Smuzhiyun raid= [HW,RAID] 4163*4882a593Smuzhiyun See Documentation/admin-guide/md.rst. 4164*4882a593Smuzhiyun 4165*4882a593Smuzhiyun ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 4166*4882a593Smuzhiyun See Documentation/admin-guide/blockdev/ramdisk.rst. 4167*4882a593Smuzhiyun 4168*4882a593Smuzhiyun ramdisk_start= [RAM] RAM disk image start address 4169*4882a593Smuzhiyun 4170*4882a593Smuzhiyun random.trust_cpu={on,off} 4171*4882a593Smuzhiyun [KNL] Enable or disable trusting the use of the 4172*4882a593Smuzhiyun CPU's random number generator (if available) to 4173*4882a593Smuzhiyun fully seed the kernel's CRNG. Default is controlled 4174*4882a593Smuzhiyun by CONFIG_RANDOM_TRUST_CPU. 4175*4882a593Smuzhiyun 4176*4882a593Smuzhiyun random.trust_bootloader={on,off} 4177*4882a593Smuzhiyun [KNL] Enable or disable trusting the use of a 4178*4882a593Smuzhiyun seed passed by the bootloader (if available) to 4179*4882a593Smuzhiyun fully seed the kernel's CRNG. Default is controlled 4180*4882a593Smuzhiyun by CONFIG_RANDOM_TRUST_BOOTLOADER. 4181*4882a593Smuzhiyun 4182*4882a593Smuzhiyun ras=option[,option,...] [KNL] RAS-specific options 4183*4882a593Smuzhiyun 4184*4882a593Smuzhiyun cec_disable [X86] 4185*4882a593Smuzhiyun Disable the Correctable Errors Collector, 4186*4882a593Smuzhiyun see CONFIG_RAS_CEC help text. 4187*4882a593Smuzhiyun 4188*4882a593Smuzhiyun rcu_nocbs= [KNL] 4189*4882a593Smuzhiyun The argument is a cpu list, as described above, 4190*4882a593Smuzhiyun except that the string "all" can be used to 4191*4882a593Smuzhiyun specify every CPU on the system. 4192*4882a593Smuzhiyun 4193*4882a593Smuzhiyun In kernels built with CONFIG_RCU_NOCB_CPU=y, set 4194*4882a593Smuzhiyun the specified list of CPUs to be no-callback CPUs. 4195*4882a593Smuzhiyun Invocation of these CPUs' RCU callbacks will be 4196*4882a593Smuzhiyun offloaded to "rcuox/N" kthreads created for that 4197*4882a593Smuzhiyun purpose, where "x" is "p" for RCU-preempt, and 4198*4882a593Smuzhiyun "s" for RCU-sched, and "N" is the CPU number. 4199*4882a593Smuzhiyun This reduces OS jitter on the offloaded CPUs, 4200*4882a593Smuzhiyun which can be useful for HPC and real-time 4201*4882a593Smuzhiyun workloads. It can also improve energy efficiency 4202*4882a593Smuzhiyun for asymmetric multiprocessors. 4203*4882a593Smuzhiyun 4204*4882a593Smuzhiyun rcu_nocb_poll [KNL] 4205*4882a593Smuzhiyun Rather than requiring that offloaded CPUs 4206*4882a593Smuzhiyun (specified by rcu_nocbs= above) explicitly 4207*4882a593Smuzhiyun awaken the corresponding "rcuoN" kthreads, 4208*4882a593Smuzhiyun make these kthreads poll for callbacks. 4209*4882a593Smuzhiyun This improves the real-time response for the 4210*4882a593Smuzhiyun offloaded CPUs by relieving them of the need to 4211*4882a593Smuzhiyun wake up the corresponding kthread, but degrades 4212*4882a593Smuzhiyun energy efficiency by requiring that the kthreads 4213*4882a593Smuzhiyun periodically wake up to do the polling. 4214*4882a593Smuzhiyun 4215*4882a593Smuzhiyun rcutree.blimit= [KNL] 4216*4882a593Smuzhiyun Set maximum number of finished RCU callbacks to 4217*4882a593Smuzhiyun process in one batch. 4218*4882a593Smuzhiyun 4219*4882a593Smuzhiyun rcutree.dump_tree= [KNL] 4220*4882a593Smuzhiyun Dump the structure of the rcu_node combining tree 4221*4882a593Smuzhiyun out at early boot. This is used for diagnostic 4222*4882a593Smuzhiyun purposes, to verify correct tree setup. 4223*4882a593Smuzhiyun 4224*4882a593Smuzhiyun rcutree.gp_cleanup_delay= [KNL] 4225*4882a593Smuzhiyun Set the number of jiffies to delay each step of 4226*4882a593Smuzhiyun RCU grace-period cleanup. 4227*4882a593Smuzhiyun 4228*4882a593Smuzhiyun rcutree.gp_init_delay= [KNL] 4229*4882a593Smuzhiyun Set the number of jiffies to delay each step of 4230*4882a593Smuzhiyun RCU grace-period initialization. 4231*4882a593Smuzhiyun 4232*4882a593Smuzhiyun rcutree.gp_preinit_delay= [KNL] 4233*4882a593Smuzhiyun Set the number of jiffies to delay each step of 4234*4882a593Smuzhiyun RCU grace-period pre-initialization, that is, 4235*4882a593Smuzhiyun the propagation of recent CPU-hotplug changes up 4236*4882a593Smuzhiyun the rcu_node combining tree. 4237*4882a593Smuzhiyun 4238*4882a593Smuzhiyun rcutree.use_softirq= [KNL] 4239*4882a593Smuzhiyun If set to zero, move all RCU_SOFTIRQ processing to 4240*4882a593Smuzhiyun per-CPU rcuc kthreads. Defaults to a non-zero 4241*4882a593Smuzhiyun value, meaning that RCU_SOFTIRQ is used by default. 4242*4882a593Smuzhiyun Specify rcutree.use_softirq=0 to use rcuc kthreads. 4243*4882a593Smuzhiyun 4244*4882a593Smuzhiyun rcutree.rcu_fanout_exact= [KNL] 4245*4882a593Smuzhiyun Disable autobalancing of the rcu_node combining 4246*4882a593Smuzhiyun tree. This is used by rcutorture, and might 4247*4882a593Smuzhiyun possibly be useful for architectures having high 4248*4882a593Smuzhiyun cache-to-cache transfer latencies. 4249*4882a593Smuzhiyun 4250*4882a593Smuzhiyun rcutree.rcu_fanout_leaf= [KNL] 4251*4882a593Smuzhiyun Change the number of CPUs assigned to each 4252*4882a593Smuzhiyun leaf rcu_node structure. Useful for very 4253*4882a593Smuzhiyun large systems, which will choose the value 64, 4254*4882a593Smuzhiyun and for NUMA systems with large remote-access 4255*4882a593Smuzhiyun latencies, which will choose a value aligned 4256*4882a593Smuzhiyun with the appropriate hardware boundaries. 4257*4882a593Smuzhiyun 4258*4882a593Smuzhiyun rcutree.rcu_min_cached_objs= [KNL] 4259*4882a593Smuzhiyun Minimum number of objects which are cached and 4260*4882a593Smuzhiyun maintained per one CPU. Object size is equal 4261*4882a593Smuzhiyun to PAGE_SIZE. The cache allows to reduce the 4262*4882a593Smuzhiyun pressure to page allocator, also it makes the 4263*4882a593Smuzhiyun whole algorithm to behave better in low memory 4264*4882a593Smuzhiyun condition. 4265*4882a593Smuzhiyun 4266*4882a593Smuzhiyun rcutree.jiffies_till_first_fqs= [KNL] 4267*4882a593Smuzhiyun Set delay from grace-period initialization to 4268*4882a593Smuzhiyun first attempt to force quiescent states. 4269*4882a593Smuzhiyun Units are jiffies, minimum value is zero, 4270*4882a593Smuzhiyun and maximum value is HZ. 4271*4882a593Smuzhiyun 4272*4882a593Smuzhiyun rcutree.jiffies_till_next_fqs= [KNL] 4273*4882a593Smuzhiyun Set delay between subsequent attempts to force 4274*4882a593Smuzhiyun quiescent states. Units are jiffies, minimum 4275*4882a593Smuzhiyun value is one, and maximum value is HZ. 4276*4882a593Smuzhiyun 4277*4882a593Smuzhiyun rcutree.jiffies_till_sched_qs= [KNL] 4278*4882a593Smuzhiyun Set required age in jiffies for a 4279*4882a593Smuzhiyun given grace period before RCU starts 4280*4882a593Smuzhiyun soliciting quiescent-state help from 4281*4882a593Smuzhiyun rcu_note_context_switch() and cond_resched(). 4282*4882a593Smuzhiyun If not specified, the kernel will calculate 4283*4882a593Smuzhiyun a value based on the most recent settings 4284*4882a593Smuzhiyun of rcutree.jiffies_till_first_fqs 4285*4882a593Smuzhiyun and rcutree.jiffies_till_next_fqs. 4286*4882a593Smuzhiyun This calculated value may be viewed in 4287*4882a593Smuzhiyun rcutree.jiffies_to_sched_qs. Any attempt to set 4288*4882a593Smuzhiyun rcutree.jiffies_to_sched_qs will be cheerfully 4289*4882a593Smuzhiyun overwritten. 4290*4882a593Smuzhiyun 4291*4882a593Smuzhiyun rcutree.kthread_prio= [KNL,BOOT] 4292*4882a593Smuzhiyun Set the SCHED_FIFO priority of the RCU per-CPU 4293*4882a593Smuzhiyun kthreads (rcuc/N). This value is also used for 4294*4882a593Smuzhiyun the priority of the RCU boost threads (rcub/N) 4295*4882a593Smuzhiyun and for the RCU grace-period kthreads (rcu_bh, 4296*4882a593Smuzhiyun rcu_preempt, and rcu_sched). If RCU_BOOST is 4297*4882a593Smuzhiyun set, valid values are 1-99 and the default is 1 4298*4882a593Smuzhiyun (the least-favored priority). Otherwise, when 4299*4882a593Smuzhiyun RCU_BOOST is not set, valid values are 0-99 and 4300*4882a593Smuzhiyun the default is zero (non-realtime operation). 4301*4882a593Smuzhiyun 4302*4882a593Smuzhiyun rcutree.rcu_nocb_gp_stride= [KNL] 4303*4882a593Smuzhiyun Set the number of NOCB callback kthreads in 4304*4882a593Smuzhiyun each group, which defaults to the square root 4305*4882a593Smuzhiyun of the number of CPUs. Larger numbers reduce 4306*4882a593Smuzhiyun the wakeup overhead on the global grace-period 4307*4882a593Smuzhiyun kthread, but increases that same overhead on 4308*4882a593Smuzhiyun each group's NOCB grace-period kthread. 4309*4882a593Smuzhiyun 4310*4882a593Smuzhiyun rcutree.qhimark= [KNL] 4311*4882a593Smuzhiyun Set threshold of queued RCU callbacks beyond which 4312*4882a593Smuzhiyun batch limiting is disabled. 4313*4882a593Smuzhiyun 4314*4882a593Smuzhiyun rcutree.qlowmark= [KNL] 4315*4882a593Smuzhiyun Set threshold of queued RCU callbacks below which 4316*4882a593Smuzhiyun batch limiting is re-enabled. 4317*4882a593Smuzhiyun 4318*4882a593Smuzhiyun rcutree.qovld= [KNL] 4319*4882a593Smuzhiyun Set threshold of queued RCU callbacks beyond which 4320*4882a593Smuzhiyun RCU's force-quiescent-state scan will aggressively 4321*4882a593Smuzhiyun enlist help from cond_resched() and sched IPIs to 4322*4882a593Smuzhiyun help CPUs more quickly reach quiescent states. 4323*4882a593Smuzhiyun Set to less than zero to make this be set based 4324*4882a593Smuzhiyun on rcutree.qhimark at boot time and to zero to 4325*4882a593Smuzhiyun disable more aggressive help enlistment. 4326*4882a593Smuzhiyun 4327*4882a593Smuzhiyun rcutree.rcu_idle_gp_delay= [KNL] 4328*4882a593Smuzhiyun Set wakeup interval for idle CPUs that have 4329*4882a593Smuzhiyun RCU callbacks (RCU_FAST_NO_HZ=y). 4330*4882a593Smuzhiyun 4331*4882a593Smuzhiyun rcutree.rcu_idle_lazy_gp_delay= [KNL] 4332*4882a593Smuzhiyun Set wakeup interval for idle CPUs that have 4333*4882a593Smuzhiyun only "lazy" RCU callbacks (RCU_FAST_NO_HZ=y). 4334*4882a593Smuzhiyun Lazy RCU callbacks are those which RCU can 4335*4882a593Smuzhiyun prove do nothing more than free memory. 4336*4882a593Smuzhiyun 4337*4882a593Smuzhiyun rcutree.rcu_kick_kthreads= [KNL] 4338*4882a593Smuzhiyun Cause the grace-period kthread to get an extra 4339*4882a593Smuzhiyun wake_up() if it sleeps three times longer than 4340*4882a593Smuzhiyun it should at force-quiescent-state time. 4341*4882a593Smuzhiyun This wake_up() will be accompanied by a 4342*4882a593Smuzhiyun WARN_ONCE() splat and an ftrace_dump(). 4343*4882a593Smuzhiyun 4344*4882a593Smuzhiyun rcutree.rcu_unlock_delay= [KNL] 4345*4882a593Smuzhiyun In CONFIG_RCU_STRICT_GRACE_PERIOD=y kernels, 4346*4882a593Smuzhiyun this specifies an rcu_read_unlock()-time delay 4347*4882a593Smuzhiyun in microseconds. This defaults to zero. 4348*4882a593Smuzhiyun Larger delays increase the probability of 4349*4882a593Smuzhiyun catching RCU pointer leaks, that is, buggy use 4350*4882a593Smuzhiyun of RCU-protected pointers after the relevant 4351*4882a593Smuzhiyun rcu_read_unlock() has completed. 4352*4882a593Smuzhiyun 4353*4882a593Smuzhiyun rcutree.sysrq_rcu= [KNL] 4354*4882a593Smuzhiyun Commandeer a sysrq key to dump out Tree RCU's 4355*4882a593Smuzhiyun rcu_node tree with an eye towards determining 4356*4882a593Smuzhiyun why a new grace period has not yet started. 4357*4882a593Smuzhiyun 4358*4882a593Smuzhiyun rcuscale.gp_async= [KNL] 4359*4882a593Smuzhiyun Measure performance of asynchronous 4360*4882a593Smuzhiyun grace-period primitives such as call_rcu(). 4361*4882a593Smuzhiyun 4362*4882a593Smuzhiyun rcuscale.gp_async_max= [KNL] 4363*4882a593Smuzhiyun Specify the maximum number of outstanding 4364*4882a593Smuzhiyun callbacks per writer thread. When a writer 4365*4882a593Smuzhiyun thread exceeds this limit, it invokes the 4366*4882a593Smuzhiyun corresponding flavor of rcu_barrier() to allow 4367*4882a593Smuzhiyun previously posted callbacks to drain. 4368*4882a593Smuzhiyun 4369*4882a593Smuzhiyun rcuscale.gp_exp= [KNL] 4370*4882a593Smuzhiyun Measure performance of expedited synchronous 4371*4882a593Smuzhiyun grace-period primitives. 4372*4882a593Smuzhiyun 4373*4882a593Smuzhiyun rcuscale.holdoff= [KNL] 4374*4882a593Smuzhiyun Set test-start holdoff period. The purpose of 4375*4882a593Smuzhiyun this parameter is to delay the start of the 4376*4882a593Smuzhiyun test until boot completes in order to avoid 4377*4882a593Smuzhiyun interference. 4378*4882a593Smuzhiyun 4379*4882a593Smuzhiyun rcuscale.kfree_rcu_test= [KNL] 4380*4882a593Smuzhiyun Set to measure performance of kfree_rcu() flooding. 4381*4882a593Smuzhiyun 4382*4882a593Smuzhiyun rcuscale.kfree_nthreads= [KNL] 4383*4882a593Smuzhiyun The number of threads running loops of kfree_rcu(). 4384*4882a593Smuzhiyun 4385*4882a593Smuzhiyun rcuscale.kfree_alloc_num= [KNL] 4386*4882a593Smuzhiyun Number of allocations and frees done in an iteration. 4387*4882a593Smuzhiyun 4388*4882a593Smuzhiyun rcuscale.kfree_loops= [KNL] 4389*4882a593Smuzhiyun Number of loops doing rcuscale.kfree_alloc_num number 4390*4882a593Smuzhiyun of allocations and frees. 4391*4882a593Smuzhiyun 4392*4882a593Smuzhiyun rcuscale.nreaders= [KNL] 4393*4882a593Smuzhiyun Set number of RCU readers. The value -1 selects 4394*4882a593Smuzhiyun N, where N is the number of CPUs. A value 4395*4882a593Smuzhiyun "n" less than -1 selects N-n+1, where N is again 4396*4882a593Smuzhiyun the number of CPUs. For example, -2 selects N 4397*4882a593Smuzhiyun (the number of CPUs), -3 selects N+1, and so on. 4398*4882a593Smuzhiyun A value of "n" less than or equal to -N selects 4399*4882a593Smuzhiyun a single reader. 4400*4882a593Smuzhiyun 4401*4882a593Smuzhiyun rcuscale.nwriters= [KNL] 4402*4882a593Smuzhiyun Set number of RCU writers. The values operate 4403*4882a593Smuzhiyun the same as for rcuscale.nreaders. 4404*4882a593Smuzhiyun N, where N is the number of CPUs 4405*4882a593Smuzhiyun 4406*4882a593Smuzhiyun rcuscale.perf_type= [KNL] 4407*4882a593Smuzhiyun Specify the RCU implementation to test. 4408*4882a593Smuzhiyun 4409*4882a593Smuzhiyun rcuscale.shutdown= [KNL] 4410*4882a593Smuzhiyun Shut the system down after performance tests 4411*4882a593Smuzhiyun complete. This is useful for hands-off automated 4412*4882a593Smuzhiyun testing. 4413*4882a593Smuzhiyun 4414*4882a593Smuzhiyun rcuscale.verbose= [KNL] 4415*4882a593Smuzhiyun Enable additional printk() statements. 4416*4882a593Smuzhiyun 4417*4882a593Smuzhiyun rcuscale.writer_holdoff= [KNL] 4418*4882a593Smuzhiyun Write-side holdoff between grace periods, 4419*4882a593Smuzhiyun in microseconds. The default of zero says 4420*4882a593Smuzhiyun no holdoff. 4421*4882a593Smuzhiyun 4422*4882a593Smuzhiyun rcutorture.fqs_duration= [KNL] 4423*4882a593Smuzhiyun Set duration of force_quiescent_state bursts 4424*4882a593Smuzhiyun in microseconds. 4425*4882a593Smuzhiyun 4426*4882a593Smuzhiyun rcutorture.fqs_holdoff= [KNL] 4427*4882a593Smuzhiyun Set holdoff time within force_quiescent_state bursts 4428*4882a593Smuzhiyun in microseconds. 4429*4882a593Smuzhiyun 4430*4882a593Smuzhiyun rcutorture.fqs_stutter= [KNL] 4431*4882a593Smuzhiyun Set wait time between force_quiescent_state bursts 4432*4882a593Smuzhiyun in seconds. 4433*4882a593Smuzhiyun 4434*4882a593Smuzhiyun rcutorture.fwd_progress= [KNL] 4435*4882a593Smuzhiyun Enable RCU grace-period forward-progress testing 4436*4882a593Smuzhiyun for the types of RCU supporting this notion. 4437*4882a593Smuzhiyun 4438*4882a593Smuzhiyun rcutorture.fwd_progress_div= [KNL] 4439*4882a593Smuzhiyun Specify the fraction of a CPU-stall-warning 4440*4882a593Smuzhiyun period to do tight-loop forward-progress testing. 4441*4882a593Smuzhiyun 4442*4882a593Smuzhiyun rcutorture.fwd_progress_holdoff= [KNL] 4443*4882a593Smuzhiyun Number of seconds to wait between successive 4444*4882a593Smuzhiyun forward-progress tests. 4445*4882a593Smuzhiyun 4446*4882a593Smuzhiyun rcutorture.fwd_progress_need_resched= [KNL] 4447*4882a593Smuzhiyun Enclose cond_resched() calls within checks for 4448*4882a593Smuzhiyun need_resched() during tight-loop forward-progress 4449*4882a593Smuzhiyun testing. 4450*4882a593Smuzhiyun 4451*4882a593Smuzhiyun rcutorture.gp_cond= [KNL] 4452*4882a593Smuzhiyun Use conditional/asynchronous update-side 4453*4882a593Smuzhiyun primitives, if available. 4454*4882a593Smuzhiyun 4455*4882a593Smuzhiyun rcutorture.gp_exp= [KNL] 4456*4882a593Smuzhiyun Use expedited update-side primitives, if available. 4457*4882a593Smuzhiyun 4458*4882a593Smuzhiyun rcutorture.gp_normal= [KNL] 4459*4882a593Smuzhiyun Use normal (non-expedited) asynchronous 4460*4882a593Smuzhiyun update-side primitives, if available. 4461*4882a593Smuzhiyun 4462*4882a593Smuzhiyun rcutorture.gp_sync= [KNL] 4463*4882a593Smuzhiyun Use normal (non-expedited) synchronous 4464*4882a593Smuzhiyun update-side primitives, if available. If all 4465*4882a593Smuzhiyun of rcutorture.gp_cond=, rcutorture.gp_exp=, 4466*4882a593Smuzhiyun rcutorture.gp_normal=, and rcutorture.gp_sync= 4467*4882a593Smuzhiyun are zero, rcutorture acts as if is interpreted 4468*4882a593Smuzhiyun they are all non-zero. 4469*4882a593Smuzhiyun 4470*4882a593Smuzhiyun rcutorture.irqreader= [KNL] 4471*4882a593Smuzhiyun Run RCU readers from irq handlers, or, more 4472*4882a593Smuzhiyun accurately, from a timer handler. Not all RCU 4473*4882a593Smuzhiyun flavors take kindly to this sort of thing. 4474*4882a593Smuzhiyun 4475*4882a593Smuzhiyun rcutorture.leakpointer= [KNL] 4476*4882a593Smuzhiyun Leak an RCU-protected pointer out of the reader. 4477*4882a593Smuzhiyun This can of course result in splats, and is 4478*4882a593Smuzhiyun intended to test the ability of things like 4479*4882a593Smuzhiyun CONFIG_RCU_STRICT_GRACE_PERIOD=y to detect 4480*4882a593Smuzhiyun such leaks. 4481*4882a593Smuzhiyun 4482*4882a593Smuzhiyun rcutorture.n_barrier_cbs= [KNL] 4483*4882a593Smuzhiyun Set callbacks/threads for rcu_barrier() testing. 4484*4882a593Smuzhiyun 4485*4882a593Smuzhiyun rcutorture.nfakewriters= [KNL] 4486*4882a593Smuzhiyun Set number of concurrent RCU writers. These just 4487*4882a593Smuzhiyun stress RCU, they don't participate in the actual 4488*4882a593Smuzhiyun test, hence the "fake". 4489*4882a593Smuzhiyun 4490*4882a593Smuzhiyun rcutorture.nreaders= [KNL] 4491*4882a593Smuzhiyun Set number of RCU readers. The value -1 selects 4492*4882a593Smuzhiyun N-1, where N is the number of CPUs. A value 4493*4882a593Smuzhiyun "n" less than -1 selects N-n-2, where N is again 4494*4882a593Smuzhiyun the number of CPUs. For example, -2 selects N 4495*4882a593Smuzhiyun (the number of CPUs), -3 selects N+1, and so on. 4496*4882a593Smuzhiyun 4497*4882a593Smuzhiyun rcutorture.object_debug= [KNL] 4498*4882a593Smuzhiyun Enable debug-object double-call_rcu() testing. 4499*4882a593Smuzhiyun 4500*4882a593Smuzhiyun rcutorture.onoff_holdoff= [KNL] 4501*4882a593Smuzhiyun Set time (s) after boot for CPU-hotplug testing. 4502*4882a593Smuzhiyun 4503*4882a593Smuzhiyun rcutorture.onoff_interval= [KNL] 4504*4882a593Smuzhiyun Set time (jiffies) between CPU-hotplug operations, 4505*4882a593Smuzhiyun or zero to disable CPU-hotplug testing. 4506*4882a593Smuzhiyun 4507*4882a593Smuzhiyun rcutorture.read_exit= [KNL] 4508*4882a593Smuzhiyun Set the number of read-then-exit kthreads used 4509*4882a593Smuzhiyun to test the interaction of RCU updaters and 4510*4882a593Smuzhiyun task-exit processing. 4511*4882a593Smuzhiyun 4512*4882a593Smuzhiyun rcutorture.read_exit_burst= [KNL] 4513*4882a593Smuzhiyun The number of times in a given read-then-exit 4514*4882a593Smuzhiyun episode that a set of read-then-exit kthreads 4515*4882a593Smuzhiyun is spawned. 4516*4882a593Smuzhiyun 4517*4882a593Smuzhiyun rcutorture.read_exit_delay= [KNL] 4518*4882a593Smuzhiyun The delay, in seconds, between successive 4519*4882a593Smuzhiyun read-then-exit testing episodes. 4520*4882a593Smuzhiyun 4521*4882a593Smuzhiyun rcutorture.shuffle_interval= [KNL] 4522*4882a593Smuzhiyun Set task-shuffle interval (s). Shuffling tasks 4523*4882a593Smuzhiyun allows some CPUs to go into dyntick-idle mode 4524*4882a593Smuzhiyun during the rcutorture test. 4525*4882a593Smuzhiyun 4526*4882a593Smuzhiyun rcutorture.shutdown_secs= [KNL] 4527*4882a593Smuzhiyun Set time (s) after boot system shutdown. This 4528*4882a593Smuzhiyun is useful for hands-off automated testing. 4529*4882a593Smuzhiyun 4530*4882a593Smuzhiyun rcutorture.stall_cpu= [KNL] 4531*4882a593Smuzhiyun Duration of CPU stall (s) to test RCU CPU stall 4532*4882a593Smuzhiyun warnings, zero to disable. 4533*4882a593Smuzhiyun 4534*4882a593Smuzhiyun rcutorture.stall_cpu_block= [KNL] 4535*4882a593Smuzhiyun Sleep while stalling if set. This will result 4536*4882a593Smuzhiyun in warnings from preemptible RCU in addition 4537*4882a593Smuzhiyun to any other stall-related activity. 4538*4882a593Smuzhiyun 4539*4882a593Smuzhiyun rcutorture.stall_cpu_holdoff= [KNL] 4540*4882a593Smuzhiyun Time to wait (s) after boot before inducing stall. 4541*4882a593Smuzhiyun 4542*4882a593Smuzhiyun rcutorture.stall_cpu_irqsoff= [KNL] 4543*4882a593Smuzhiyun Disable interrupts while stalling if set. 4544*4882a593Smuzhiyun 4545*4882a593Smuzhiyun rcutorture.stall_gp_kthread= [KNL] 4546*4882a593Smuzhiyun Duration (s) of forced sleep within RCU 4547*4882a593Smuzhiyun grace-period kthread to test RCU CPU stall 4548*4882a593Smuzhiyun warnings, zero to disable. If both stall_cpu 4549*4882a593Smuzhiyun and stall_gp_kthread are specified, the 4550*4882a593Smuzhiyun kthread is starved first, then the CPU. 4551*4882a593Smuzhiyun 4552*4882a593Smuzhiyun rcutorture.stat_interval= [KNL] 4553*4882a593Smuzhiyun Time (s) between statistics printk()s. 4554*4882a593Smuzhiyun 4555*4882a593Smuzhiyun rcutorture.stutter= [KNL] 4556*4882a593Smuzhiyun Time (s) to stutter testing, for example, specifying 4557*4882a593Smuzhiyun five seconds causes the test to run for five seconds, 4558*4882a593Smuzhiyun wait for five seconds, and so on. This tests RCU's 4559*4882a593Smuzhiyun ability to transition abruptly to and from idle. 4560*4882a593Smuzhiyun 4561*4882a593Smuzhiyun rcutorture.test_boost= [KNL] 4562*4882a593Smuzhiyun Test RCU priority boosting? 0=no, 1=maybe, 2=yes. 4563*4882a593Smuzhiyun "Maybe" means test if the RCU implementation 4564*4882a593Smuzhiyun under test support RCU priority boosting. 4565*4882a593Smuzhiyun 4566*4882a593Smuzhiyun rcutorture.test_boost_duration= [KNL] 4567*4882a593Smuzhiyun Duration (s) of each individual boost test. 4568*4882a593Smuzhiyun 4569*4882a593Smuzhiyun rcutorture.test_boost_interval= [KNL] 4570*4882a593Smuzhiyun Interval (s) between each boost test. 4571*4882a593Smuzhiyun 4572*4882a593Smuzhiyun rcutorture.test_no_idle_hz= [KNL] 4573*4882a593Smuzhiyun Test RCU's dyntick-idle handling. See also the 4574*4882a593Smuzhiyun rcutorture.shuffle_interval parameter. 4575*4882a593Smuzhiyun 4576*4882a593Smuzhiyun rcutorture.torture_type= [KNL] 4577*4882a593Smuzhiyun Specify the RCU implementation to test. 4578*4882a593Smuzhiyun 4579*4882a593Smuzhiyun rcutorture.verbose= [KNL] 4580*4882a593Smuzhiyun Enable additional printk() statements. 4581*4882a593Smuzhiyun 4582*4882a593Smuzhiyun rcupdate.rcu_cpu_stall_ftrace_dump= [KNL] 4583*4882a593Smuzhiyun Dump ftrace buffer after reporting RCU CPU 4584*4882a593Smuzhiyun stall warning. 4585*4882a593Smuzhiyun 4586*4882a593Smuzhiyun rcupdate.rcu_cpu_stall_suppress= [KNL] 4587*4882a593Smuzhiyun Suppress RCU CPU stall warning messages. 4588*4882a593Smuzhiyun 4589*4882a593Smuzhiyun rcupdate.rcu_cpu_stall_suppress_at_boot= [KNL] 4590*4882a593Smuzhiyun Suppress RCU CPU stall warning messages and 4591*4882a593Smuzhiyun rcutorture writer stall warnings that occur 4592*4882a593Smuzhiyun during early boot, that is, during the time 4593*4882a593Smuzhiyun before the init task is spawned. 4594*4882a593Smuzhiyun 4595*4882a593Smuzhiyun rcupdate.rcu_cpu_stall_timeout= [KNL] 4596*4882a593Smuzhiyun Set timeout for RCU CPU stall warning messages. 4597*4882a593Smuzhiyun 4598*4882a593Smuzhiyun rcupdate.rcu_expedited= [KNL] 4599*4882a593Smuzhiyun Use expedited grace-period primitives, for 4600*4882a593Smuzhiyun example, synchronize_rcu_expedited() instead 4601*4882a593Smuzhiyun of synchronize_rcu(). This reduces latency, 4602*4882a593Smuzhiyun but can increase CPU utilization, degrade 4603*4882a593Smuzhiyun real-time latency, and degrade energy efficiency. 4604*4882a593Smuzhiyun No effect on CONFIG_TINY_RCU kernels. 4605*4882a593Smuzhiyun 4606*4882a593Smuzhiyun rcupdate.rcu_normal= [KNL] 4607*4882a593Smuzhiyun Use only normal grace-period primitives, 4608*4882a593Smuzhiyun for example, synchronize_rcu() instead of 4609*4882a593Smuzhiyun synchronize_rcu_expedited(). This improves 4610*4882a593Smuzhiyun real-time latency, CPU utilization, and 4611*4882a593Smuzhiyun energy efficiency, but can expose users to 4612*4882a593Smuzhiyun increased grace-period latency. This parameter 4613*4882a593Smuzhiyun overrides rcupdate.rcu_expedited. No effect on 4614*4882a593Smuzhiyun CONFIG_TINY_RCU kernels. 4615*4882a593Smuzhiyun 4616*4882a593Smuzhiyun rcupdate.rcu_normal_after_boot= [KNL] 4617*4882a593Smuzhiyun Once boot has completed (that is, after 4618*4882a593Smuzhiyun rcu_end_inkernel_boot() has been invoked), use 4619*4882a593Smuzhiyun only normal grace-period primitives. No effect 4620*4882a593Smuzhiyun on CONFIG_TINY_RCU kernels. 4621*4882a593Smuzhiyun 4622*4882a593Smuzhiyun rcupdate.rcu_task_ipi_delay= [KNL] 4623*4882a593Smuzhiyun Set time in jiffies during which RCU tasks will 4624*4882a593Smuzhiyun avoid sending IPIs, starting with the beginning 4625*4882a593Smuzhiyun of a given grace period. Setting a large 4626*4882a593Smuzhiyun number avoids disturbing real-time workloads, 4627*4882a593Smuzhiyun but lengthens grace periods. 4628*4882a593Smuzhiyun 4629*4882a593Smuzhiyun rcupdate.rcu_task_stall_timeout= [KNL] 4630*4882a593Smuzhiyun Set timeout in jiffies for RCU task stall warning 4631*4882a593Smuzhiyun messages. Disable with a value less than or equal 4632*4882a593Smuzhiyun to zero. 4633*4882a593Smuzhiyun 4634*4882a593Smuzhiyun rcupdate.rcu_self_test= [KNL] 4635*4882a593Smuzhiyun Run the RCU early boot self tests 4636*4882a593Smuzhiyun 4637*4882a593Smuzhiyun rdinit= [KNL] 4638*4882a593Smuzhiyun Format: <full_path> 4639*4882a593Smuzhiyun Run specified binary instead of /init from the ramdisk, 4640*4882a593Smuzhiyun used for early userspace startup. See initrd. 4641*4882a593Smuzhiyun 4642*4882a593Smuzhiyun rdrand= [X86] 4643*4882a593Smuzhiyun force - Override the decision by the kernel to hide the 4644*4882a593Smuzhiyun advertisement of RDRAND support (this affects 4645*4882a593Smuzhiyun certain AMD processors because of buggy BIOS 4646*4882a593Smuzhiyun support, specifically around the suspend/resume 4647*4882a593Smuzhiyun path). 4648*4882a593Smuzhiyun 4649*4882a593Smuzhiyun rdt= [HW,X86,RDT] 4650*4882a593Smuzhiyun Turn on/off individual RDT features. List is: 4651*4882a593Smuzhiyun cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, 4652*4882a593Smuzhiyun mba. 4653*4882a593Smuzhiyun E.g. to turn on cmt and turn off mba use: 4654*4882a593Smuzhiyun rdt=cmt,!mba 4655*4882a593Smuzhiyun 4656*4882a593Smuzhiyun reboot= [KNL] 4657*4882a593Smuzhiyun Format (x86 or x86_64): 4658*4882a593Smuzhiyun [w[arm] | c[old] | h[ard] | s[oft] | g[pio]] \ 4659*4882a593Smuzhiyun [[,]s[mp]#### \ 4660*4882a593Smuzhiyun [[,]b[ios] | a[cpi] | k[bd] | t[riple] | e[fi] | p[ci]] \ 4661*4882a593Smuzhiyun [[,]f[orce] 4662*4882a593Smuzhiyun Where reboot_mode is one of warm (soft) or cold (hard) or gpio 4663*4882a593Smuzhiyun (prefix with 'panic_' to set mode for panic 4664*4882a593Smuzhiyun reboot only), 4665*4882a593Smuzhiyun reboot_type is one of bios, acpi, kbd, triple, efi, or pci, 4666*4882a593Smuzhiyun reboot_force is either force or not specified, 4667*4882a593Smuzhiyun reboot_cpu is s[mp]#### with #### being the processor 4668*4882a593Smuzhiyun to be used for rebooting. 4669*4882a593Smuzhiyun 4670*4882a593Smuzhiyun refscale.holdoff= [KNL] 4671*4882a593Smuzhiyun Set test-start holdoff period. The purpose of 4672*4882a593Smuzhiyun this parameter is to delay the start of the 4673*4882a593Smuzhiyun test until boot completes in order to avoid 4674*4882a593Smuzhiyun interference. 4675*4882a593Smuzhiyun 4676*4882a593Smuzhiyun refscale.loops= [KNL] 4677*4882a593Smuzhiyun Set the number of loops over the synchronization 4678*4882a593Smuzhiyun primitive under test. Increasing this number 4679*4882a593Smuzhiyun reduces noise due to loop start/end overhead, 4680*4882a593Smuzhiyun but the default has already reduced the per-pass 4681*4882a593Smuzhiyun noise to a handful of picoseconds on ca. 2020 4682*4882a593Smuzhiyun x86 laptops. 4683*4882a593Smuzhiyun 4684*4882a593Smuzhiyun refscale.nreaders= [KNL] 4685*4882a593Smuzhiyun Set number of readers. The default value of -1 4686*4882a593Smuzhiyun selects N, where N is roughly 75% of the number 4687*4882a593Smuzhiyun of CPUs. A value of zero is an interesting choice. 4688*4882a593Smuzhiyun 4689*4882a593Smuzhiyun refscale.nruns= [KNL] 4690*4882a593Smuzhiyun Set number of runs, each of which is dumped onto 4691*4882a593Smuzhiyun the console log. 4692*4882a593Smuzhiyun 4693*4882a593Smuzhiyun refscale.readdelay= [KNL] 4694*4882a593Smuzhiyun Set the read-side critical-section duration, 4695*4882a593Smuzhiyun measured in microseconds. 4696*4882a593Smuzhiyun 4697*4882a593Smuzhiyun refscale.scale_type= [KNL] 4698*4882a593Smuzhiyun Specify the read-protection implementation to test. 4699*4882a593Smuzhiyun 4700*4882a593Smuzhiyun refscale.shutdown= [KNL] 4701*4882a593Smuzhiyun Shut down the system at the end of the performance 4702*4882a593Smuzhiyun test. This defaults to 1 (shut it down) when 4703*4882a593Smuzhiyun refscale is built into the kernel and to 0 (leave 4704*4882a593Smuzhiyun it running) when refscale is built as a module. 4705*4882a593Smuzhiyun 4706*4882a593Smuzhiyun refscale.verbose= [KNL] 4707*4882a593Smuzhiyun Enable additional printk() statements. 4708*4882a593Smuzhiyun 4709*4882a593Smuzhiyun relax_domain_level= 4710*4882a593Smuzhiyun [KNL, SMP] Set scheduler's default relax_domain_level. 4711*4882a593Smuzhiyun See Documentation/admin-guide/cgroup-v1/cpusets.rst. 4712*4882a593Smuzhiyun 4713*4882a593Smuzhiyun reserve= [KNL,BUGS] Force kernel to ignore I/O ports or memory 4714*4882a593Smuzhiyun Format: <base1>,<size1>[,<base2>,<size2>,...] 4715*4882a593Smuzhiyun Reserve I/O ports or memory so the kernel won't use 4716*4882a593Smuzhiyun them. If <base> is less than 0x10000, the region 4717*4882a593Smuzhiyun is assumed to be I/O ports; otherwise it is memory. 4718*4882a593Smuzhiyun 4719*4882a593Smuzhiyun reservetop= [X86-32] 4720*4882a593Smuzhiyun Format: nn[KMG] 4721*4882a593Smuzhiyun Reserves a hole at the top of the kernel virtual 4722*4882a593Smuzhiyun address space. 4723*4882a593Smuzhiyun 4724*4882a593Smuzhiyun reservelow= [X86] 4725*4882a593Smuzhiyun Format: nn[K] 4726*4882a593Smuzhiyun Set the amount of memory to reserve for BIOS at 4727*4882a593Smuzhiyun the bottom of the address space. 4728*4882a593Smuzhiyun 4729*4882a593Smuzhiyun reset_devices [KNL] Force drivers to reset the underlying device 4730*4882a593Smuzhiyun during initialization. 4731*4882a593Smuzhiyun 4732*4882a593Smuzhiyun resume= [SWSUSP] 4733*4882a593Smuzhiyun Specify the partition device for software suspend 4734*4882a593Smuzhiyun Format: 4735*4882a593Smuzhiyun {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>} 4736*4882a593Smuzhiyun 4737*4882a593Smuzhiyun resume_offset= [SWSUSP] 4738*4882a593Smuzhiyun Specify the offset from the beginning of the partition 4739*4882a593Smuzhiyun given by "resume=" at which the swap header is located, 4740*4882a593Smuzhiyun in <PAGE_SIZE> units (needed only for swap files). 4741*4882a593Smuzhiyun See Documentation/power/swsusp-and-swap-files.rst 4742*4882a593Smuzhiyun 4743*4882a593Smuzhiyun resumedelay= [HIBERNATION] Delay (in seconds) to pause before attempting to 4744*4882a593Smuzhiyun read the resume files 4745*4882a593Smuzhiyun 4746*4882a593Smuzhiyun resumewait [HIBERNATION] Wait (indefinitely) for resume device to show up. 4747*4882a593Smuzhiyun Useful for devices that are detected asynchronously 4748*4882a593Smuzhiyun (e.g. USB and MMC devices). 4749*4882a593Smuzhiyun 4750*4882a593Smuzhiyun hibernate= [HIBERNATION] 4751*4882a593Smuzhiyun noresume Don't check if there's a hibernation image 4752*4882a593Smuzhiyun present during boot. 4753*4882a593Smuzhiyun nocompress Don't compress/decompress hibernation images. 4754*4882a593Smuzhiyun no Disable hibernation and resume. 4755*4882a593Smuzhiyun protect_image Turn on image protection during restoration 4756*4882a593Smuzhiyun (that will set all pages holding image data 4757*4882a593Smuzhiyun during restoration read-only). 4758*4882a593Smuzhiyun 4759*4882a593Smuzhiyun retain_initrd [RAM] Keep initrd memory after extraction 4760*4882a593Smuzhiyun 4761*4882a593Smuzhiyun retbleed= [X86] Control mitigation of RETBleed (Arbitrary 4762*4882a593Smuzhiyun Speculative Code Execution with Return Instructions) 4763*4882a593Smuzhiyun vulnerability. 4764*4882a593Smuzhiyun 4765*4882a593Smuzhiyun AMD-based UNRET and IBPB mitigations alone do not stop 4766*4882a593Smuzhiyun sibling threads from influencing the predictions of other 4767*4882a593Smuzhiyun sibling threads. For that reason, STIBP is used on pro- 4768*4882a593Smuzhiyun cessors that support it, and mitigate SMT on processors 4769*4882a593Smuzhiyun that don't. 4770*4882a593Smuzhiyun 4771*4882a593Smuzhiyun off - no mitigation 4772*4882a593Smuzhiyun auto - automatically select a migitation 4773*4882a593Smuzhiyun auto,nosmt - automatically select a mitigation, 4774*4882a593Smuzhiyun disabling SMT if necessary for 4775*4882a593Smuzhiyun the full mitigation (only on Zen1 4776*4882a593Smuzhiyun and older without STIBP). 4777*4882a593Smuzhiyun ibpb - On AMD, mitigate short speculation 4778*4882a593Smuzhiyun windows on basic block boundaries too. 4779*4882a593Smuzhiyun Safe, highest perf impact. It also 4780*4882a593Smuzhiyun enables STIBP if present. Not suitable 4781*4882a593Smuzhiyun on Intel. 4782*4882a593Smuzhiyun ibpb,nosmt - Like "ibpb" above but will disable SMT 4783*4882a593Smuzhiyun when STIBP is not available. This is 4784*4882a593Smuzhiyun the alternative for systems which do not 4785*4882a593Smuzhiyun have STIBP. 4786*4882a593Smuzhiyun unret - Force enable untrained return thunks, 4787*4882a593Smuzhiyun only effective on AMD f15h-f17h based 4788*4882a593Smuzhiyun systems. 4789*4882a593Smuzhiyun unret,nosmt - Like unret, but will disable SMT when STIBP 4790*4882a593Smuzhiyun is not available. This is the alternative for 4791*4882a593Smuzhiyun systems which do not have STIBP. 4792*4882a593Smuzhiyun 4793*4882a593Smuzhiyun Selecting 'auto' will choose a mitigation method at run 4794*4882a593Smuzhiyun time according to the CPU. 4795*4882a593Smuzhiyun 4796*4882a593Smuzhiyun Not specifying this option is equivalent to retbleed=auto. 4797*4882a593Smuzhiyun 4798*4882a593Smuzhiyun rfkill.default_state= 4799*4882a593Smuzhiyun 0 "airplane mode". All wifi, bluetooth, wimax, gps, fm, 4800*4882a593Smuzhiyun etc. communication is blocked by default. 4801*4882a593Smuzhiyun 1 Unblocked. 4802*4882a593Smuzhiyun 4803*4882a593Smuzhiyun rfkill.master_switch_mode= 4804*4882a593Smuzhiyun 0 The "airplane mode" button does nothing. 4805*4882a593Smuzhiyun 1 The "airplane mode" button toggles between everything 4806*4882a593Smuzhiyun blocked and the previous configuration. 4807*4882a593Smuzhiyun 2 The "airplane mode" button toggles between everything 4808*4882a593Smuzhiyun blocked and everything unblocked. 4809*4882a593Smuzhiyun 4810*4882a593Smuzhiyun rhash_entries= [KNL,NET] 4811*4882a593Smuzhiyun Set number of hash buckets for route cache 4812*4882a593Smuzhiyun 4813*4882a593Smuzhiyun ring3mwait=disable 4814*4882a593Smuzhiyun [KNL] Disable ring 3 MONITOR/MWAIT feature on supported 4815*4882a593Smuzhiyun CPUs. 4816*4882a593Smuzhiyun 4817*4882a593Smuzhiyun ro [KNL] Mount root device read-only on boot 4818*4882a593Smuzhiyun 4819*4882a593Smuzhiyun rodata= [KNL] 4820*4882a593Smuzhiyun on Mark read-only kernel memory as read-only (default). 4821*4882a593Smuzhiyun off Leave read-only kernel memory writable for debugging. 4822*4882a593Smuzhiyun 4823*4882a593Smuzhiyun rockchip.usb_uart 4824*4882a593Smuzhiyun Enable the uart passthrough on the designated usb port 4825*4882a593Smuzhiyun on Rockchip SoCs. When active, the signals of the 4826*4882a593Smuzhiyun debug-uart get routed to the D+ and D- pins of the usb 4827*4882a593Smuzhiyun port and the regular usb controller gets disabled. 4828*4882a593Smuzhiyun 4829*4882a593Smuzhiyun root= [KNL] Root filesystem 4830*4882a593Smuzhiyun See name_to_dev_t comment in init/do_mounts.c. 4831*4882a593Smuzhiyun 4832*4882a593Smuzhiyun rootdelay= [KNL] Delay (in seconds) to pause before attempting to 4833*4882a593Smuzhiyun mount the root filesystem 4834*4882a593Smuzhiyun 4835*4882a593Smuzhiyun rootflags= [KNL] Set root filesystem mount option string 4836*4882a593Smuzhiyun 4837*4882a593Smuzhiyun rootfstype= [KNL] Set root filesystem type 4838*4882a593Smuzhiyun 4839*4882a593Smuzhiyun rootwait [KNL] Wait (indefinitely) for root device to show up. 4840*4882a593Smuzhiyun Useful for devices that are detected asynchronously 4841*4882a593Smuzhiyun (e.g. USB and MMC devices). 4842*4882a593Smuzhiyun 4843*4882a593Smuzhiyun rproc_mem=nn[KMG][@address] 4844*4882a593Smuzhiyun [KNL,ARM,CMA] Remoteproc physical memory block. 4845*4882a593Smuzhiyun Memory area to be used by remote processor image, 4846*4882a593Smuzhiyun managed by CMA. 4847*4882a593Smuzhiyun 4848*4882a593Smuzhiyun rw [KNL] Mount root device read-write on boot 4849*4882a593Smuzhiyun 4850*4882a593Smuzhiyun S [KNL] Run init in single mode 4851*4882a593Smuzhiyun 4852*4882a593Smuzhiyun s390_iommu= [HW,S390] 4853*4882a593Smuzhiyun Set s390 IOTLB flushing mode 4854*4882a593Smuzhiyun strict 4855*4882a593Smuzhiyun With strict flushing every unmap operation will result in 4856*4882a593Smuzhiyun an IOTLB flush. Default is lazy flushing before reuse, 4857*4882a593Smuzhiyun which is faster. 4858*4882a593Smuzhiyun 4859*4882a593Smuzhiyun sa1100ir [NET] 4860*4882a593Smuzhiyun See drivers/net/irda/sa1100_ir.c. 4861*4882a593Smuzhiyun 4862*4882a593Smuzhiyun sbni= [NET] Granch SBNI12 leased line adapter 4863*4882a593Smuzhiyun 4864*4882a593Smuzhiyun sched_debug [KNL] Enables verbose scheduler debug messages. 4865*4882a593Smuzhiyun 4866*4882a593Smuzhiyun schedstats= [KNL,X86] Enable or disable scheduled statistics. 4867*4882a593Smuzhiyun Allowed values are enable and disable. This feature 4868*4882a593Smuzhiyun incurs a small amount of overhead in the scheduler 4869*4882a593Smuzhiyun but is useful for debugging and performance tuning. 4870*4882a593Smuzhiyun 4871*4882a593Smuzhiyun sched_thermal_decay_shift= 4872*4882a593Smuzhiyun [KNL, SMP] Set a decay shift for scheduler thermal 4873*4882a593Smuzhiyun pressure signal. Thermal pressure signal follows the 4874*4882a593Smuzhiyun default decay period of other scheduler pelt 4875*4882a593Smuzhiyun signals(usually 32 ms but configurable). Setting 4876*4882a593Smuzhiyun sched_thermal_decay_shift will left shift the decay 4877*4882a593Smuzhiyun period for the thermal pressure signal by the shift 4878*4882a593Smuzhiyun value. 4879*4882a593Smuzhiyun i.e. with the default pelt decay period of 32 ms 4880*4882a593Smuzhiyun sched_thermal_decay_shift thermal pressure decay pr 4881*4882a593Smuzhiyun 1 64 ms 4882*4882a593Smuzhiyun 2 128 ms 4883*4882a593Smuzhiyun and so on. 4884*4882a593Smuzhiyun Format: integer between 0 and 10 4885*4882a593Smuzhiyun Default is 0. 4886*4882a593Smuzhiyun 4887*4882a593Smuzhiyun scftorture.holdoff= [KNL] 4888*4882a593Smuzhiyun Number of seconds to hold off before starting 4889*4882a593Smuzhiyun test. Defaults to zero for module insertion and 4890*4882a593Smuzhiyun to 10 seconds for built-in smp_call_function() 4891*4882a593Smuzhiyun tests. 4892*4882a593Smuzhiyun 4893*4882a593Smuzhiyun scftorture.longwait= [KNL] 4894*4882a593Smuzhiyun Request ridiculously long waits randomly selected 4895*4882a593Smuzhiyun up to the chosen limit in seconds. Zero (the 4896*4882a593Smuzhiyun default) disables this feature. Please note 4897*4882a593Smuzhiyun that requesting even small non-zero numbers of 4898*4882a593Smuzhiyun seconds can result in RCU CPU stall warnings, 4899*4882a593Smuzhiyun softlockup complaints, and so on. 4900*4882a593Smuzhiyun 4901*4882a593Smuzhiyun scftorture.nthreads= [KNL] 4902*4882a593Smuzhiyun Number of kthreads to spawn to invoke the 4903*4882a593Smuzhiyun smp_call_function() family of functions. 4904*4882a593Smuzhiyun The default of -1 specifies a number of kthreads 4905*4882a593Smuzhiyun equal to the number of CPUs. 4906*4882a593Smuzhiyun 4907*4882a593Smuzhiyun scftorture.onoff_holdoff= [KNL] 4908*4882a593Smuzhiyun Number seconds to wait after the start of the 4909*4882a593Smuzhiyun test before initiating CPU-hotplug operations. 4910*4882a593Smuzhiyun 4911*4882a593Smuzhiyun scftorture.onoff_interval= [KNL] 4912*4882a593Smuzhiyun Number seconds to wait between successive 4913*4882a593Smuzhiyun CPU-hotplug operations. Specifying zero (which 4914*4882a593Smuzhiyun is the default) disables CPU-hotplug operations. 4915*4882a593Smuzhiyun 4916*4882a593Smuzhiyun scftorture.shutdown_secs= [KNL] 4917*4882a593Smuzhiyun The number of seconds following the start of the 4918*4882a593Smuzhiyun test after which to shut down the system. The 4919*4882a593Smuzhiyun default of zero avoids shutting down the system. 4920*4882a593Smuzhiyun Non-zero values are useful for automated tests. 4921*4882a593Smuzhiyun 4922*4882a593Smuzhiyun scftorture.stat_interval= [KNL] 4923*4882a593Smuzhiyun The number of seconds between outputting the 4924*4882a593Smuzhiyun current test statistics to the console. A value 4925*4882a593Smuzhiyun of zero disables statistics output. 4926*4882a593Smuzhiyun 4927*4882a593Smuzhiyun scftorture.stutter_cpus= [KNL] 4928*4882a593Smuzhiyun The number of jiffies to wait between each change 4929*4882a593Smuzhiyun to the set of CPUs under test. 4930*4882a593Smuzhiyun 4931*4882a593Smuzhiyun scftorture.use_cpus_read_lock= [KNL] 4932*4882a593Smuzhiyun Use use_cpus_read_lock() instead of the default 4933*4882a593Smuzhiyun preempt_disable() to disable CPU hotplug 4934*4882a593Smuzhiyun while invoking one of the smp_call_function*() 4935*4882a593Smuzhiyun functions. 4936*4882a593Smuzhiyun 4937*4882a593Smuzhiyun scftorture.verbose= [KNL] 4938*4882a593Smuzhiyun Enable additional printk() statements. 4939*4882a593Smuzhiyun 4940*4882a593Smuzhiyun scftorture.weight_single= [KNL] 4941*4882a593Smuzhiyun The probability weighting to use for the 4942*4882a593Smuzhiyun smp_call_function_single() function with a zero 4943*4882a593Smuzhiyun "wait" parameter. A value of -1 selects the 4944*4882a593Smuzhiyun default if all other weights are -1. However, 4945*4882a593Smuzhiyun if at least one weight has some other value, a 4946*4882a593Smuzhiyun value of -1 will instead select a weight of zero. 4947*4882a593Smuzhiyun 4948*4882a593Smuzhiyun scftorture.weight_single_wait= [KNL] 4949*4882a593Smuzhiyun The probability weighting to use for the 4950*4882a593Smuzhiyun smp_call_function_single() function with a 4951*4882a593Smuzhiyun non-zero "wait" parameter. See weight_single. 4952*4882a593Smuzhiyun 4953*4882a593Smuzhiyun scftorture.weight_many= [KNL] 4954*4882a593Smuzhiyun The probability weighting to use for the 4955*4882a593Smuzhiyun smp_call_function_many() function with a zero 4956*4882a593Smuzhiyun "wait" parameter. See weight_single. 4957*4882a593Smuzhiyun Note well that setting a high probability for 4958*4882a593Smuzhiyun this weighting can place serious IPI load 4959*4882a593Smuzhiyun on the system. 4960*4882a593Smuzhiyun 4961*4882a593Smuzhiyun scftorture.weight_many_wait= [KNL] 4962*4882a593Smuzhiyun The probability weighting to use for the 4963*4882a593Smuzhiyun smp_call_function_many() function with a 4964*4882a593Smuzhiyun non-zero "wait" parameter. See weight_single 4965*4882a593Smuzhiyun and weight_many. 4966*4882a593Smuzhiyun 4967*4882a593Smuzhiyun scftorture.weight_all= [KNL] 4968*4882a593Smuzhiyun The probability weighting to use for the 4969*4882a593Smuzhiyun smp_call_function_all() function with a zero 4970*4882a593Smuzhiyun "wait" parameter. See weight_single and 4971*4882a593Smuzhiyun weight_many. 4972*4882a593Smuzhiyun 4973*4882a593Smuzhiyun scftorture.weight_all_wait= [KNL] 4974*4882a593Smuzhiyun The probability weighting to use for the 4975*4882a593Smuzhiyun smp_call_function_all() function with a 4976*4882a593Smuzhiyun non-zero "wait" parameter. See weight_single 4977*4882a593Smuzhiyun and weight_many. 4978*4882a593Smuzhiyun 4979*4882a593Smuzhiyun skew_tick= [KNL] Offset the periodic timer tick per cpu to mitigate 4980*4882a593Smuzhiyun xtime_lock contention on larger systems, and/or RCU lock 4981*4882a593Smuzhiyun contention on all systems with CONFIG_MAXSMP set. 4982*4882a593Smuzhiyun Format: { "0" | "1" } 4983*4882a593Smuzhiyun 0 -- disable. (may be 1 via CONFIG_CMDLINE="skew_tick=1" 4984*4882a593Smuzhiyun 1 -- enable. 4985*4882a593Smuzhiyun Note: increases power consumption, thus should only be 4986*4882a593Smuzhiyun enabled if running jitter sensitive (HPC/RT) workloads. 4987*4882a593Smuzhiyun 4988*4882a593Smuzhiyun security= [SECURITY] Choose a legacy "major" security module to 4989*4882a593Smuzhiyun enable at boot. This has been deprecated by the 4990*4882a593Smuzhiyun "lsm=" parameter. 4991*4882a593Smuzhiyun 4992*4882a593Smuzhiyun selinux= [SELINUX] Disable or enable SELinux at boot time. 4993*4882a593Smuzhiyun Format: { "0" | "1" } 4994*4882a593Smuzhiyun See security/selinux/Kconfig help text. 4995*4882a593Smuzhiyun 0 -- disable. 4996*4882a593Smuzhiyun 1 -- enable. 4997*4882a593Smuzhiyun Default value is 1. 4998*4882a593Smuzhiyun 4999*4882a593Smuzhiyun apparmor= [APPARMOR] Disable or enable AppArmor at boot time 5000*4882a593Smuzhiyun Format: { "0" | "1" } 5001*4882a593Smuzhiyun See security/apparmor/Kconfig help text 5002*4882a593Smuzhiyun 0 -- disable. 5003*4882a593Smuzhiyun 1 -- enable. 5004*4882a593Smuzhiyun Default value is set via kernel config option. 5005*4882a593Smuzhiyun 5006*4882a593Smuzhiyun serialnumber [BUGS=X86-32] 5007*4882a593Smuzhiyun 5008*4882a593Smuzhiyun shapers= [NET] 5009*4882a593Smuzhiyun Maximal number of shapers. 5010*4882a593Smuzhiyun 5011*4882a593Smuzhiyun simeth= [IA-64] 5012*4882a593Smuzhiyun simscsi= 5013*4882a593Smuzhiyun 5014*4882a593Smuzhiyun slram= [HW,MTD] 5015*4882a593Smuzhiyun 5016*4882a593Smuzhiyun slab_nomerge [MM] 5017*4882a593Smuzhiyun Disable merging of slabs with similar size. May be 5018*4882a593Smuzhiyun necessary if there is some reason to distinguish 5019*4882a593Smuzhiyun allocs to different slabs, especially in hardened 5020*4882a593Smuzhiyun environments where the risk of heap overflows and 5021*4882a593Smuzhiyun layout control by attackers can usually be 5022*4882a593Smuzhiyun frustrated by disabling merging. This will reduce 5023*4882a593Smuzhiyun most of the exposure of a heap attack to a single 5024*4882a593Smuzhiyun cache (risks via metadata attacks are mostly 5025*4882a593Smuzhiyun unchanged). Debug options disable merging on their 5026*4882a593Smuzhiyun own. 5027*4882a593Smuzhiyun For more information see Documentation/vm/slub.rst. 5028*4882a593Smuzhiyun 5029*4882a593Smuzhiyun slab_max_order= [MM, SLAB] 5030*4882a593Smuzhiyun Determines the maximum allowed order for slabs. 5031*4882a593Smuzhiyun A high setting may cause OOMs due to memory 5032*4882a593Smuzhiyun fragmentation. Defaults to 1 for systems with 5033*4882a593Smuzhiyun more than 32MB of RAM, 0 otherwise. 5034*4882a593Smuzhiyun 5035*4882a593Smuzhiyun slub_debug[=options[,slabs][;[options[,slabs]]...] [MM, SLUB] 5036*4882a593Smuzhiyun Enabling slub_debug allows one to determine the 5037*4882a593Smuzhiyun culprit if slab objects become corrupted. Enabling 5038*4882a593Smuzhiyun slub_debug can create guard zones around objects and 5039*4882a593Smuzhiyun may poison objects when not in use. Also tracks the 5040*4882a593Smuzhiyun last alloc / free. For more information see 5041*4882a593Smuzhiyun Documentation/vm/slub.rst. 5042*4882a593Smuzhiyun 5043*4882a593Smuzhiyun slub_memcg_sysfs= [MM, SLUB] 5044*4882a593Smuzhiyun Determines whether to enable sysfs directories for 5045*4882a593Smuzhiyun memory cgroup sub-caches. 1 to enable, 0 to disable. 5046*4882a593Smuzhiyun The default is determined by CONFIG_SLUB_MEMCG_SYSFS_ON. 5047*4882a593Smuzhiyun Enabling this can lead to a very high number of debug 5048*4882a593Smuzhiyun directories and files being created under 5049*4882a593Smuzhiyun /sys/kernel/slub. 5050*4882a593Smuzhiyun 5051*4882a593Smuzhiyun slub_max_order= [MM, SLUB] 5052*4882a593Smuzhiyun Determines the maximum allowed order for slabs. 5053*4882a593Smuzhiyun A high setting may cause OOMs due to memory 5054*4882a593Smuzhiyun fragmentation. For more information see 5055*4882a593Smuzhiyun Documentation/vm/slub.rst. 5056*4882a593Smuzhiyun 5057*4882a593Smuzhiyun slub_min_objects= [MM, SLUB] 5058*4882a593Smuzhiyun The minimum number of objects per slab. SLUB will 5059*4882a593Smuzhiyun increase the slab order up to slub_max_order to 5060*4882a593Smuzhiyun generate a sufficiently large slab able to contain 5061*4882a593Smuzhiyun the number of objects indicated. The higher the number 5062*4882a593Smuzhiyun of objects the smaller the overhead of tracking slabs 5063*4882a593Smuzhiyun and the less frequently locks need to be acquired. 5064*4882a593Smuzhiyun For more information see Documentation/vm/slub.rst. 5065*4882a593Smuzhiyun 5066*4882a593Smuzhiyun slub_min_order= [MM, SLUB] 5067*4882a593Smuzhiyun Determines the minimum page order for slabs. Must be 5068*4882a593Smuzhiyun lower than slub_max_order. 5069*4882a593Smuzhiyun For more information see Documentation/vm/slub.rst. 5070*4882a593Smuzhiyun 5071*4882a593Smuzhiyun slub_nomerge [MM, SLUB] 5072*4882a593Smuzhiyun Same with slab_nomerge. This is supported for legacy. 5073*4882a593Smuzhiyun See slab_nomerge for more information. 5074*4882a593Smuzhiyun 5075*4882a593Smuzhiyun smart2= [HW] 5076*4882a593Smuzhiyun Format: <io1>[,<io2>[,...,<io8>]] 5077*4882a593Smuzhiyun 5078*4882a593Smuzhiyun smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices 5079*4882a593Smuzhiyun smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port 5080*4882a593Smuzhiyun smsc-ircc2.ircc_sir= [HW] SIR base I/O port 5081*4882a593Smuzhiyun smsc-ircc2.ircc_fir= [HW] FIR base I/O port 5082*4882a593Smuzhiyun smsc-ircc2.ircc_irq= [HW] IRQ line 5083*4882a593Smuzhiyun smsc-ircc2.ircc_dma= [HW] DMA channel 5084*4882a593Smuzhiyun smsc-ircc2.ircc_transceiver= [HW] Transceiver type: 5085*4882a593Smuzhiyun 0: Toshiba Satellite 1800 (GP data pin select) 5086*4882a593Smuzhiyun 1: Fast pin select (default) 5087*4882a593Smuzhiyun 2: ATC IRMode 5088*4882a593Smuzhiyun 5089*4882a593Smuzhiyun smt [KNL,S390] Set the maximum number of threads (logical 5090*4882a593Smuzhiyun CPUs) to use per physical CPU on systems capable of 5091*4882a593Smuzhiyun symmetric multithreading (SMT). Will be capped to the 5092*4882a593Smuzhiyun actual hardware limit. 5093*4882a593Smuzhiyun Format: <integer> 5094*4882a593Smuzhiyun Default: -1 (no limit) 5095*4882a593Smuzhiyun 5096*4882a593Smuzhiyun softlockup_panic= 5097*4882a593Smuzhiyun [KNL] Should the soft-lockup detector generate panics. 5098*4882a593Smuzhiyun Format: 0 | 1 5099*4882a593Smuzhiyun 5100*4882a593Smuzhiyun A value of 1 instructs the soft-lockup detector 5101*4882a593Smuzhiyun to panic the machine when a soft-lockup occurs. It is 5102*4882a593Smuzhiyun also controlled by the kernel.softlockup_panic sysctl 5103*4882a593Smuzhiyun and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the 5104*4882a593Smuzhiyun respective build-time switch to that functionality. 5105*4882a593Smuzhiyun 5106*4882a593Smuzhiyun softlockup_all_cpu_backtrace= 5107*4882a593Smuzhiyun [KNL] Should the soft-lockup detector generate 5108*4882a593Smuzhiyun backtraces on all cpus. 5109*4882a593Smuzhiyun Format: 0 | 1 5110*4882a593Smuzhiyun 5111*4882a593Smuzhiyun sonypi.*= [HW] Sony Programmable I/O Control Device driver 5112*4882a593Smuzhiyun See Documentation/admin-guide/laptops/sonypi.rst 5113*4882a593Smuzhiyun 5114*4882a593Smuzhiyun spectre_v2= [X86] Control mitigation of Spectre variant 2 5115*4882a593Smuzhiyun (indirect branch speculation) vulnerability. 5116*4882a593Smuzhiyun The default operation protects the kernel from 5117*4882a593Smuzhiyun user space attacks. 5118*4882a593Smuzhiyun 5119*4882a593Smuzhiyun on - unconditionally enable, implies 5120*4882a593Smuzhiyun spectre_v2_user=on 5121*4882a593Smuzhiyun off - unconditionally disable, implies 5122*4882a593Smuzhiyun spectre_v2_user=off 5123*4882a593Smuzhiyun auto - kernel detects whether your CPU model is 5124*4882a593Smuzhiyun vulnerable 5125*4882a593Smuzhiyun 5126*4882a593Smuzhiyun Selecting 'on' will, and 'auto' may, choose a 5127*4882a593Smuzhiyun mitigation method at run time according to the 5128*4882a593Smuzhiyun CPU, the available microcode, the setting of the 5129*4882a593Smuzhiyun CONFIG_RETPOLINE configuration option, and the 5130*4882a593Smuzhiyun compiler with which the kernel was built. 5131*4882a593Smuzhiyun 5132*4882a593Smuzhiyun Selecting 'on' will also enable the mitigation 5133*4882a593Smuzhiyun against user space to user space task attacks. 5134*4882a593Smuzhiyun 5135*4882a593Smuzhiyun Selecting 'off' will disable both the kernel and 5136*4882a593Smuzhiyun the user space protections. 5137*4882a593Smuzhiyun 5138*4882a593Smuzhiyun Specific mitigations can also be selected manually: 5139*4882a593Smuzhiyun 5140*4882a593Smuzhiyun retpoline - replace indirect branches 5141*4882a593Smuzhiyun retpoline,generic - Retpolines 5142*4882a593Smuzhiyun retpoline,lfence - LFENCE; indirect branch 5143*4882a593Smuzhiyun retpoline,amd - alias for retpoline,lfence 5144*4882a593Smuzhiyun eibrs - enhanced IBRS 5145*4882a593Smuzhiyun eibrs,retpoline - enhanced IBRS + Retpolines 5146*4882a593Smuzhiyun eibrs,lfence - enhanced IBRS + LFENCE 5147*4882a593Smuzhiyun ibrs - use IBRS to protect kernel 5148*4882a593Smuzhiyun 5149*4882a593Smuzhiyun Not specifying this option is equivalent to 5150*4882a593Smuzhiyun spectre_v2=auto. 5151*4882a593Smuzhiyun 5152*4882a593Smuzhiyun spectre_v2_user= 5153*4882a593Smuzhiyun [X86] Control mitigation of Spectre variant 2 5154*4882a593Smuzhiyun (indirect branch speculation) vulnerability between 5155*4882a593Smuzhiyun user space tasks 5156*4882a593Smuzhiyun 5157*4882a593Smuzhiyun on - Unconditionally enable mitigations. Is 5158*4882a593Smuzhiyun enforced by spectre_v2=on 5159*4882a593Smuzhiyun 5160*4882a593Smuzhiyun off - Unconditionally disable mitigations. Is 5161*4882a593Smuzhiyun enforced by spectre_v2=off 5162*4882a593Smuzhiyun 5163*4882a593Smuzhiyun prctl - Indirect branch speculation is enabled, 5164*4882a593Smuzhiyun but mitigation can be enabled via prctl 5165*4882a593Smuzhiyun per thread. The mitigation control state 5166*4882a593Smuzhiyun is inherited on fork. 5167*4882a593Smuzhiyun 5168*4882a593Smuzhiyun prctl,ibpb 5169*4882a593Smuzhiyun - Like "prctl" above, but only STIBP is 5170*4882a593Smuzhiyun controlled per thread. IBPB is issued 5171*4882a593Smuzhiyun always when switching between different user 5172*4882a593Smuzhiyun space processes. 5173*4882a593Smuzhiyun 5174*4882a593Smuzhiyun seccomp 5175*4882a593Smuzhiyun - Same as "prctl" above, but all seccomp 5176*4882a593Smuzhiyun threads will enable the mitigation unless 5177*4882a593Smuzhiyun they explicitly opt out. 5178*4882a593Smuzhiyun 5179*4882a593Smuzhiyun seccomp,ibpb 5180*4882a593Smuzhiyun - Like "seccomp" above, but only STIBP is 5181*4882a593Smuzhiyun controlled per thread. IBPB is issued 5182*4882a593Smuzhiyun always when switching between different 5183*4882a593Smuzhiyun user space processes. 5184*4882a593Smuzhiyun 5185*4882a593Smuzhiyun auto - Kernel selects the mitigation depending on 5186*4882a593Smuzhiyun the available CPU features and vulnerability. 5187*4882a593Smuzhiyun 5188*4882a593Smuzhiyun Default mitigation: 5189*4882a593Smuzhiyun If CONFIG_SECCOMP=y then "seccomp", otherwise "prctl" 5190*4882a593Smuzhiyun 5191*4882a593Smuzhiyun Not specifying this option is equivalent to 5192*4882a593Smuzhiyun spectre_v2_user=auto. 5193*4882a593Smuzhiyun 5194*4882a593Smuzhiyun spec_store_bypass_disable= 5195*4882a593Smuzhiyun [HW] Control Speculative Store Bypass (SSB) Disable mitigation 5196*4882a593Smuzhiyun (Speculative Store Bypass vulnerability) 5197*4882a593Smuzhiyun 5198*4882a593Smuzhiyun Certain CPUs are vulnerable to an exploit against a 5199*4882a593Smuzhiyun a common industry wide performance optimization known 5200*4882a593Smuzhiyun as "Speculative Store Bypass" in which recent stores 5201*4882a593Smuzhiyun to the same memory location may not be observed by 5202*4882a593Smuzhiyun later loads during speculative execution. The idea 5203*4882a593Smuzhiyun is that such stores are unlikely and that they can 5204*4882a593Smuzhiyun be detected prior to instruction retirement at the 5205*4882a593Smuzhiyun end of a particular speculation execution window. 5206*4882a593Smuzhiyun 5207*4882a593Smuzhiyun In vulnerable processors, the speculatively forwarded 5208*4882a593Smuzhiyun store can be used in a cache side channel attack, for 5209*4882a593Smuzhiyun example to read memory to which the attacker does not 5210*4882a593Smuzhiyun directly have access (e.g. inside sandboxed code). 5211*4882a593Smuzhiyun 5212*4882a593Smuzhiyun This parameter controls whether the Speculative Store 5213*4882a593Smuzhiyun Bypass optimization is used. 5214*4882a593Smuzhiyun 5215*4882a593Smuzhiyun On x86 the options are: 5216*4882a593Smuzhiyun 5217*4882a593Smuzhiyun on - Unconditionally disable Speculative Store Bypass 5218*4882a593Smuzhiyun off - Unconditionally enable Speculative Store Bypass 5219*4882a593Smuzhiyun auto - Kernel detects whether the CPU model contains an 5220*4882a593Smuzhiyun implementation of Speculative Store Bypass and 5221*4882a593Smuzhiyun picks the most appropriate mitigation. If the 5222*4882a593Smuzhiyun CPU is not vulnerable, "off" is selected. If the 5223*4882a593Smuzhiyun CPU is vulnerable the default mitigation is 5224*4882a593Smuzhiyun architecture and Kconfig dependent. See below. 5225*4882a593Smuzhiyun prctl - Control Speculative Store Bypass per thread 5226*4882a593Smuzhiyun via prctl. Speculative Store Bypass is enabled 5227*4882a593Smuzhiyun for a process by default. The state of the control 5228*4882a593Smuzhiyun is inherited on fork. 5229*4882a593Smuzhiyun seccomp - Same as "prctl" above, but all seccomp threads 5230*4882a593Smuzhiyun will disable SSB unless they explicitly opt out. 5231*4882a593Smuzhiyun 5232*4882a593Smuzhiyun Default mitigations: 5233*4882a593Smuzhiyun X86: If CONFIG_SECCOMP=y "seccomp", otherwise "prctl" 5234*4882a593Smuzhiyun 5235*4882a593Smuzhiyun On powerpc the options are: 5236*4882a593Smuzhiyun 5237*4882a593Smuzhiyun on,auto - On Power8 and Power9 insert a store-forwarding 5238*4882a593Smuzhiyun barrier on kernel entry and exit. On Power7 5239*4882a593Smuzhiyun perform a software flush on kernel entry and 5240*4882a593Smuzhiyun exit. 5241*4882a593Smuzhiyun off - No action. 5242*4882a593Smuzhiyun 5243*4882a593Smuzhiyun Not specifying this option is equivalent to 5244*4882a593Smuzhiyun spec_store_bypass_disable=auto. 5245*4882a593Smuzhiyun 5246*4882a593Smuzhiyun spia_io_base= [HW,MTD] 5247*4882a593Smuzhiyun spia_fio_base= 5248*4882a593Smuzhiyun spia_pedr= 5249*4882a593Smuzhiyun spia_peddr= 5250*4882a593Smuzhiyun 5251*4882a593Smuzhiyun split_lock_detect= 5252*4882a593Smuzhiyun [X86] Enable split lock detection 5253*4882a593Smuzhiyun 5254*4882a593Smuzhiyun When enabled (and if hardware support is present), atomic 5255*4882a593Smuzhiyun instructions that access data across cache line 5256*4882a593Smuzhiyun boundaries will result in an alignment check exception. 5257*4882a593Smuzhiyun 5258*4882a593Smuzhiyun off - not enabled 5259*4882a593Smuzhiyun 5260*4882a593Smuzhiyun warn - the kernel will emit rate limited warnings 5261*4882a593Smuzhiyun about applications triggering the #AC 5262*4882a593Smuzhiyun exception. This mode is the default on CPUs 5263*4882a593Smuzhiyun that supports split lock detection. 5264*4882a593Smuzhiyun 5265*4882a593Smuzhiyun fatal - the kernel will send SIGBUS to applications 5266*4882a593Smuzhiyun that trigger the #AC exception. 5267*4882a593Smuzhiyun 5268*4882a593Smuzhiyun If an #AC exception is hit in the kernel or in 5269*4882a593Smuzhiyun firmware (i.e. not while executing in user mode) 5270*4882a593Smuzhiyun the kernel will oops in either "warn" or "fatal" 5271*4882a593Smuzhiyun mode. 5272*4882a593Smuzhiyun 5273*4882a593Smuzhiyun srbds= [X86,INTEL] 5274*4882a593Smuzhiyun Control the Special Register Buffer Data Sampling 5275*4882a593Smuzhiyun (SRBDS) mitigation. 5276*4882a593Smuzhiyun 5277*4882a593Smuzhiyun Certain CPUs are vulnerable to an MDS-like 5278*4882a593Smuzhiyun exploit which can leak bits from the random 5279*4882a593Smuzhiyun number generator. 5280*4882a593Smuzhiyun 5281*4882a593Smuzhiyun By default, this issue is mitigated by 5282*4882a593Smuzhiyun microcode. However, the microcode fix can cause 5283*4882a593Smuzhiyun the RDRAND and RDSEED instructions to become 5284*4882a593Smuzhiyun much slower. Among other effects, this will 5285*4882a593Smuzhiyun result in reduced throughput from /dev/urandom. 5286*4882a593Smuzhiyun 5287*4882a593Smuzhiyun The microcode mitigation can be disabled with 5288*4882a593Smuzhiyun the following option: 5289*4882a593Smuzhiyun 5290*4882a593Smuzhiyun off: Disable mitigation and remove 5291*4882a593Smuzhiyun performance impact to RDRAND and RDSEED 5292*4882a593Smuzhiyun 5293*4882a593Smuzhiyun srcutree.counter_wrap_check [KNL] 5294*4882a593Smuzhiyun Specifies how frequently to check for 5295*4882a593Smuzhiyun grace-period sequence counter wrap for the 5296*4882a593Smuzhiyun srcu_data structure's ->srcu_gp_seq_needed field. 5297*4882a593Smuzhiyun The greater the number of bits set in this kernel 5298*4882a593Smuzhiyun parameter, the less frequently counter wrap will 5299*4882a593Smuzhiyun be checked for. Note that the bottom two bits 5300*4882a593Smuzhiyun are ignored. 5301*4882a593Smuzhiyun 5302*4882a593Smuzhiyun srcutree.exp_holdoff [KNL] 5303*4882a593Smuzhiyun Specifies how many nanoseconds must elapse 5304*4882a593Smuzhiyun since the end of the last SRCU grace period for 5305*4882a593Smuzhiyun a given srcu_struct until the next normal SRCU 5306*4882a593Smuzhiyun grace period will be considered for automatic 5307*4882a593Smuzhiyun expediting. Set to zero to disable automatic 5308*4882a593Smuzhiyun expediting. 5309*4882a593Smuzhiyun 5310*4882a593Smuzhiyun ssbd= [ARM64,HW] 5311*4882a593Smuzhiyun Speculative Store Bypass Disable control 5312*4882a593Smuzhiyun 5313*4882a593Smuzhiyun On CPUs that are vulnerable to the Speculative 5314*4882a593Smuzhiyun Store Bypass vulnerability and offer a 5315*4882a593Smuzhiyun firmware based mitigation, this parameter 5316*4882a593Smuzhiyun indicates how the mitigation should be used: 5317*4882a593Smuzhiyun 5318*4882a593Smuzhiyun force-on: Unconditionally enable mitigation for 5319*4882a593Smuzhiyun for both kernel and userspace 5320*4882a593Smuzhiyun force-off: Unconditionally disable mitigation for 5321*4882a593Smuzhiyun for both kernel and userspace 5322*4882a593Smuzhiyun kernel: Always enable mitigation in the 5323*4882a593Smuzhiyun kernel, and offer a prctl interface 5324*4882a593Smuzhiyun to allow userspace to register its 5325*4882a593Smuzhiyun interest in being mitigated too. 5326*4882a593Smuzhiyun 5327*4882a593Smuzhiyun stack_guard_gap= [MM] 5328*4882a593Smuzhiyun override the default stack gap protection. The value 5329*4882a593Smuzhiyun is in page units and it defines how many pages prior 5330*4882a593Smuzhiyun to (for stacks growing down) resp. after (for stacks 5331*4882a593Smuzhiyun growing up) the main stack are reserved for no other 5332*4882a593Smuzhiyun mapping. Default value is 256 pages. 5333*4882a593Smuzhiyun 5334*4882a593Smuzhiyun stack_depot_disable= [KNL] 5335*4882a593Smuzhiyun Setting this to true through kernel command line will 5336*4882a593Smuzhiyun disable the stack depot thereby saving the static memory 5337*4882a593Smuzhiyun consumed by the stack hash table. By default this is set 5338*4882a593Smuzhiyun to false. 5339*4882a593Smuzhiyun 5340*4882a593Smuzhiyun stacktrace [FTRACE] 5341*4882a593Smuzhiyun Enabled the stack tracer on boot up. 5342*4882a593Smuzhiyun 5343*4882a593Smuzhiyun stacktrace_filter=[function-list] 5344*4882a593Smuzhiyun [FTRACE] Limit the functions that the stack tracer 5345*4882a593Smuzhiyun will trace at boot up. function-list is a comma separated 5346*4882a593Smuzhiyun list of functions. This list can be changed at run 5347*4882a593Smuzhiyun time by the stack_trace_filter file in the debugfs 5348*4882a593Smuzhiyun tracing directory. Note, this enables stack tracing 5349*4882a593Smuzhiyun and the stacktrace above is not needed. 5350*4882a593Smuzhiyun 5351*4882a593Smuzhiyun sti= [PARISC,HW] 5352*4882a593Smuzhiyun Format: <num> 5353*4882a593Smuzhiyun Set the STI (builtin display/keyboard on the HP-PARISC 5354*4882a593Smuzhiyun machines) console (graphic card) which should be used 5355*4882a593Smuzhiyun as the initial boot-console. 5356*4882a593Smuzhiyun See also comment in drivers/video/console/sticore.c. 5357*4882a593Smuzhiyun 5358*4882a593Smuzhiyun sti_font= [HW] 5359*4882a593Smuzhiyun See comment in drivers/video/console/sticore.c. 5360*4882a593Smuzhiyun 5361*4882a593Smuzhiyun stifb= [HW] 5362*4882a593Smuzhiyun Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]] 5363*4882a593Smuzhiyun 5364*4882a593Smuzhiyun sunrpc.min_resvport= 5365*4882a593Smuzhiyun sunrpc.max_resvport= 5366*4882a593Smuzhiyun [NFS,SUNRPC] 5367*4882a593Smuzhiyun SunRPC servers often require that client requests 5368*4882a593Smuzhiyun originate from a privileged port (i.e. a port in the 5369*4882a593Smuzhiyun range 0 < portnr < 1024). 5370*4882a593Smuzhiyun An administrator who wishes to reserve some of these 5371*4882a593Smuzhiyun ports for other uses may adjust the range that the 5372*4882a593Smuzhiyun kernel's sunrpc client considers to be privileged 5373*4882a593Smuzhiyun using these two parameters to set the minimum and 5374*4882a593Smuzhiyun maximum port values. 5375*4882a593Smuzhiyun 5376*4882a593Smuzhiyun sunrpc.svc_rpc_per_connection_limit= 5377*4882a593Smuzhiyun [NFS,SUNRPC] 5378*4882a593Smuzhiyun Limit the number of requests that the server will 5379*4882a593Smuzhiyun process in parallel from a single connection. 5380*4882a593Smuzhiyun The default value is 0 (no limit). 5381*4882a593Smuzhiyun 5382*4882a593Smuzhiyun sunrpc.pool_mode= 5383*4882a593Smuzhiyun [NFS] 5384*4882a593Smuzhiyun Control how the NFS server code allocates CPUs to 5385*4882a593Smuzhiyun service thread pools. Depending on how many NICs 5386*4882a593Smuzhiyun you have and where their interrupts are bound, this 5387*4882a593Smuzhiyun option will affect which CPUs will do NFS serving. 5388*4882a593Smuzhiyun Note: this parameter cannot be changed while the 5389*4882a593Smuzhiyun NFS server is running. 5390*4882a593Smuzhiyun 5391*4882a593Smuzhiyun auto the server chooses an appropriate mode 5392*4882a593Smuzhiyun automatically using heuristics 5393*4882a593Smuzhiyun global a single global pool contains all CPUs 5394*4882a593Smuzhiyun percpu one pool for each CPU 5395*4882a593Smuzhiyun pernode one pool for each NUMA node (equivalent 5396*4882a593Smuzhiyun to global on non-NUMA machines) 5397*4882a593Smuzhiyun 5398*4882a593Smuzhiyun sunrpc.tcp_slot_table_entries= 5399*4882a593Smuzhiyun sunrpc.udp_slot_table_entries= 5400*4882a593Smuzhiyun [NFS,SUNRPC] 5401*4882a593Smuzhiyun Sets the upper limit on the number of simultaneous 5402*4882a593Smuzhiyun RPC calls that can be sent from the client to a 5403*4882a593Smuzhiyun server. Increasing these values may allow you to 5404*4882a593Smuzhiyun improve throughput, but will also increase the 5405*4882a593Smuzhiyun amount of memory reserved for use by the client. 5406*4882a593Smuzhiyun 5407*4882a593Smuzhiyun suspend.pm_test_delay= 5408*4882a593Smuzhiyun [SUSPEND] 5409*4882a593Smuzhiyun Sets the number of seconds to remain in a suspend test 5410*4882a593Smuzhiyun mode before resuming the system (see 5411*4882a593Smuzhiyun /sys/power/pm_test). Only available when CONFIG_PM_DEBUG 5412*4882a593Smuzhiyun is set. Default value is 5. 5413*4882a593Smuzhiyun 5414*4882a593Smuzhiyun svm= [PPC] 5415*4882a593Smuzhiyun Format: { on | off | y | n | 1 | 0 } 5416*4882a593Smuzhiyun This parameter controls use of the Protected 5417*4882a593Smuzhiyun Execution Facility on pSeries. 5418*4882a593Smuzhiyun 5419*4882a593Smuzhiyun swapaccount=[0|1] 5420*4882a593Smuzhiyun [KNL] Enable accounting of swap in memory resource 5421*4882a593Smuzhiyun controller if no parameter or 1 is given or disable 5422*4882a593Smuzhiyun it if 0 is given (See Documentation/admin-guide/cgroup-v1/memory.rst) 5423*4882a593Smuzhiyun 5424*4882a593Smuzhiyun swiotlb= [ARM,IA-64,PPC,MIPS,X86] 5425*4882a593Smuzhiyun Format: { <int> | force | noforce } 5426*4882a593Smuzhiyun <int> -- Number of I/O TLB slabs 5427*4882a593Smuzhiyun force -- force using of bounce buffers even if they 5428*4882a593Smuzhiyun wouldn't be automatically used by the kernel 5429*4882a593Smuzhiyun noforce -- Never use bounce buffers (for debugging) 5430*4882a593Smuzhiyun 5431*4882a593Smuzhiyun switches= [HW,M68k] 5432*4882a593Smuzhiyun 5433*4882a593Smuzhiyun sysctl.*= [KNL] 5434*4882a593Smuzhiyun Set a sysctl parameter, right before loading the init 5435*4882a593Smuzhiyun process, as if the value was written to the respective 5436*4882a593Smuzhiyun /proc/sys/... file. Both '.' and '/' are recognized as 5437*4882a593Smuzhiyun separators. Unrecognized parameters and invalid values 5438*4882a593Smuzhiyun are reported in the kernel log. Sysctls registered 5439*4882a593Smuzhiyun later by a loaded module cannot be set this way. 5440*4882a593Smuzhiyun Example: sysctl.vm.swappiness=40 5441*4882a593Smuzhiyun 5442*4882a593Smuzhiyun sysfs.deprecated=0|1 [KNL] 5443*4882a593Smuzhiyun Enable/disable old style sysfs layout for old udev 5444*4882a593Smuzhiyun on older distributions. When this option is enabled 5445*4882a593Smuzhiyun very new udev will not work anymore. When this option 5446*4882a593Smuzhiyun is disabled (or CONFIG_SYSFS_DEPRECATED not compiled) 5447*4882a593Smuzhiyun in older udev will not work anymore. 5448*4882a593Smuzhiyun Default depends on CONFIG_SYSFS_DEPRECATED_V2 set in 5449*4882a593Smuzhiyun the kernel configuration. 5450*4882a593Smuzhiyun 5451*4882a593Smuzhiyun sysrq_always_enabled 5452*4882a593Smuzhiyun [KNL] 5453*4882a593Smuzhiyun Ignore sysrq setting - this boot parameter will 5454*4882a593Smuzhiyun neutralize any effect of /proc/sys/kernel/sysrq. 5455*4882a593Smuzhiyun Useful for debugging. 5456*4882a593Smuzhiyun 5457*4882a593Smuzhiyun tcpmhash_entries= [KNL,NET] 5458*4882a593Smuzhiyun Set the number of tcp_metrics_hash slots. 5459*4882a593Smuzhiyun Default value is 8192 or 16384 depending on total 5460*4882a593Smuzhiyun ram pages. This is used to specify the TCP metrics 5461*4882a593Smuzhiyun cache size. See Documentation/networking/ip-sysctl.rst 5462*4882a593Smuzhiyun "tcp_no_metrics_save" section for more details. 5463*4882a593Smuzhiyun 5464*4882a593Smuzhiyun tdfx= [HW,DRM] 5465*4882a593Smuzhiyun 5466*4882a593Smuzhiyun test_suspend= [SUSPEND][,N] 5467*4882a593Smuzhiyun Specify "mem" (for Suspend-to-RAM) or "standby" (for 5468*4882a593Smuzhiyun standby suspend) or "freeze" (for suspend type freeze) 5469*4882a593Smuzhiyun as the system sleep state during system startup with 5470*4882a593Smuzhiyun the optional capability to repeat N number of times. 5471*4882a593Smuzhiyun The system is woken from this state using a 5472*4882a593Smuzhiyun wakeup-capable RTC alarm. 5473*4882a593Smuzhiyun 5474*4882a593Smuzhiyun thash_entries= [KNL,NET] 5475*4882a593Smuzhiyun Set number of hash buckets for TCP connection 5476*4882a593Smuzhiyun 5477*4882a593Smuzhiyun thermal.act= [HW,ACPI] 5478*4882a593Smuzhiyun -1: disable all active trip points in all thermal zones 5479*4882a593Smuzhiyun <degrees C>: override all lowest active trip points 5480*4882a593Smuzhiyun 5481*4882a593Smuzhiyun thermal.crt= [HW,ACPI] 5482*4882a593Smuzhiyun -1: disable all critical trip points in all thermal zones 5483*4882a593Smuzhiyun <degrees C>: override all critical trip points 5484*4882a593Smuzhiyun 5485*4882a593Smuzhiyun thermal.nocrt= [HW,ACPI] 5486*4882a593Smuzhiyun Set to disable actions on ACPI thermal zone 5487*4882a593Smuzhiyun critical and hot trip points. 5488*4882a593Smuzhiyun 5489*4882a593Smuzhiyun thermal.off= [HW,ACPI] 5490*4882a593Smuzhiyun 1: disable ACPI thermal control 5491*4882a593Smuzhiyun 5492*4882a593Smuzhiyun thermal.psv= [HW,ACPI] 5493*4882a593Smuzhiyun -1: disable all passive trip points 5494*4882a593Smuzhiyun <degrees C>: override all passive trip points to this 5495*4882a593Smuzhiyun value 5496*4882a593Smuzhiyun 5497*4882a593Smuzhiyun thermal.tzp= [HW,ACPI] 5498*4882a593Smuzhiyun Specify global default ACPI thermal zone polling rate 5499*4882a593Smuzhiyun <deci-seconds>: poll all this frequency 5500*4882a593Smuzhiyun 0: no polling (default) 5501*4882a593Smuzhiyun 5502*4882a593Smuzhiyun threadirqs [KNL] 5503*4882a593Smuzhiyun Force threading of all interrupt handlers except those 5504*4882a593Smuzhiyun marked explicitly IRQF_NO_THREAD. 5505*4882a593Smuzhiyun 5506*4882a593Smuzhiyun topology= [S390] 5507*4882a593Smuzhiyun Format: {off | on} 5508*4882a593Smuzhiyun Specify if the kernel should make use of the cpu 5509*4882a593Smuzhiyun topology information if the hardware supports this. 5510*4882a593Smuzhiyun The scheduler will make use of this information and 5511*4882a593Smuzhiyun e.g. base its process migration decisions on it. 5512*4882a593Smuzhiyun Default is on. 5513*4882a593Smuzhiyun 5514*4882a593Smuzhiyun topology_updates= [KNL, PPC, NUMA] 5515*4882a593Smuzhiyun Format: {off} 5516*4882a593Smuzhiyun Specify if the kernel should ignore (off) 5517*4882a593Smuzhiyun topology updates sent by the hypervisor to this 5518*4882a593Smuzhiyun LPAR. 5519*4882a593Smuzhiyun 5520*4882a593Smuzhiyun torture.disable_onoff_at_boot= [KNL] 5521*4882a593Smuzhiyun Prevent the CPU-hotplug component of torturing 5522*4882a593Smuzhiyun until after init has spawned. 5523*4882a593Smuzhiyun 5524*4882a593Smuzhiyun torture.ftrace_dump_at_shutdown= [KNL] 5525*4882a593Smuzhiyun Dump the ftrace buffer at torture-test shutdown, 5526*4882a593Smuzhiyun even if there were no errors. This can be a 5527*4882a593Smuzhiyun very costly operation when many torture tests 5528*4882a593Smuzhiyun are running concurrently, especially on systems 5529*4882a593Smuzhiyun with rotating-rust storage. 5530*4882a593Smuzhiyun 5531*4882a593Smuzhiyun tp720= [HW,PS2] 5532*4882a593Smuzhiyun 5533*4882a593Smuzhiyun tpm_suspend_pcr=[HW,TPM] 5534*4882a593Smuzhiyun Format: integer pcr id 5535*4882a593Smuzhiyun Specify that at suspend time, the tpm driver 5536*4882a593Smuzhiyun should extend the specified pcr with zeros, 5537*4882a593Smuzhiyun as a workaround for some chips which fail to 5538*4882a593Smuzhiyun flush the last written pcr on TPM_SaveState. 5539*4882a593Smuzhiyun This will guarantee that all the other pcrs 5540*4882a593Smuzhiyun are saved. 5541*4882a593Smuzhiyun 5542*4882a593Smuzhiyun trace_buf_size=nn[KMG] 5543*4882a593Smuzhiyun [FTRACE] will set tracing buffer size on each cpu. 5544*4882a593Smuzhiyun 5545*4882a593Smuzhiyun trace_event=[event-list] 5546*4882a593Smuzhiyun [FTRACE] Set and start specified trace events in order 5547*4882a593Smuzhiyun to facilitate early boot debugging. The event-list is a 5548*4882a593Smuzhiyun comma separated list of trace events to enable. See 5549*4882a593Smuzhiyun also Documentation/trace/events.rst 5550*4882a593Smuzhiyun 5551*4882a593Smuzhiyun trace_options=[option-list] 5552*4882a593Smuzhiyun [FTRACE] Enable or disable tracer options at boot. 5553*4882a593Smuzhiyun The option-list is a comma delimited list of options 5554*4882a593Smuzhiyun that can be enabled or disabled just as if you were 5555*4882a593Smuzhiyun to echo the option name into 5556*4882a593Smuzhiyun 5557*4882a593Smuzhiyun /sys/kernel/debug/tracing/trace_options 5558*4882a593Smuzhiyun 5559*4882a593Smuzhiyun For example, to enable stacktrace option (to dump the 5560*4882a593Smuzhiyun stack trace of each event), add to the command line: 5561*4882a593Smuzhiyun 5562*4882a593Smuzhiyun trace_options=stacktrace 5563*4882a593Smuzhiyun 5564*4882a593Smuzhiyun See also Documentation/trace/ftrace.rst "trace options" 5565*4882a593Smuzhiyun section. 5566*4882a593Smuzhiyun 5567*4882a593Smuzhiyun tp_printk[FTRACE] 5568*4882a593Smuzhiyun Have the tracepoints sent to printk as well as the 5569*4882a593Smuzhiyun tracing ring buffer. This is useful for early boot up 5570*4882a593Smuzhiyun where the system hangs or reboots and does not give the 5571*4882a593Smuzhiyun option for reading the tracing buffer or performing a 5572*4882a593Smuzhiyun ftrace_dump_on_oops. 5573*4882a593Smuzhiyun 5574*4882a593Smuzhiyun To turn off having tracepoints sent to printk, 5575*4882a593Smuzhiyun echo 0 > /proc/sys/kernel/tracepoint_printk 5576*4882a593Smuzhiyun Note, echoing 1 into this file without the 5577*4882a593Smuzhiyun tracepoint_printk kernel cmdline option has no effect. 5578*4882a593Smuzhiyun 5579*4882a593Smuzhiyun ** CAUTION ** 5580*4882a593Smuzhiyun 5581*4882a593Smuzhiyun Having tracepoints sent to printk() and activating high 5582*4882a593Smuzhiyun frequency tracepoints such as irq or sched, can cause 5583*4882a593Smuzhiyun the system to live lock. 5584*4882a593Smuzhiyun 5585*4882a593Smuzhiyun traceoff_on_warning 5586*4882a593Smuzhiyun [FTRACE] enable this option to disable tracing when a 5587*4882a593Smuzhiyun warning is hit. This turns off "tracing_on". Tracing can 5588*4882a593Smuzhiyun be enabled again by echoing '1' into the "tracing_on" 5589*4882a593Smuzhiyun file located in /sys/kernel/debug/tracing/ 5590*4882a593Smuzhiyun 5591*4882a593Smuzhiyun This option is useful, as it disables the trace before 5592*4882a593Smuzhiyun the WARNING dump is called, which prevents the trace to 5593*4882a593Smuzhiyun be filled with content caused by the warning output. 5594*4882a593Smuzhiyun 5595*4882a593Smuzhiyun This option can also be set at run time via the sysctl 5596*4882a593Smuzhiyun option: kernel/traceoff_on_warning 5597*4882a593Smuzhiyun 5598*4882a593Smuzhiyun transparent_hugepage= 5599*4882a593Smuzhiyun [KNL] 5600*4882a593Smuzhiyun Format: [always|madvise|never] 5601*4882a593Smuzhiyun Can be used to control the default behavior of the system 5602*4882a593Smuzhiyun with respect to transparent hugepages. 5603*4882a593Smuzhiyun See Documentation/admin-guide/mm/transhuge.rst 5604*4882a593Smuzhiyun for more details. 5605*4882a593Smuzhiyun 5606*4882a593Smuzhiyun tsc= Disable clocksource stability checks for TSC. 5607*4882a593Smuzhiyun Format: <string> 5608*4882a593Smuzhiyun [x86] reliable: mark tsc clocksource as reliable, this 5609*4882a593Smuzhiyun disables clocksource verification at runtime, as well 5610*4882a593Smuzhiyun as the stability checks done at bootup. Used to enable 5611*4882a593Smuzhiyun high-resolution timer mode on older hardware, and in 5612*4882a593Smuzhiyun virtualized environment. 5613*4882a593Smuzhiyun [x86] noirqtime: Do not use TSC to do irq accounting. 5614*4882a593Smuzhiyun Used to run time disable IRQ_TIME_ACCOUNTING on any 5615*4882a593Smuzhiyun platforms where RDTSC is slow and this accounting 5616*4882a593Smuzhiyun can add overhead. 5617*4882a593Smuzhiyun [x86] unstable: mark the TSC clocksource as unstable, this 5618*4882a593Smuzhiyun marks the TSC unconditionally unstable at bootup and 5619*4882a593Smuzhiyun avoids any further wobbles once the TSC watchdog notices. 5620*4882a593Smuzhiyun [x86] nowatchdog: disable clocksource watchdog. Used 5621*4882a593Smuzhiyun in situations with strict latency requirements (where 5622*4882a593Smuzhiyun interruptions from clocksource watchdog are not 5623*4882a593Smuzhiyun acceptable). 5624*4882a593Smuzhiyun 5625*4882a593Smuzhiyun tsc_early_khz= [X86] Skip early TSC calibration and use the given 5626*4882a593Smuzhiyun value instead. Useful when the early TSC frequency discovery 5627*4882a593Smuzhiyun procedure is not reliable, such as on overclocked systems 5628*4882a593Smuzhiyun with CPUID.16h support and partial CPUID.15h support. 5629*4882a593Smuzhiyun Format: <unsigned int> 5630*4882a593Smuzhiyun 5631*4882a593Smuzhiyun tsx= [X86] Control Transactional Synchronization 5632*4882a593Smuzhiyun Extensions (TSX) feature in Intel processors that 5633*4882a593Smuzhiyun support TSX control. 5634*4882a593Smuzhiyun 5635*4882a593Smuzhiyun This parameter controls the TSX feature. The options are: 5636*4882a593Smuzhiyun 5637*4882a593Smuzhiyun on - Enable TSX on the system. Although there are 5638*4882a593Smuzhiyun mitigations for all known security vulnerabilities, 5639*4882a593Smuzhiyun TSX has been known to be an accelerator for 5640*4882a593Smuzhiyun several previous speculation-related CVEs, and 5641*4882a593Smuzhiyun so there may be unknown security risks associated 5642*4882a593Smuzhiyun with leaving it enabled. 5643*4882a593Smuzhiyun 5644*4882a593Smuzhiyun off - Disable TSX on the system. (Note that this 5645*4882a593Smuzhiyun option takes effect only on newer CPUs which are 5646*4882a593Smuzhiyun not vulnerable to MDS, i.e., have 5647*4882a593Smuzhiyun MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1 and which get 5648*4882a593Smuzhiyun the new IA32_TSX_CTRL MSR through a microcode 5649*4882a593Smuzhiyun update. This new MSR allows for the reliable 5650*4882a593Smuzhiyun deactivation of the TSX functionality.) 5651*4882a593Smuzhiyun 5652*4882a593Smuzhiyun auto - Disable TSX if X86_BUG_TAA is present, 5653*4882a593Smuzhiyun otherwise enable TSX on the system. 5654*4882a593Smuzhiyun 5655*4882a593Smuzhiyun Not specifying this option is equivalent to tsx=off. 5656*4882a593Smuzhiyun 5657*4882a593Smuzhiyun See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst 5658*4882a593Smuzhiyun for more details. 5659*4882a593Smuzhiyun 5660*4882a593Smuzhiyun tsx_async_abort= [X86,INTEL] Control mitigation for the TSX Async 5661*4882a593Smuzhiyun Abort (TAA) vulnerability. 5662*4882a593Smuzhiyun 5663*4882a593Smuzhiyun Similar to Micro-architectural Data Sampling (MDS) 5664*4882a593Smuzhiyun certain CPUs that support Transactional 5665*4882a593Smuzhiyun Synchronization Extensions (TSX) are vulnerable to an 5666*4882a593Smuzhiyun exploit against CPU internal buffers which can forward 5667*4882a593Smuzhiyun information to a disclosure gadget under certain 5668*4882a593Smuzhiyun conditions. 5669*4882a593Smuzhiyun 5670*4882a593Smuzhiyun In vulnerable processors, the speculatively forwarded 5671*4882a593Smuzhiyun data can be used in a cache side channel attack, to 5672*4882a593Smuzhiyun access data to which the attacker does not have direct 5673*4882a593Smuzhiyun access. 5674*4882a593Smuzhiyun 5675*4882a593Smuzhiyun This parameter controls the TAA mitigation. The 5676*4882a593Smuzhiyun options are: 5677*4882a593Smuzhiyun 5678*4882a593Smuzhiyun full - Enable TAA mitigation on vulnerable CPUs 5679*4882a593Smuzhiyun if TSX is enabled. 5680*4882a593Smuzhiyun 5681*4882a593Smuzhiyun full,nosmt - Enable TAA mitigation and disable SMT on 5682*4882a593Smuzhiyun vulnerable CPUs. If TSX is disabled, SMT 5683*4882a593Smuzhiyun is not disabled because CPU is not 5684*4882a593Smuzhiyun vulnerable to cross-thread TAA attacks. 5685*4882a593Smuzhiyun off - Unconditionally disable TAA mitigation 5686*4882a593Smuzhiyun 5687*4882a593Smuzhiyun On MDS-affected machines, tsx_async_abort=off can be 5688*4882a593Smuzhiyun prevented by an active MDS mitigation as both vulnerabilities 5689*4882a593Smuzhiyun are mitigated with the same mechanism so in order to disable 5690*4882a593Smuzhiyun this mitigation, you need to specify mds=off too. 5691*4882a593Smuzhiyun 5692*4882a593Smuzhiyun Not specifying this option is equivalent to 5693*4882a593Smuzhiyun tsx_async_abort=full. On CPUs which are MDS affected 5694*4882a593Smuzhiyun and deploy MDS mitigation, TAA mitigation is not 5695*4882a593Smuzhiyun required and doesn't provide any additional 5696*4882a593Smuzhiyun mitigation. 5697*4882a593Smuzhiyun 5698*4882a593Smuzhiyun For details see: 5699*4882a593Smuzhiyun Documentation/admin-guide/hw-vuln/tsx_async_abort.rst 5700*4882a593Smuzhiyun 5701*4882a593Smuzhiyun turbografx.map[2|3]= [HW,JOY] 5702*4882a593Smuzhiyun TurboGraFX parallel port interface 5703*4882a593Smuzhiyun Format: 5704*4882a593Smuzhiyun <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7> 5705*4882a593Smuzhiyun See also Documentation/input/devices/joystick-parport.rst 5706*4882a593Smuzhiyun 5707*4882a593Smuzhiyun udbg-immortal [PPC] When debugging early kernel crashes that 5708*4882a593Smuzhiyun happen after console_init() and before a proper 5709*4882a593Smuzhiyun console driver takes over, this boot options might 5710*4882a593Smuzhiyun help "seeing" what's going on. 5711*4882a593Smuzhiyun 5712*4882a593Smuzhiyun uhash_entries= [KNL,NET] 5713*4882a593Smuzhiyun Set number of hash buckets for UDP/UDP-Lite connections 5714*4882a593Smuzhiyun 5715*4882a593Smuzhiyun uhci-hcd.ignore_oc= 5716*4882a593Smuzhiyun [USB] Ignore overcurrent events (default N). 5717*4882a593Smuzhiyun Some badly-designed motherboards generate lots of 5718*4882a593Smuzhiyun bogus events, for ports that aren't wired to 5719*4882a593Smuzhiyun anything. Set this parameter to avoid log spamming. 5720*4882a593Smuzhiyun Note that genuine overcurrent events won't be 5721*4882a593Smuzhiyun reported either. 5722*4882a593Smuzhiyun 5723*4882a593Smuzhiyun unknown_nmi_panic 5724*4882a593Smuzhiyun [X86] Cause panic on unknown NMI. 5725*4882a593Smuzhiyun 5726*4882a593Smuzhiyun usbcore.authorized_default= 5727*4882a593Smuzhiyun [USB] Default USB device authorization: 5728*4882a593Smuzhiyun (default -1 = authorized except for wireless USB, 5729*4882a593Smuzhiyun 0 = not authorized, 1 = authorized, 2 = authorized 5730*4882a593Smuzhiyun if device connected to internal port) 5731*4882a593Smuzhiyun 5732*4882a593Smuzhiyun usbcore.autosuspend= 5733*4882a593Smuzhiyun [USB] The autosuspend time delay (in seconds) used 5734*4882a593Smuzhiyun for newly-detected USB devices (default 2). This 5735*4882a593Smuzhiyun is the time required before an idle device will be 5736*4882a593Smuzhiyun autosuspended. Devices for which the delay is set 5737*4882a593Smuzhiyun to a negative value won't be autosuspended at all. 5738*4882a593Smuzhiyun 5739*4882a593Smuzhiyun usbcore.usbfs_snoop= 5740*4882a593Smuzhiyun [USB] Set to log all usbfs traffic (default 0 = off). 5741*4882a593Smuzhiyun 5742*4882a593Smuzhiyun usbcore.usbfs_snoop_max= 5743*4882a593Smuzhiyun [USB] Maximum number of bytes to snoop in each URB 5744*4882a593Smuzhiyun (default = 65536). 5745*4882a593Smuzhiyun 5746*4882a593Smuzhiyun usbcore.blinkenlights= 5747*4882a593Smuzhiyun [USB] Set to cycle leds on hubs (default 0 = off). 5748*4882a593Smuzhiyun 5749*4882a593Smuzhiyun usbcore.old_scheme_first= 5750*4882a593Smuzhiyun [USB] Start with the old device initialization 5751*4882a593Smuzhiyun scheme (default 0 = off). 5752*4882a593Smuzhiyun 5753*4882a593Smuzhiyun usbcore.usbfs_memory_mb= 5754*4882a593Smuzhiyun [USB] Memory limit (in MB) for buffers allocated by 5755*4882a593Smuzhiyun usbfs (default = 16, 0 = max = 2047). 5756*4882a593Smuzhiyun 5757*4882a593Smuzhiyun usbcore.use_both_schemes= 5758*4882a593Smuzhiyun [USB] Try the other device initialization scheme 5759*4882a593Smuzhiyun if the first one fails (default 1 = enabled). 5760*4882a593Smuzhiyun 5761*4882a593Smuzhiyun usbcore.initial_descriptor_timeout= 5762*4882a593Smuzhiyun [USB] Specifies timeout for the initial 64-byte 5763*4882a593Smuzhiyun USB_REQ_GET_DESCRIPTOR request in milliseconds 5764*4882a593Smuzhiyun (default 5000 = 5.0 seconds). 5765*4882a593Smuzhiyun 5766*4882a593Smuzhiyun usbcore.nousb [USB] Disable the USB subsystem 5767*4882a593Smuzhiyun 5768*4882a593Smuzhiyun usbcore.quirks= 5769*4882a593Smuzhiyun [USB] A list of quirk entries to augment the built-in 5770*4882a593Smuzhiyun usb core quirk list. List entries are separated by 5771*4882a593Smuzhiyun commas. Each entry has the form 5772*4882a593Smuzhiyun VendorID:ProductID:Flags. The IDs are 4-digit hex 5773*4882a593Smuzhiyun numbers and Flags is a set of letters. Each letter 5774*4882a593Smuzhiyun will change the built-in quirk; setting it if it is 5775*4882a593Smuzhiyun clear and clearing it if it is set. The letters have 5776*4882a593Smuzhiyun the following meanings: 5777*4882a593Smuzhiyun a = USB_QUIRK_STRING_FETCH_255 (string 5778*4882a593Smuzhiyun descriptors must not be fetched using 5779*4882a593Smuzhiyun a 255-byte read); 5780*4882a593Smuzhiyun b = USB_QUIRK_RESET_RESUME (device can't resume 5781*4882a593Smuzhiyun correctly so reset it instead); 5782*4882a593Smuzhiyun c = USB_QUIRK_NO_SET_INTF (device can't handle 5783*4882a593Smuzhiyun Set-Interface requests); 5784*4882a593Smuzhiyun d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't 5785*4882a593Smuzhiyun handle its Configuration or Interface 5786*4882a593Smuzhiyun strings); 5787*4882a593Smuzhiyun e = USB_QUIRK_RESET (device can't be reset 5788*4882a593Smuzhiyun (e.g morph devices), don't use reset); 5789*4882a593Smuzhiyun f = USB_QUIRK_HONOR_BNUMINTERFACES (device has 5790*4882a593Smuzhiyun more interface descriptions than the 5791*4882a593Smuzhiyun bNumInterfaces count, and can't handle 5792*4882a593Smuzhiyun talking to these interfaces); 5793*4882a593Smuzhiyun g = USB_QUIRK_DELAY_INIT (device needs a pause 5794*4882a593Smuzhiyun during initialization, after we read 5795*4882a593Smuzhiyun the device descriptor); 5796*4882a593Smuzhiyun h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For 5797*4882a593Smuzhiyun high speed and super speed interrupt 5798*4882a593Smuzhiyun endpoints, the USB 2.0 and USB 3.0 spec 5799*4882a593Smuzhiyun require the interval in microframes (1 5800*4882a593Smuzhiyun microframe = 125 microseconds) to be 5801*4882a593Smuzhiyun calculated as interval = 2 ^ 5802*4882a593Smuzhiyun (bInterval-1). 5803*4882a593Smuzhiyun Devices with this quirk report their 5804*4882a593Smuzhiyun bInterval as the result of this 5805*4882a593Smuzhiyun calculation instead of the exponent 5806*4882a593Smuzhiyun variable used in the calculation); 5807*4882a593Smuzhiyun i = USB_QUIRK_DEVICE_QUALIFIER (device can't 5808*4882a593Smuzhiyun handle device_qualifier descriptor 5809*4882a593Smuzhiyun requests); 5810*4882a593Smuzhiyun j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device 5811*4882a593Smuzhiyun generates spurious wakeup, ignore 5812*4882a593Smuzhiyun remote wakeup capability); 5813*4882a593Smuzhiyun k = USB_QUIRK_NO_LPM (device can't handle Link 5814*4882a593Smuzhiyun Power Management); 5815*4882a593Smuzhiyun l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL 5816*4882a593Smuzhiyun (Device reports its bInterval as linear 5817*4882a593Smuzhiyun frames instead of the USB 2.0 5818*4882a593Smuzhiyun calculation); 5819*4882a593Smuzhiyun m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs 5820*4882a593Smuzhiyun to be disconnected before suspend to 5821*4882a593Smuzhiyun prevent spurious wakeup); 5822*4882a593Smuzhiyun n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a 5823*4882a593Smuzhiyun pause after every control message); 5824*4882a593Smuzhiyun o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra 5825*4882a593Smuzhiyun delay after resetting its port); 5826*4882a593Smuzhiyun Example: quirks=0781:5580:bk,0a5c:5834:gij 5827*4882a593Smuzhiyun 5828*4882a593Smuzhiyun usbhid.mousepoll= 5829*4882a593Smuzhiyun [USBHID] The interval which mice are to be polled at. 5830*4882a593Smuzhiyun 5831*4882a593Smuzhiyun usbhid.jspoll= 5832*4882a593Smuzhiyun [USBHID] The interval which joysticks are to be polled at. 5833*4882a593Smuzhiyun 5834*4882a593Smuzhiyun usbhid.kbpoll= 5835*4882a593Smuzhiyun [USBHID] The interval which keyboards are to be polled at. 5836*4882a593Smuzhiyun 5837*4882a593Smuzhiyun usb-storage.delay_use= 5838*4882a593Smuzhiyun [UMS] The delay in seconds before a new device is 5839*4882a593Smuzhiyun scanned for Logical Units (default 1). 5840*4882a593Smuzhiyun 5841*4882a593Smuzhiyun usb-storage.quirks= 5842*4882a593Smuzhiyun [UMS] A list of quirks entries to supplement or 5843*4882a593Smuzhiyun override the built-in unusual_devs list. List 5844*4882a593Smuzhiyun entries are separated by commas. Each entry has 5845*4882a593Smuzhiyun the form VID:PID:Flags where VID and PID are Vendor 5846*4882a593Smuzhiyun and Product ID values (4-digit hex numbers) and 5847*4882a593Smuzhiyun Flags is a set of characters, each corresponding 5848*4882a593Smuzhiyun to a common usb-storage quirk flag as follows: 5849*4882a593Smuzhiyun a = SANE_SENSE (collect more than 18 bytes 5850*4882a593Smuzhiyun of sense data, not on uas); 5851*4882a593Smuzhiyun b = BAD_SENSE (don't collect more than 18 5852*4882a593Smuzhiyun bytes of sense data, not on uas); 5853*4882a593Smuzhiyun c = FIX_CAPACITY (decrease the reported 5854*4882a593Smuzhiyun device capacity by one sector); 5855*4882a593Smuzhiyun d = NO_READ_DISC_INFO (don't use 5856*4882a593Smuzhiyun READ_DISC_INFO command, not on uas); 5857*4882a593Smuzhiyun e = NO_READ_CAPACITY_16 (don't use 5858*4882a593Smuzhiyun READ_CAPACITY_16 command); 5859*4882a593Smuzhiyun f = NO_REPORT_OPCODES (don't use report opcodes 5860*4882a593Smuzhiyun command, uas only); 5861*4882a593Smuzhiyun g = MAX_SECTORS_240 (don't transfer more than 5862*4882a593Smuzhiyun 240 sectors at a time, uas only); 5863*4882a593Smuzhiyun h = CAPACITY_HEURISTICS (decrease the 5864*4882a593Smuzhiyun reported device capacity by one 5865*4882a593Smuzhiyun sector if the number is odd); 5866*4882a593Smuzhiyun i = IGNORE_DEVICE (don't bind to this 5867*4882a593Smuzhiyun device); 5868*4882a593Smuzhiyun j = NO_REPORT_LUNS (don't use report luns 5869*4882a593Smuzhiyun command, uas only); 5870*4882a593Smuzhiyun k = NO_SAME (do not use WRITE_SAME, uas only) 5871*4882a593Smuzhiyun l = NOT_LOCKABLE (don't try to lock and 5872*4882a593Smuzhiyun unlock ejectable media, not on uas); 5873*4882a593Smuzhiyun m = MAX_SECTORS_64 (don't transfer more 5874*4882a593Smuzhiyun than 64 sectors = 32 KB at a time, 5875*4882a593Smuzhiyun not on uas); 5876*4882a593Smuzhiyun n = INITIAL_READ10 (force a retry of the 5877*4882a593Smuzhiyun initial READ(10) command, not on uas); 5878*4882a593Smuzhiyun o = CAPACITY_OK (accept the capacity 5879*4882a593Smuzhiyun reported by the device, not on uas); 5880*4882a593Smuzhiyun p = WRITE_CACHE (the device cache is ON 5881*4882a593Smuzhiyun by default, not on uas); 5882*4882a593Smuzhiyun r = IGNORE_RESIDUE (the device reports 5883*4882a593Smuzhiyun bogus residue values, not on uas); 5884*4882a593Smuzhiyun s = SINGLE_LUN (the device has only one 5885*4882a593Smuzhiyun Logical Unit); 5886*4882a593Smuzhiyun t = NO_ATA_1X (don't allow ATA(12) and ATA(16) 5887*4882a593Smuzhiyun commands, uas only); 5888*4882a593Smuzhiyun u = IGNORE_UAS (don't bind to the uas driver); 5889*4882a593Smuzhiyun w = NO_WP_DETECT (don't test whether the 5890*4882a593Smuzhiyun medium is write-protected). 5891*4882a593Smuzhiyun y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE 5892*4882a593Smuzhiyun even if the device claims no cache, 5893*4882a593Smuzhiyun not on uas) 5894*4882a593Smuzhiyun Example: quirks=0419:aaf5:rl,0421:0433:rc 5895*4882a593Smuzhiyun 5896*4882a593Smuzhiyun user_debug= [KNL,ARM] 5897*4882a593Smuzhiyun Format: <int> 5898*4882a593Smuzhiyun See arch/arm/Kconfig.debug help text. 5899*4882a593Smuzhiyun 1 - undefined instruction events 5900*4882a593Smuzhiyun 2 - system calls 5901*4882a593Smuzhiyun 4 - invalid data aborts 5902*4882a593Smuzhiyun 8 - SIGSEGV faults 5903*4882a593Smuzhiyun 16 - SIGBUS faults 5904*4882a593Smuzhiyun Example: user_debug=31 5905*4882a593Smuzhiyun 5906*4882a593Smuzhiyun userpte= 5907*4882a593Smuzhiyun [X86] Flags controlling user PTE allocations. 5908*4882a593Smuzhiyun 5909*4882a593Smuzhiyun nohigh = do not allocate PTE pages in 5910*4882a593Smuzhiyun HIGHMEM regardless of setting 5911*4882a593Smuzhiyun of CONFIG_HIGHPTE. 5912*4882a593Smuzhiyun 5913*4882a593Smuzhiyun vdso= [X86,SH] 5914*4882a593Smuzhiyun On X86_32, this is an alias for vdso32=. Otherwise: 5915*4882a593Smuzhiyun 5916*4882a593Smuzhiyun vdso=1: enable VDSO (the default) 5917*4882a593Smuzhiyun vdso=0: disable VDSO mapping 5918*4882a593Smuzhiyun 5919*4882a593Smuzhiyun vdso32= [X86] Control the 32-bit vDSO 5920*4882a593Smuzhiyun vdso32=1: enable 32-bit VDSO 5921*4882a593Smuzhiyun vdso32=0 or vdso32=2: disable 32-bit VDSO 5922*4882a593Smuzhiyun 5923*4882a593Smuzhiyun See the help text for CONFIG_COMPAT_VDSO for more 5924*4882a593Smuzhiyun details. If CONFIG_COMPAT_VDSO is set, the default is 5925*4882a593Smuzhiyun vdso32=0; otherwise, the default is vdso32=1. 5926*4882a593Smuzhiyun 5927*4882a593Smuzhiyun For compatibility with older kernels, vdso32=2 is an 5928*4882a593Smuzhiyun alias for vdso32=0. 5929*4882a593Smuzhiyun 5930*4882a593Smuzhiyun Try vdso32=0 if you encounter an error that says: 5931*4882a593Smuzhiyun dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed! 5932*4882a593Smuzhiyun 5933*4882a593Smuzhiyun vector= [IA-64,SMP] 5934*4882a593Smuzhiyun vector=percpu: enable percpu vector domain 5935*4882a593Smuzhiyun 5936*4882a593Smuzhiyun video= [FB] Frame buffer configuration 5937*4882a593Smuzhiyun See Documentation/fb/modedb.rst. 5938*4882a593Smuzhiyun 5939*4882a593Smuzhiyun video.brightness_switch_enabled= [0,1] 5940*4882a593Smuzhiyun If set to 1, on receiving an ACPI notify event 5941*4882a593Smuzhiyun generated by hotkey, video driver will adjust brightness 5942*4882a593Smuzhiyun level and then send out the event to user space through 5943*4882a593Smuzhiyun the allocated input device; If set to 0, video driver 5944*4882a593Smuzhiyun will only send out the event without touching backlight 5945*4882a593Smuzhiyun brightness level. 5946*4882a593Smuzhiyun default: 1 5947*4882a593Smuzhiyun 5948*4882a593Smuzhiyun virtio_mmio.device= 5949*4882a593Smuzhiyun [VMMIO] Memory mapped virtio (platform) device. 5950*4882a593Smuzhiyun 5951*4882a593Smuzhiyun <size>@<baseaddr>:<irq>[:<id>] 5952*4882a593Smuzhiyun where: 5953*4882a593Smuzhiyun <size> := size (can use standard suffixes 5954*4882a593Smuzhiyun like K, M and G) 5955*4882a593Smuzhiyun <baseaddr> := physical base address 5956*4882a593Smuzhiyun <irq> := interrupt number (as passed to 5957*4882a593Smuzhiyun request_irq()) 5958*4882a593Smuzhiyun <id> := (optional) platform device id 5959*4882a593Smuzhiyun example: 5960*4882a593Smuzhiyun virtio_mmio.device=1K@0x100b0000:48:7 5961*4882a593Smuzhiyun 5962*4882a593Smuzhiyun Can be used multiple times for multiple devices. 5963*4882a593Smuzhiyun 5964*4882a593Smuzhiyun vga= [BOOT,X86-32] Select a particular video mode 5965*4882a593Smuzhiyun See Documentation/x86/boot.rst and 5966*4882a593Smuzhiyun Documentation/admin-guide/svga.rst. 5967*4882a593Smuzhiyun Use vga=ask for menu. 5968*4882a593Smuzhiyun This is actually a boot loader parameter; the value is 5969*4882a593Smuzhiyun passed to the kernel using a special protocol. 5970*4882a593Smuzhiyun 5971*4882a593Smuzhiyun vm_debug[=options] [KNL] Available with CONFIG_DEBUG_VM=y. 5972*4882a593Smuzhiyun May slow down system boot speed, especially when 5973*4882a593Smuzhiyun enabled on systems with a large amount of memory. 5974*4882a593Smuzhiyun All options are enabled by default, and this 5975*4882a593Smuzhiyun interface is meant to allow for selectively 5976*4882a593Smuzhiyun enabling or disabling specific virtual memory 5977*4882a593Smuzhiyun debugging features. 5978*4882a593Smuzhiyun 5979*4882a593Smuzhiyun Available options are: 5980*4882a593Smuzhiyun P Enable page structure init time poisoning 5981*4882a593Smuzhiyun - Disable all of the above options 5982*4882a593Smuzhiyun 5983*4882a593Smuzhiyun vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an exact 5984*4882a593Smuzhiyun size of <nn>. This can be used to increase the 5985*4882a593Smuzhiyun minimum size (128MB on x86). It can also be used to 5986*4882a593Smuzhiyun decrease the size and leave more room for directly 5987*4882a593Smuzhiyun mapped kernel RAM. 5988*4882a593Smuzhiyun 5989*4882a593Smuzhiyun vmcp_cma=nn[MG] [KNL,S390] 5990*4882a593Smuzhiyun Sets the memory size reserved for contiguous memory 5991*4882a593Smuzhiyun allocations for the vmcp device driver. 5992*4882a593Smuzhiyun 5993*4882a593Smuzhiyun vmhalt= [KNL,S390] Perform z/VM CP command after system halt. 5994*4882a593Smuzhiyun Format: <command> 5995*4882a593Smuzhiyun 5996*4882a593Smuzhiyun vmpanic= [KNL,S390] Perform z/VM CP command after kernel panic. 5997*4882a593Smuzhiyun Format: <command> 5998*4882a593Smuzhiyun 5999*4882a593Smuzhiyun vmpoff= [KNL,S390] Perform z/VM CP command after power off. 6000*4882a593Smuzhiyun Format: <command> 6001*4882a593Smuzhiyun 6002*4882a593Smuzhiyun vsyscall= [X86-64] 6003*4882a593Smuzhiyun Controls the behavior of vsyscalls (i.e. calls to 6004*4882a593Smuzhiyun fixed addresses of 0xffffffffff600x00 from legacy 6005*4882a593Smuzhiyun code). Most statically-linked binaries and older 6006*4882a593Smuzhiyun versions of glibc use these calls. Because these 6007*4882a593Smuzhiyun functions are at fixed addresses, they make nice 6008*4882a593Smuzhiyun targets for exploits that can control RIP. 6009*4882a593Smuzhiyun 6010*4882a593Smuzhiyun emulate [default] Vsyscalls turn into traps and are 6011*4882a593Smuzhiyun emulated reasonably safely. The vsyscall 6012*4882a593Smuzhiyun page is readable. 6013*4882a593Smuzhiyun 6014*4882a593Smuzhiyun xonly Vsyscalls turn into traps and are 6015*4882a593Smuzhiyun emulated reasonably safely. The vsyscall 6016*4882a593Smuzhiyun page is not readable. 6017*4882a593Smuzhiyun 6018*4882a593Smuzhiyun none Vsyscalls don't work at all. This makes 6019*4882a593Smuzhiyun them quite hard to use for exploits but 6020*4882a593Smuzhiyun might break your system. 6021*4882a593Smuzhiyun 6022*4882a593Smuzhiyun vt.color= [VT] Default text color. 6023*4882a593Smuzhiyun Format: 0xYX, X = foreground, Y = background. 6024*4882a593Smuzhiyun Default: 0x07 = light gray on black. 6025*4882a593Smuzhiyun 6026*4882a593Smuzhiyun vt.cur_default= [VT] Default cursor shape. 6027*4882a593Smuzhiyun Format: 0xCCBBAA, where AA, BB, and CC are the same as 6028*4882a593Smuzhiyun the parameters of the <Esc>[?A;B;Cc escape sequence; 6029*4882a593Smuzhiyun see VGA-softcursor.txt. Default: 2 = underline. 6030*4882a593Smuzhiyun 6031*4882a593Smuzhiyun vt.default_blu= [VT] 6032*4882a593Smuzhiyun Format: <blue0>,<blue1>,<blue2>,...,<blue15> 6033*4882a593Smuzhiyun Change the default blue palette of the console. 6034*4882a593Smuzhiyun This is a 16-member array composed of values 6035*4882a593Smuzhiyun ranging from 0-255. 6036*4882a593Smuzhiyun 6037*4882a593Smuzhiyun vt.default_grn= [VT] 6038*4882a593Smuzhiyun Format: <green0>,<green1>,<green2>,...,<green15> 6039*4882a593Smuzhiyun Change the default green palette of the console. 6040*4882a593Smuzhiyun This is a 16-member array composed of values 6041*4882a593Smuzhiyun ranging from 0-255. 6042*4882a593Smuzhiyun 6043*4882a593Smuzhiyun vt.default_red= [VT] 6044*4882a593Smuzhiyun Format: <red0>,<red1>,<red2>,...,<red15> 6045*4882a593Smuzhiyun Change the default red palette of the console. 6046*4882a593Smuzhiyun This is a 16-member array composed of values 6047*4882a593Smuzhiyun ranging from 0-255. 6048*4882a593Smuzhiyun 6049*4882a593Smuzhiyun vt.default_utf8= 6050*4882a593Smuzhiyun [VT] 6051*4882a593Smuzhiyun Format=<0|1> 6052*4882a593Smuzhiyun Set system-wide default UTF-8 mode for all tty's. 6053*4882a593Smuzhiyun Default is 1, i.e. UTF-8 mode is enabled for all 6054*4882a593Smuzhiyun newly opened terminals. 6055*4882a593Smuzhiyun 6056*4882a593Smuzhiyun vt.global_cursor_default= 6057*4882a593Smuzhiyun [VT] 6058*4882a593Smuzhiyun Format=<-1|0|1> 6059*4882a593Smuzhiyun Set system-wide default for whether a cursor 6060*4882a593Smuzhiyun is shown on new VTs. Default is -1, 6061*4882a593Smuzhiyun i.e. cursors will be created by default unless 6062*4882a593Smuzhiyun overridden by individual drivers. 0 will hide 6063*4882a593Smuzhiyun cursors, 1 will display them. 6064*4882a593Smuzhiyun 6065*4882a593Smuzhiyun vt.italic= [VT] Default color for italic text; 0-15. 6066*4882a593Smuzhiyun Default: 2 = green. 6067*4882a593Smuzhiyun 6068*4882a593Smuzhiyun vt.underline= [VT] Default color for underlined text; 0-15. 6069*4882a593Smuzhiyun Default: 3 = cyan. 6070*4882a593Smuzhiyun 6071*4882a593Smuzhiyun watchdog timers [HW,WDT] For information on watchdog timers, 6072*4882a593Smuzhiyun see Documentation/watchdog/watchdog-parameters.rst 6073*4882a593Smuzhiyun or other driver-specific files in the 6074*4882a593Smuzhiyun Documentation/watchdog/ directory. 6075*4882a593Smuzhiyun 6076*4882a593Smuzhiyun watchdog_thresh= 6077*4882a593Smuzhiyun [KNL] 6078*4882a593Smuzhiyun Set the hard lockup detector stall duration 6079*4882a593Smuzhiyun threshold in seconds. The soft lockup detector 6080*4882a593Smuzhiyun threshold is set to twice the value. A value of 0 6081*4882a593Smuzhiyun disables both lockup detectors. Default is 10 6082*4882a593Smuzhiyun seconds. 6083*4882a593Smuzhiyun 6084*4882a593Smuzhiyun workqueue.watchdog_thresh= 6085*4882a593Smuzhiyun If CONFIG_WQ_WATCHDOG is configured, workqueue can 6086*4882a593Smuzhiyun warn stall conditions and dump internal state to 6087*4882a593Smuzhiyun help debugging. 0 disables workqueue stall 6088*4882a593Smuzhiyun detection; otherwise, it's the stall threshold 6089*4882a593Smuzhiyun duration in seconds. The default value is 30 and 6090*4882a593Smuzhiyun it can be updated at runtime by writing to the 6091*4882a593Smuzhiyun corresponding sysfs file. 6092*4882a593Smuzhiyun 6093*4882a593Smuzhiyun workqueue.disable_numa 6094*4882a593Smuzhiyun By default, all work items queued to unbound 6095*4882a593Smuzhiyun workqueues are affine to the NUMA nodes they're 6096*4882a593Smuzhiyun issued on, which results in better behavior in 6097*4882a593Smuzhiyun general. If NUMA affinity needs to be disabled for 6098*4882a593Smuzhiyun whatever reason, this option can be used. Note 6099*4882a593Smuzhiyun that this also can be controlled per-workqueue for 6100*4882a593Smuzhiyun workqueues visible under /sys/bus/workqueue/. 6101*4882a593Smuzhiyun 6102*4882a593Smuzhiyun workqueue.power_efficient 6103*4882a593Smuzhiyun Per-cpu workqueues are generally preferred because 6104*4882a593Smuzhiyun they show better performance thanks to cache 6105*4882a593Smuzhiyun locality; unfortunately, per-cpu workqueues tend to 6106*4882a593Smuzhiyun be more power hungry than unbound workqueues. 6107*4882a593Smuzhiyun 6108*4882a593Smuzhiyun Enabling this makes the per-cpu workqueues which 6109*4882a593Smuzhiyun were observed to contribute significantly to power 6110*4882a593Smuzhiyun consumption unbound, leading to measurably lower 6111*4882a593Smuzhiyun power usage at the cost of small performance 6112*4882a593Smuzhiyun overhead. 6113*4882a593Smuzhiyun 6114*4882a593Smuzhiyun The default value of this parameter is determined by 6115*4882a593Smuzhiyun the config option CONFIG_WQ_POWER_EFFICIENT_DEFAULT. 6116*4882a593Smuzhiyun 6117*4882a593Smuzhiyun workqueue.debug_force_rr_cpu 6118*4882a593Smuzhiyun Workqueue used to implicitly guarantee that work 6119*4882a593Smuzhiyun items queued without explicit CPU specified are put 6120*4882a593Smuzhiyun on the local CPU. This guarantee is no longer true 6121*4882a593Smuzhiyun and while local CPU is still preferred work items 6122*4882a593Smuzhiyun may be put on foreign CPUs. This debug option 6123*4882a593Smuzhiyun forces round-robin CPU selection to flush out 6124*4882a593Smuzhiyun usages which depend on the now broken guarantee. 6125*4882a593Smuzhiyun When enabled, memory and cache locality will be 6126*4882a593Smuzhiyun impacted. 6127*4882a593Smuzhiyun 6128*4882a593Smuzhiyun x2apic_phys [X86-64,APIC] Use x2apic physical mode instead of 6129*4882a593Smuzhiyun default x2apic cluster mode on platforms 6130*4882a593Smuzhiyun supporting x2apic. 6131*4882a593Smuzhiyun 6132*4882a593Smuzhiyun x86_intel_mid_timer= [X86-32,APBT] 6133*4882a593Smuzhiyun Choose timer option for x86 Intel MID platform. 6134*4882a593Smuzhiyun Two valid options are apbt timer only and lapic timer 6135*4882a593Smuzhiyun plus one apbt timer for broadcast timer. 6136*4882a593Smuzhiyun x86_intel_mid_timer=apbt_only | lapic_and_apbt 6137*4882a593Smuzhiyun 6138*4882a593Smuzhiyun xen_512gb_limit [KNL,X86-64,XEN] 6139*4882a593Smuzhiyun Restricts the kernel running paravirtualized under Xen 6140*4882a593Smuzhiyun to use only up to 512 GB of RAM. The reason to do so is 6141*4882a593Smuzhiyun crash analysis tools and Xen tools for doing domain 6142*4882a593Smuzhiyun save/restore/migration must be enabled to handle larger 6143*4882a593Smuzhiyun domains. 6144*4882a593Smuzhiyun 6145*4882a593Smuzhiyun xen_emul_unplug= [HW,X86,XEN] 6146*4882a593Smuzhiyun Unplug Xen emulated devices 6147*4882a593Smuzhiyun Format: [unplug0,][unplug1] 6148*4882a593Smuzhiyun ide-disks -- unplug primary master IDE devices 6149*4882a593Smuzhiyun aux-ide-disks -- unplug non-primary-master IDE devices 6150*4882a593Smuzhiyun nics -- unplug network devices 6151*4882a593Smuzhiyun all -- unplug all emulated devices (NICs and IDE disks) 6152*4882a593Smuzhiyun unnecessary -- unplugging emulated devices is 6153*4882a593Smuzhiyun unnecessary even if the host did not respond to 6154*4882a593Smuzhiyun the unplug protocol 6155*4882a593Smuzhiyun never -- do not unplug even if version check succeeds 6156*4882a593Smuzhiyun 6157*4882a593Smuzhiyun xen_legacy_crash [X86,XEN] 6158*4882a593Smuzhiyun Crash from Xen panic notifier, without executing late 6159*4882a593Smuzhiyun panic() code such as dumping handler. 6160*4882a593Smuzhiyun 6161*4882a593Smuzhiyun xen_nopvspin [X86,XEN] 6162*4882a593Smuzhiyun Disables the qspinlock slowpath using Xen PV optimizations. 6163*4882a593Smuzhiyun This parameter is obsoleted by "nopvspin" parameter, which 6164*4882a593Smuzhiyun has equivalent effect for XEN platform. 6165*4882a593Smuzhiyun 6166*4882a593Smuzhiyun xen_nopv [X86] 6167*4882a593Smuzhiyun Disables the PV optimizations forcing the HVM guest to 6168*4882a593Smuzhiyun run as generic HVM guest with no PV drivers. 6169*4882a593Smuzhiyun This option is obsoleted by the "nopv" option, which 6170*4882a593Smuzhiyun has equivalent effect for XEN platform. 6171*4882a593Smuzhiyun 6172*4882a593Smuzhiyun xen_no_vector_callback 6173*4882a593Smuzhiyun [KNL,X86,XEN] Disable the vector callback for Xen 6174*4882a593Smuzhiyun event channel interrupts. 6175*4882a593Smuzhiyun 6176*4882a593Smuzhiyun xen_scrub_pages= [XEN] 6177*4882a593Smuzhiyun Boolean option to control scrubbing pages before giving them back 6178*4882a593Smuzhiyun to Xen, for use by other domains. Can be also changed at runtime 6179*4882a593Smuzhiyun with /sys/devices/system/xen_memory/xen_memory0/scrub_pages. 6180*4882a593Smuzhiyun Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT. 6181*4882a593Smuzhiyun 6182*4882a593Smuzhiyun xen_timer_slop= [X86-64,XEN] 6183*4882a593Smuzhiyun Set the timer slop (in nanoseconds) for the virtual Xen 6184*4882a593Smuzhiyun timers (default is 100000). This adjusts the minimum 6185*4882a593Smuzhiyun delta of virtualized Xen timers, where lower values 6186*4882a593Smuzhiyun improve timer resolution at the expense of processing 6187*4882a593Smuzhiyun more timer interrupts. 6188*4882a593Smuzhiyun 6189*4882a593Smuzhiyun xen.balloon_boot_timeout= [XEN] 6190*4882a593Smuzhiyun The time (in seconds) to wait before giving up to boot 6191*4882a593Smuzhiyun in case initial ballooning fails to free enough memory. 6192*4882a593Smuzhiyun Applies only when running as HVM or PVH guest and 6193*4882a593Smuzhiyun started with less memory configured than allowed at 6194*4882a593Smuzhiyun max. Default is 180. 6195*4882a593Smuzhiyun 6196*4882a593Smuzhiyun xen.event_eoi_delay= [XEN] 6197*4882a593Smuzhiyun How long to delay EOI handling in case of event 6198*4882a593Smuzhiyun storms (jiffies). Default is 10. 6199*4882a593Smuzhiyun 6200*4882a593Smuzhiyun xen.event_loop_timeout= [XEN] 6201*4882a593Smuzhiyun After which time (jiffies) the event handling loop 6202*4882a593Smuzhiyun should start to delay EOI handling. Default is 2. 6203*4882a593Smuzhiyun 6204*4882a593Smuzhiyun xen.fifo_events= [XEN] 6205*4882a593Smuzhiyun Boolean parameter to disable using fifo event handling 6206*4882a593Smuzhiyun even if available. Normally fifo event handling is 6207*4882a593Smuzhiyun preferred over the 2-level event handling, as it is 6208*4882a593Smuzhiyun fairer and the number of possible event channels is 6209*4882a593Smuzhiyun much higher. Default is on (use fifo events). 6210*4882a593Smuzhiyun 6211*4882a593Smuzhiyun nopv= [X86,XEN,KVM,HYPER_V,VMWARE] 6212*4882a593Smuzhiyun Disables the PV optimizations forcing the guest to run 6213*4882a593Smuzhiyun as generic guest with no PV drivers. Currently support 6214*4882a593Smuzhiyun XEN HVM, KVM, HYPER_V and VMWARE guest. 6215*4882a593Smuzhiyun 6216*4882a593Smuzhiyun nopvspin [X86,XEN,KVM] 6217*4882a593Smuzhiyun Disables the qspinlock slow path using PV optimizations 6218*4882a593Smuzhiyun which allow the hypervisor to 'idle' the guest on lock 6219*4882a593Smuzhiyun contention. 6220*4882a593Smuzhiyun 6221*4882a593Smuzhiyun xirc2ps_cs= [NET,PCMCIA] 6222*4882a593Smuzhiyun Format: 6223*4882a593Smuzhiyun <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] 6224*4882a593Smuzhiyun 6225*4882a593Smuzhiyun xive= [PPC] 6226*4882a593Smuzhiyun By default on POWER9 and above, the kernel will 6227*4882a593Smuzhiyun natively use the XIVE interrupt controller. This option 6228*4882a593Smuzhiyun allows the fallback firmware mode to be used: 6229*4882a593Smuzhiyun 6230*4882a593Smuzhiyun off Fallback to firmware control of XIVE interrupt 6231*4882a593Smuzhiyun controller on both pseries and powernv 6232*4882a593Smuzhiyun platforms. Only useful on POWER9 and above. 6233*4882a593Smuzhiyun 6234*4882a593Smuzhiyun xhci-hcd.quirks [USB,KNL] 6235*4882a593Smuzhiyun A hex value specifying bitmask with supplemental xhci 6236*4882a593Smuzhiyun host controller quirks. Meaning of each bit can be 6237*4882a593Smuzhiyun consulted in header drivers/usb/host/xhci.h. 6238*4882a593Smuzhiyun 6239*4882a593Smuzhiyun xmon [PPC] 6240*4882a593Smuzhiyun Format: { early | on | rw | ro | off } 6241*4882a593Smuzhiyun Controls if xmon debugger is enabled. Default is off. 6242*4882a593Smuzhiyun Passing only "xmon" is equivalent to "xmon=early". 6243*4882a593Smuzhiyun early Call xmon as early as possible on boot; xmon 6244*4882a593Smuzhiyun debugger is called from setup_arch(). 6245*4882a593Smuzhiyun on xmon debugger hooks will be installed so xmon 6246*4882a593Smuzhiyun is only called on a kernel crash. Default mode, 6247*4882a593Smuzhiyun i.e. either "ro" or "rw" mode, is controlled 6248*4882a593Smuzhiyun with CONFIG_XMON_DEFAULT_RO_MODE. 6249*4882a593Smuzhiyun rw xmon debugger hooks will be installed so xmon 6250*4882a593Smuzhiyun is called only on a kernel crash, mode is write, 6251*4882a593Smuzhiyun meaning SPR registers, memory and, other data 6252*4882a593Smuzhiyun can be written using xmon commands. 6253*4882a593Smuzhiyun ro same as "rw" option above but SPR registers, 6254*4882a593Smuzhiyun memory, and other data can't be written using 6255*4882a593Smuzhiyun xmon commands. 6256*4882a593Smuzhiyun off xmon is disabled. 6257