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