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