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