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