blob: 2345f8aad355dd800a724d140c64a255940c8736 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001Documentation for /proc/sys/kernel/* kernel version 2.2.10
2 (c) 1998, 1999, Rik van Riel <riel@nl.linux.org>
Shen Feng760df932009-04-02 16:57:20 -07003 (c) 2009, Shen Feng<shen@cn.fujitsu.com>
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
5For general info and legal blurb, please look in README.
6
7==============================================================
8
9This file contains documentation for the sysctl files in
10/proc/sys/kernel/ and is valid for Linux kernel version 2.2.
11
12The files in this directory can be used to tune and monitor
13miscellaneous and general things in the operation of the Linux
14kernel. Since some of the files _can_ be used to screw up your
15system, it is advisable to read both documentation and source
16before actually making adjustments.
17
18Currently, these files might (depending on your configuration)
19show up in /proc/sys/kernel:
Borislav Petkov807094c2011-07-23 10:39:29 -070020
Linus Torvalds1da177e2005-04-16 15:20:36 -070021- acct
Borislav Petkov807094c2011-07-23 10:39:29 -070022- acpi_video_flags
23- auto_msgmni
H. Peter Anvind75757a2009-12-11 14:23:44 -080024- bootloader_type [ X86 only ]
25- bootloader_version [ X86 only ]
David Collinsde98b0a2014-01-10 14:11:24 -080026- boot_reason [ ARM and ARM64 only ]
Hans-Joachim Pichtc114728a2009-09-11 10:28:47 +020027- callhome [ S390 only ]
Dan Ballard73efc032011-10-31 17:11:20 -070028- cap_last_cap
David Collinsde98b0a2014-01-10 14:11:24 -080029- cold_boot [ ARM and ARM64 only ]
Linus Torvalds1da177e2005-04-16 15:20:36 -070030- core_pattern
Neil Hormana2939802009-09-23 15:56:56 -070031- core_pipe_limit
Linus Torvalds1da177e2005-04-16 15:20:36 -070032- core_uses_pid
33- ctrl-alt-del
Dan Rosenbergeaf06b22010-11-11 14:05:18 -080034- dmesg_restrict
Linus Torvalds1da177e2005-04-16 15:20:36 -070035- domainname
36- hostname
37- hotplug
Jiri Kosina55537872015-11-05 18:44:41 -080038- hardlockup_all_cpu_backtrace
Scott Woodd22881d2017-12-10 01:48:46 -060039- hardlockup_panic
Aaron Tomlin270750db2014-01-20 17:34:13 +000040- hung_task_panic
41- hung_task_check_count
42- hung_task_timeout_secs
Dmitry Vyukova2e51442018-08-21 21:55:52 -070043- hung_task_check_interval_secs
Aaron Tomlin270750db2014-01-20 17:34:13 +000044- hung_task_warnings
Sunil Muthuswamy81b18bc2018-07-08 02:56:51 +000045- hyperv_record_panic_msg
Kees Cook79847542014-01-23 15:55:59 -080046- kexec_load_disabled
Dan Rosenberg455cd5a2011-01-12 16:59:41 -080047- kptr_restrict
Linus Torvalds1da177e2005-04-16 15:20:36 -070048- l2cr [ PPC only ]
Michael Opdenackerac76cff2008-02-13 15:03:32 -080049- modprobe ==> Documentation/debugging-modules.txt
Kees Cook3d433212009-04-02 15:49:29 -070050- modules_disabled
Stanislav Kinsbursky03f59562013-01-04 15:34:50 -080051- msg_next_id [ sysv ipc ]
Linus Torvalds1da177e2005-04-16 15:20:36 -070052- msgmax
53- msgmnb
54- msgmni
Shen Feng760df932009-04-02 16:57:20 -070055- nmi_watchdog
Linus Torvalds1da177e2005-04-16 15:20:36 -070056- osrelease
57- ostype
58- overflowgid
59- overflowuid
60- panic
Borislav Petkov807094c2011-07-23 10:39:29 -070061- panic_on_oops
Mitsuo Hayasaka55af7792011-11-29 15:08:36 +090062- panic_on_stackoverflow
Prarit Bhargava9e3961a2014-12-10 15:45:50 -080063- panic_on_unrecovered_nmi
64- panic_on_warn
Daniel Bristot de Oliveira088e9d22016-06-02 13:51:41 -030065- panic_on_rcu_stall
Ben Hutchings3379e0c2016-01-19 21:35:15 +000066- perf_cpu_time_max_percent
67- perf_event_paranoid
Arnaldo Carvalho de Meloc5dfd782016-04-21 12:28:50 -030068- perf_event_max_stack
Konstantin Khlebnikovac0bb6b2017-08-20 14:39:20 +030069- perf_event_mlock_kb
Arnaldo Carvalho de Meloc85b0332016-05-12 13:06:21 -030070- perf_event_max_contexts_per_stack
Linus Torvalds1da177e2005-04-16 15:20:36 -070071- pid_max
72- powersave-nap [ PPC only ]
73- printk
Borislav Petkov807094c2011-07-23 10:39:29 -070074- printk_delay
75- printk_ratelimit
76- printk_ratelimit_burst
Konstantin Khlebnikov8b253b02016-02-21 10:06:14 +030077- pty ==> Documentation/filesystems/devpts.txt
Jiri Kosina1ec7fd52008-02-09 23:24:08 +010078- randomize_va_space
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -020079- real-root-dev ==> Documentation/admin-guide/initrd.rst
Linus Torvalds1da177e2005-04-16 15:20:36 -070080- reboot-cmd [ SPARC only ]
81- rtsig-max
82- rtsig-nr
Quentin Perret2a557de2018-12-03 09:56:23 +000083- sched_energy_aware
Tyler Hicks8e5f1ad2017-08-11 04:33:52 +000084- seccomp/ ==> Documentation/userspace-api/seccomp_filter.rst
Linus Torvalds1da177e2005-04-16 15:20:36 -070085- sem
Stanislav Kinsbursky03f59562013-01-04 15:34:50 -080086- sem_next_id [ sysv ipc ]
Linus Torvalds1da177e2005-04-16 15:20:36 -070087- sg-big-buff [ generic SCSI device (sg) ]
Stanislav Kinsbursky03f59562013-01-04 15:34:50 -080088- shm_next_id [ sysv ipc ]
Vasiliy Kulikovb34a6b12011-07-26 16:08:48 -070089- shm_rmid_forced
Linus Torvalds1da177e2005-04-16 15:20:36 -070090- shmall
91- shmmax [ sysv ipc ]
92- shmmni
Aaron Tomlined235872014-06-23 13:22:05 -070093- softlockup_all_cpu_backtrace
Ulrich Obergfell195daf62015-04-14 15:44:13 -070094- soft_watchdog
Linus Torvalds1da177e2005-04-16 15:20:36 -070095- stop-a [ SPARC only ]
Krzysztof Kozlowskid3c1a2972017-02-24 10:42:14 +020096- sysrq ==> Documentation/admin-guide/sysrq.rst
Kees Cookf4aacea2014-06-06 14:37:19 -070097- sysctl_writes_strict
Linus Torvalds1da177e2005-04-16 15:20:36 -070098- tainted
99- threads-max
Shen Feng760df932009-04-02 16:57:20 -0700100- unknown_nmi_panic
Ulrich Obergfell195daf62015-04-14 15:44:13 -0700101- watchdog
Li Zefan08825c92013-05-17 10:31:20 +0800102- watchdog_thresh
Linus Torvalds1da177e2005-04-16 15:20:36 -0700103- version
104
105==============================================================
106
107acct:
108
109highwater lowwater frequency
110
111If BSD-style process accounting is enabled these values control
112its behaviour. If free space on filesystem where the log lives
113goes below <lowwater>% accounting suspends. If free space gets
114above <highwater>% accounting resumes. <Frequency> determines
115how often do we check the amount of free space (value is in
116seconds). Default:
1174 2 30
118That is, suspend accounting if there left <= 2% free; resume it
119if we got >=4%; consider information about amount of free space
120valid for 30 seconds.
121
122==============================================================
123
Borislav Petkov807094c2011-07-23 10:39:29 -0700124acpi_video_flags:
125
126flags
127
128See Doc*/kernel/power/video.txt, it allows mode of video boot to be
129set during run time.
130
131==============================================================
132
133auto_msgmni:
134
Manfred Spraul0050ee02014-12-12 16:58:17 -0800135This variable has no effect and may be removed in future kernel
136releases. Reading it always returns 0.
137Up to Linux 3.17, it enabled/disabled automatic recomputing of msgmni
138upon memory add/remove or upon ipc namespace creation/removal.
139Echoing "1" into this file enabled msgmni automatic recomputing.
140Echoing "0" turned it off. auto_msgmni default value was 1.
Borislav Petkov807094c2011-07-23 10:39:29 -0700141
142
143==============================================================
144
H. Peter Anvind75757a2009-12-11 14:23:44 -0800145bootloader_type:
146
147x86 bootloader identification
148
149This gives the bootloader type number as indicated by the bootloader,
150shifted left by 4, and OR'd with the low four bits of the bootloader
151version. The reason for this encoding is that this used to match the
152type_of_loader field in the kernel header; the encoding is kept for
153backwards compatibility. That is, if the full bootloader type number
154is 0x15 and the full version number is 0x234, this file will contain
155the value 340 = 0x154.
156
157See the type_of_loader and ext_loader_type fields in
158Documentation/x86/boot.txt for additional information.
159
160==============================================================
161
162bootloader_version:
163
164x86 bootloader version
165
166The complete bootloader version number. In the example above, this
167file will contain the value 564 = 0x234.
168
169See the type_of_loader and ext_loader_ver fields in
170Documentation/x86/boot.txt for additional information.
171
172==============================================================
173
Rick Adamsf699c922010-09-28 10:21:07 -0700174boot_reason:
175
David Collinsde98b0a2014-01-10 14:11:24 -0800176ARM and ARM64 -- reason for device boot
Rick Adamsf699c922010-09-28 10:21:07 -0700177
178A single bit will be set in the unsigned integer value to identify the
179reason the device was booted / powered on. The value will be zero if this
180feature is not supported on the ARM device being booted.
181
182See the power-on-status field definitions in
183Documentation/arm/msm/boot.txt for Qualcomm Technologies, Inc. family of
184devices.
185
186==============================================================
187
Hans-Joachim Pichtc114728a2009-09-11 10:28:47 +0200188callhome:
189
190Controls the kernel's callhome behavior in case of a kernel panic.
191
192The s390 hardware allows an operating system to send a notification
193to a service organization (callhome) in case of an operating system panic.
194
195When the value in this file is 0 (which is the default behavior)
196nothing happens in case of a kernel panic. If this value is set to "1"
197the complete kernel oops message is send to the IBM customer service
198organization in case the mainframe the Linux operating system is running
199on has a service contract with IBM.
200
201==============================================================
202
Dan Ballard73efc032011-10-31 17:11:20 -0700203cap_last_cap
204
205Highest valid capability of the running kernel. Exports
206CAP_LAST_CAP from the kernel.
207
David Keitelee676502013-03-26 18:50:03 -0700208===============================================================
209
210cold_boot
211
David Collinsde98b0a2014-01-10 14:11:24 -0800212ARM and ARM64 -- indicator for system cold boot
David Keitelee676502013-03-26 18:50:03 -0700213
214A single bit will be set in the unsigned integer value to identify
215whether the device was booted from a cold or warm state. Zero
216indicating a warm boot and one indicating a cold boot.
217
Dan Ballard73efc032011-10-31 17:11:20 -0700218==============================================================
219
Linus Torvalds1da177e2005-04-16 15:20:36 -0700220core_pattern:
221
222core_pattern is used to specify a core dumpfile pattern name.
Matthias Urlichscd081042006-10-11 01:21:57 -0700223. max length 128 characters; default value is "core"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700224. core_pattern is used as a pattern template for the output filename;
225 certain string patterns (beginning with '%') are substituted with
226 their actual values.
227. backward compatibility with core_uses_pid:
228 If core_pattern does not include "%p" (default does not)
229 and core_uses_pid is set, then .PID will be appended to
230 the filename.
231. corename format specifiers:
232 %<NUL> '%' is dropped
233 %% output one '%'
234 %p pid
Stéphane Graber65aafb12013-09-11 14:24:32 -0700235 %P global pid (init PID namespace)
Oleg Nesterovb03023e2014-10-13 15:53:35 -0700236 %i tid
237 %I global tid (init PID namespace)
Nicolas Iooss5202efe2015-06-25 15:03:51 -0700238 %u uid (in initial user namespace)
239 %g gid (in initial user namespace)
Oleg Nesterov12a2b4b2012-10-04 17:15:25 -0700240 %d dump mode, matches PR_SET_DUMPABLE and
241 /proc/sys/fs/suid_dumpable
Linus Torvalds1da177e2005-04-16 15:20:36 -0700242 %s signal number
243 %t UNIX time of dump
244 %h hostname
Jiri Slaby57cc0832011-05-26 16:25:46 -0700245 %e executable filename (may be shortened)
246 %E executable path
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247 %<OTHER> both are dropped
Matthias Urlichscd081042006-10-11 01:21:57 -0700248. If the first character of the pattern is a '|', the kernel will treat
249 the rest of the pattern as a command to run. The core dump will be
250 written to the standard input of that program instead of to a file.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251
252==============================================================
253
Neil Hormana2939802009-09-23 15:56:56 -0700254core_pipe_limit:
255
Borislav Petkov807094c2011-07-23 10:39:29 -0700256This sysctl is only applicable when core_pattern is configured to pipe
257core files to a user space helper (when the first character of
258core_pattern is a '|', see above). When collecting cores via a pipe
259to an application, it is occasionally useful for the collecting
260application to gather data about the crashing process from its
261/proc/pid directory. In order to do this safely, the kernel must wait
262for the collecting process to exit, so as not to remove the crashing
263processes proc files prematurely. This in turn creates the
264possibility that a misbehaving userspace collecting process can block
265the reaping of a crashed process simply by never exiting. This sysctl
266defends against that. It defines how many concurrent crashing
267processes may be piped to user space applications in parallel. If
268this value is exceeded, then those crashing processes above that value
269are noted via the kernel log and their cores are skipped. 0 is a
270special value, indicating that unlimited processes may be captured in
271parallel, but that no waiting will take place (i.e. the collecting
272process is not guaranteed access to /proc/<crashing pid>/). This
273value defaults to 0.
Neil Hormana2939802009-09-23 15:56:56 -0700274
275==============================================================
276
Linus Torvalds1da177e2005-04-16 15:20:36 -0700277core_uses_pid:
278
279The default coredump filename is "core". By setting
280core_uses_pid to 1, the coredump filename becomes core.PID.
281If core_pattern does not include "%p" (default does not)
282and core_uses_pid is set, then .PID will be appended to
283the filename.
284
285==============================================================
286
287ctrl-alt-del:
288
289When the value in this file is 0, ctrl-alt-del is trapped and
290sent to the init(1) program to handle a graceful restart.
291When, however, the value is > 0, Linux's reaction to a Vulcan
292Nerve Pinch (tm) will be an immediate reboot, without even
293syncing its dirty buffers.
294
295Note: when a program (like dosemu) has the keyboard in 'raw'
296mode, the ctrl-alt-del is intercepted by the program before it
297ever reaches the kernel tty layer, and it's up to the program
298to decide what to do with it.
299
300==============================================================
301
Dan Rosenbergeaf06b22010-11-11 14:05:18 -0800302dmesg_restrict:
303
Borislav Petkov807094c2011-07-23 10:39:29 -0700304This toggle indicates whether unprivileged users are prevented
305from using dmesg(8) to view messages from the kernel's log buffer.
306When dmesg_restrict is set to (0) there are no restrictions. When
Serge E. Hallyn38ef4c22010-12-08 15:19:01 +0000307dmesg_restrict is set set to (1), users must have CAP_SYSLOG to use
Dan Rosenbergeaf06b22010-11-11 14:05:18 -0800308dmesg(8).
309
Borislav Petkov807094c2011-07-23 10:39:29 -0700310The kernel config option CONFIG_SECURITY_DMESG_RESTRICT sets the
311default value of dmesg_restrict.
Dan Rosenbergeaf06b22010-11-11 14:05:18 -0800312
313==============================================================
314
Linus Torvalds1da177e2005-04-16 15:20:36 -0700315domainname & hostname:
316
317These files can be used to set the NIS/YP domainname and the
318hostname of your box in exactly the same way as the commands
319domainname and hostname, i.e.:
320# echo "darkstar" > /proc/sys/kernel/hostname
321# echo "mydomain" > /proc/sys/kernel/domainname
322has the same effect as
323# hostname "darkstar"
324# domainname "mydomain"
325
326Note, however, that the classic darkstar.frop.org has the
327hostname "darkstar" and DNS (Internet Domain Name Server)
328domainname "frop.org", not to be confused with the NIS (Network
329Information Service) or YP (Yellow Pages) domainname. These two
330domain names are in general different. For a detailed discussion
331see the hostname(1) man page.
332
333==============================================================
Jiri Kosina55537872015-11-05 18:44:41 -0800334hardlockup_all_cpu_backtrace:
335
336This value controls the hard lockup detector behavior when a hard
337lockup condition is detected as to whether or not to gather further
338debug information. If enabled, arch-specific all-CPU stack dumping
339will be initiated.
340
3410: do nothing. This is the default behavior.
342
3431: on detection capture more debug information.
344==============================================================
Linus Torvalds1da177e2005-04-16 15:20:36 -0700345
Scott Woodd22881d2017-12-10 01:48:46 -0600346hardlockup_panic:
347
348This parameter can be used to control whether the kernel panics
349when a hard lockup is detected.
350
351 0 - don't panic on hard lockup
352 1 - panic on hard lockup
353
354See Documentation/lockup-watchdogs.txt for more information. This can
355also be set using the nmi_watchdog kernel parameter.
356
357==============================================================
358
Linus Torvalds1da177e2005-04-16 15:20:36 -0700359hotplug:
360
361Path for the hotplug policy agent.
362Default value is "/sbin/hotplug".
363
364==============================================================
365
Aaron Tomlin270750db2014-01-20 17:34:13 +0000366hung_task_panic:
367
368Controls the kernel's behavior when a hung task is detected.
369This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
370
3710: continue operation. This is the default behavior.
372
3731: panic immediately.
374
375==============================================================
376
377hung_task_check_count:
378
379The upper bound on the number of tasks that are checked.
380This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
381
382==============================================================
383
384hung_task_timeout_secs:
385
Dmitry Vyukova2e51442018-08-21 21:55:52 -0700386When a task in D state did not get scheduled
Aaron Tomlin270750db2014-01-20 17:34:13 +0000387for more than this value report a warning.
388This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
389
3900: means infinite timeout - no checking done.
Liu Hua80df2842014-04-07 15:38:57 -0700391Possible values to set are in range {0..LONG_MAX/HZ}.
Aaron Tomlin270750db2014-01-20 17:34:13 +0000392
393==============================================================
394
Dmitry Vyukova2e51442018-08-21 21:55:52 -0700395hung_task_check_interval_secs:
396
397Hung task check interval. If hung task checking is enabled
398(see hung_task_timeout_secs), the check is done every
399hung_task_check_interval_secs seconds.
400This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
401
4020 (default): means use hung_task_timeout_secs as checking interval.
403Possible values to set are in range {0..LONG_MAX/HZ}.
404
405==============================================================
406
Aaron Tomlin70e0ac52014-01-27 09:00:57 +0000407hung_task_warnings:
Aaron Tomlin270750db2014-01-20 17:34:13 +0000408
409The maximum number of warnings to report. During a check interval
Aaron Tomlin70e0ac52014-01-27 09:00:57 +0000410if a hung task is detected, this value is decreased by 1.
411When this value reaches 0, no more warnings will be reported.
Aaron Tomlin270750db2014-01-20 17:34:13 +0000412This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
413
414-1: report an infinite number of warnings.
415
416==============================================================
417
Sunil Muthuswamy81b18bc2018-07-08 02:56:51 +0000418hyperv_record_panic_msg:
419
420Controls whether the panic kmsg data should be reported to Hyper-V.
421
4220: do not report panic kmsg data.
423
4241: report the panic kmsg data. This is the default behavior.
425
426==============================================================
427
Kees Cook79847542014-01-23 15:55:59 -0800428kexec_load_disabled:
429
430A toggle indicating if the kexec_load syscall has been disabled. This
431value defaults to 0 (false: kexec_load enabled), but can be set to 1
432(true: kexec_load disabled). Once true, kexec can no longer be used, and
433the toggle cannot be set back to false. This allows a kexec image to be
434loaded before disabling the syscall, allowing a system to set up (and
435later use) an image without it being altered. Generally used together
436with the "modules_disabled" sysctl.
437
438==============================================================
439
Dan Rosenberg455cd5a2011-01-12 16:59:41 -0800440kptr_restrict:
441
442This toggle indicates whether restrictions are placed on
Ryan Mallon312b4e22013-11-12 15:08:51 -0800443exposing kernel addresses via /proc and other interfaces.
444
Tobin C. Hardingda271402017-12-20 08:17:16 +1100445When kptr_restrict is set to 0 (the default) the address is hashed before
446printing. (This is the equivalent to %p.)
Ryan Mallon312b4e22013-11-12 15:08:51 -0800447
448When kptr_restrict is set to (1), kernel pointers printed using the %pK
449format specifier will be replaced with 0's unless the user has CAP_SYSLOG
450and effective user and group ids are equal to the real ids. This is
451because %pK checks are done at read() time rather than open() time, so
452if permissions are elevated between the open() and the read() (e.g via
453a setuid binary) then %pK will not leak kernel pointers to unprivileged
454users. Note, this is a temporary solution only. The correct long-term
455solution is to do the permission checks at open() time. Consider removing
456world read permissions from files that use %pK, and using dmesg_restrict
457to protect against uses of %pK in dmesg(8) if leaking kernel pointer
458values to unprivileged users is a concern.
459
460When kptr_restrict is set to (2), kernel pointers printed using
461%pK will be replaced with 0's regardless of privileges.
Dan Rosenberg455cd5a2011-01-12 16:59:41 -0800462
463==============================================================
464
Borislav Petkov807094c2011-07-23 10:39:29 -0700465l2cr: (PPC only)
466
467This flag controls the L2 cache of G3 processor boards. If
4680, the cache is disabled. Enabled if nonzero.
469
470==============================================================
471
Kees Cook3d433212009-04-02 15:49:29 -0700472modules_disabled:
473
474A toggle value indicating if modules are allowed to be loaded
475in an otherwise modular kernel. This toggle defaults to off
476(0), but can be set true (1). Once true, modules can be
477neither loaded nor unloaded, and the toggle cannot be set back
Kees Cook79847542014-01-23 15:55:59 -0800478to false. Generally used with the "kexec_load_disabled" toggle.
Kees Cook3d433212009-04-02 15:49:29 -0700479
480==============================================================
481
Stanislav Kinsbursky03f59562013-01-04 15:34:50 -0800482msg_next_id, sem_next_id, and shm_next_id:
483
484These three toggles allows to specify desired id for next allocated IPC
485object: message, semaphore or shared memory respectively.
486
487By default they are equal to -1, which means generic allocation logic.
488Possible values to set are in range {0..INT_MAX}.
489
490Notes:
4911) kernel doesn't guarantee, that new object will have desired id. So,
492it's up to userspace, how to handle an object with "wrong" id.
4932) Toggle with non-default value will be set back to -1 by kernel after
Manfred Spraule2652ae2018-08-21 22:01:25 -0700494successful IPC object allocation. If an IPC object allocation syscall
495fails, it is undefined if the value remains unmodified or is reset to -1.
Stanislav Kinsbursky03f59562013-01-04 15:34:50 -0800496
497==============================================================
498
Borislav Petkov807094c2011-07-23 10:39:29 -0700499nmi_watchdog:
500
Ulrich Obergfell195daf62015-04-14 15:44:13 -0700501This parameter can be used to control the NMI watchdog
502(i.e. the hard lockup detector) on x86 systems.
Borislav Petkov807094c2011-07-23 10:39:29 -0700503
Ulrich Obergfell195daf62015-04-14 15:44:13 -0700504 0 - disable the hard lockup detector
505 1 - enable the hard lockup detector
506
507The hard lockup detector monitors each CPU for its ability to respond to
508timer interrupts. The mechanism utilizes CPU performance counter registers
509that are programmed to generate Non-Maskable Interrupts (NMIs) periodically
510while a CPU is busy. Hence, the alternative name 'NMI watchdog'.
511
512The NMI watchdog is disabled by default if the kernel is running as a guest
513in a KVM virtual machine. This default can be overridden by adding
514
515 nmi_watchdog=1
516
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -0200517to the guest kernel command line (see Documentation/admin-guide/kernel-parameters.rst).
Borislav Petkov807094c2011-07-23 10:39:29 -0700518
519==============================================================
520
Mel Gorman10fc05d2013-10-07 11:28:40 +0100521numa_balancing
522
523Enables/disables automatic page fault based NUMA memory
524balancing. Memory is moved automatically to nodes
525that access it often.
526
527Enables/disables automatic NUMA memory balancing. On NUMA machines, there
528is a performance penalty if remote memory is accessed by a CPU. When this
529feature is enabled the kernel samples what task thread is accessing memory
530by periodically unmapping pages and later trapping a page fault. At the
531time of the page fault, it is determined if the data being accessed should
532be migrated to a local memory node.
533
534The unmapping of pages and trapping faults incur additional overhead that
535ideally is offset by improved memory locality but there is no universal
536guarantee. If the target workload is already bound to NUMA nodes then this
537feature should be disabled. Otherwise, if the system overhead from the
538feature is too high then the rate the kernel samples for NUMA hinting
539faults may be controlled by the numa_balancing_scan_period_min_ms,
Mel Gorman930aa172013-10-07 11:29:37 +0100540numa_balancing_scan_delay_ms, numa_balancing_scan_period_max_ms,
Rik van Riel52bf84a2014-01-27 17:03:40 -0500541numa_balancing_scan_size_mb, and numa_balancing_settle_count sysctls.
Mel Gorman10fc05d2013-10-07 11:28:40 +0100542
543==============================================================
544
545numa_balancing_scan_period_min_ms, numa_balancing_scan_delay_ms,
Mel Gorman930aa172013-10-07 11:29:37 +0100546numa_balancing_scan_period_max_ms, numa_balancing_scan_size_mb
Mel Gorman10fc05d2013-10-07 11:28:40 +0100547
548Automatic NUMA balancing scans tasks address space and unmaps pages to
549detect if pages are properly placed or if the data should be migrated to a
550memory node local to where the task is running. Every "scan delay" the task
551scans the next "scan size" number of pages in its address space. When the
552end of the address space is reached the scanner restarts from the beginning.
553
554In combination, the "scan delay" and "scan size" determine the scan rate.
555When "scan delay" decreases, the scan rate increases. The scan delay and
556hence the scan rate of every task is adaptive and depends on historical
557behaviour. If pages are properly placed then the scan delay increases,
558otherwise the scan delay decreases. The "scan size" is not adaptive but
559the higher the "scan size", the higher the scan rate.
560
561Higher scan rates incur higher system overhead as page faults must be
562trapped and potentially data must be migrated. However, the higher the scan
563rate, the more quickly a tasks memory is migrated to a local node if the
564workload pattern changes and minimises performance impact due to remote
565memory accesses. These sysctls control the thresholds for scan delays and
566the number of pages scanned.
567
Mel Gorman598f0ec2013-10-07 11:28:55 +0100568numa_balancing_scan_period_min_ms is the minimum time in milliseconds to
569scan a tasks virtual memory. It effectively controls the maximum scanning
570rate for each task.
Mel Gorman10fc05d2013-10-07 11:28:40 +0100571
572numa_balancing_scan_delay_ms is the starting "scan delay" used for a task
573when it initially forks.
574
Mel Gorman598f0ec2013-10-07 11:28:55 +0100575numa_balancing_scan_period_max_ms is the maximum time in milliseconds to
576scan a tasks virtual memory. It effectively controls the minimum scanning
577rate for each task.
Mel Gorman10fc05d2013-10-07 11:28:40 +0100578
579numa_balancing_scan_size_mb is how many megabytes worth of pages are
580scanned for a given scan.
581
Mel Gorman10fc05d2013-10-07 11:28:40 +0100582==============================================================
583
Linus Torvalds1da177e2005-04-16 15:20:36 -0700584osrelease, ostype & version:
585
586# cat osrelease
5872.1.88
588# cat ostype
589Linux
590# cat version
591#5 Wed Feb 25 21:49:24 MET 1998
592
593The files osrelease and ostype should be clear enough. Version
594needs a little more clarification however. The '#5' means that
595this is the fifth kernel built from this source base and the
596date behind it indicates the time the kernel was built.
597The only way to tune these values is to rebuild the kernel :-)
598
599==============================================================
600
601overflowgid & overflowuid:
602
Borislav Petkov807094c2011-07-23 10:39:29 -0700603if your architecture did not always support 32-bit UIDs (i.e. arm,
604i386, m68k, sh, and sparc32), a fixed UID and GID will be returned to
605applications that use the old 16-bit UID/GID system calls, if the
606actual UID or GID would exceed 65535.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700607
608These sysctls allow you to change the value of the fixed UID and GID.
609The default is 65534.
610
611==============================================================
612
613panic:
614
Borislav Petkov807094c2011-07-23 10:39:29 -0700615The value in this file represents the number of seconds the kernel
616waits before rebooting on a panic. When you use the software watchdog,
617the recommended setting is 60.
618
619==============================================================
620
Hidehiro Kawai9f318e32015-12-14 11:19:14 +0100621panic_on_io_nmi:
622
623Controls the kernel's behavior when a CPU receives an NMI caused by
624an IO error.
625
6260: try to continue operation (default)
627
6281: panic immediately. The IO error triggered an NMI. This indicates a
629 serious system condition which could result in IO data corruption.
630 Rather than continuing, panicking might be a better choice. Some
631 servers issue this sort of NMI when the dump button is pushed,
632 and you can use this option to take a crash dump.
633
634==============================================================
635
Linus Torvalds1da177e2005-04-16 15:20:36 -0700636panic_on_oops:
637
638Controls the kernel's behaviour when an oops or BUG is encountered.
639
6400: try to continue operation
641
Matt LaPlantea982ac02007-05-09 07:35:06 +02006421: panic immediately. If the `panic' sysctl is also non-zero then the
Maxime Bizon8b23d04d2006-08-05 12:14:32 -0700643 machine will be rebooted.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700644
645==============================================================
646
Mitsuo Hayasaka55af7792011-11-29 15:08:36 +0900647panic_on_stackoverflow:
648
649Controls the kernel's behavior when detecting the overflows of
650kernel, IRQ and exception stacks except a user stack.
651This file shows up if CONFIG_DEBUG_STACKOVERFLOW is enabled.
652
6530: try to continue operation.
654
6551: panic immediately.
656
657==============================================================
658
Prarit Bhargava9e3961a2014-12-10 15:45:50 -0800659panic_on_unrecovered_nmi:
660
661The default Linux behaviour on an NMI of either memory or unknown is
662to continue operation. For many environments such as scientific
663computing it is preferable that the box is taken out and the error
664dealt with than an uncorrected parity/ECC error get propagated.
665
666A small number of systems do generate NMI's for bizarre random reasons
667such as power management so the default is off. That sysctl works like
668the existing panic controls already in that directory.
669
670==============================================================
671
672panic_on_warn:
673
674Calls panic() in the WARN() path when set to 1. This is useful to avoid
675a kernel rebuild when attempting to kdump at the location of a WARN().
676
6770: only WARN(), default behaviour.
678
6791: call panic() after printing out WARN() location.
680
681==============================================================
682
Daniel Bristot de Oliveira088e9d22016-06-02 13:51:41 -0300683panic_on_rcu_stall:
684
685When set to 1, calls panic() after RCU stall detection messages. This
686is useful to define the root cause of RCU stalls using a vmcore.
687
6880: do not panic() when RCU stall takes place, default behavior.
689
6901: panic() after printing RCU stall messages.
691
692==============================================================
693
Dave Hansen14c63f12013-06-21 08:51:36 -0700694perf_cpu_time_max_percent:
695
696Hints to the kernel how much CPU time it should be allowed to
697use to handle perf sampling events. If the perf subsystem
698is informed that its samples are exceeding this limit, it
699will drop its sampling frequency to attempt to reduce its CPU
700usage.
701
702Some perf sampling happens in NMIs. If these samples
703unexpectedly take too long to execute, the NMIs can become
704stacked up next to each other so much that nothing else is
705allowed to execute.
706
7070: disable the mechanism. Do not monitor or correct perf's
708 sampling rate no matter how CPU time it takes.
709
7101-100: attempt to throttle perf's sample rate to this
711 percentage of CPU. Note: the kernel calculates an
712 "expected" length of each sample event. 100 here means
713 100% of that expected length. Even if this is set to
714 100, you may still see sample throttling if this
715 length is exceeded. Set to 0 if you truly do not care
716 how much CPU is consumed.
717
718==============================================================
719
Ben Hutchings3379e0c2016-01-19 21:35:15 +0000720perf_event_paranoid:
721
722Controls use of the performance events system by unprivileged
Jeff Vander Stoepa2f0b092020-01-23 09:51:14 +0100723users (without CAP_SYS_ADMIN). The default value is 2.
Ben Hutchings3379e0c2016-01-19 21:35:15 +0000724
725 -1: Allow use of (almost) all events by all users
Konstantin Khlebnikovac0bb6b2017-08-20 14:39:20 +0300726 Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
727>=0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN
728 Disallow raw tracepoint access by users without CAP_SYS_ADMIN
Ben Hutchings3379e0c2016-01-19 21:35:15 +0000729>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
730>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
731
732==============================================================
Mitsuo Hayasaka55af7792011-11-29 15:08:36 +0900733
Arnaldo Carvalho de Meloc5dfd782016-04-21 12:28:50 -0300734perf_event_max_stack:
735
736Controls maximum number of stack frames to copy for (attr.sample_type &
737PERF_SAMPLE_CALLCHAIN) configured events, for instance, when using
738'perf record -g' or 'perf trace --call-graph fp'.
739
740This can only be done when no events are in use that have callchains
741enabled, otherwise writing to this file will return -EBUSY.
742
743The default value is 127.
744
745==============================================================
746
Konstantin Khlebnikovac0bb6b2017-08-20 14:39:20 +0300747perf_event_mlock_kb:
748
749Control size of per-cpu ring buffer not counted agains mlock limit.
750
751The default value is 512 + 1 page
752
753==============================================================
754
Arnaldo Carvalho de Meloc85b0332016-05-12 13:06:21 -0300755perf_event_max_contexts_per_stack:
756
757Controls maximum number of stack frame context entries for
758(attr.sample_type & PERF_SAMPLE_CALLCHAIN) configured events, for
759instance, when using 'perf record -g' or 'perf trace --call-graph fp'.
760
761This can only be done when no events are in use that have callchains
762enabled, otherwise writing to this file will return -EBUSY.
763
764The default value is 8.
765
766==============================================================
767
Linus Torvalds1da177e2005-04-16 15:20:36 -0700768pid_max:
769
Robert P. J. Daybeb7dd82007-05-09 07:14:03 +0200770PID allocation wrap value. When the kernel's next PID value
Linus Torvalds1da177e2005-04-16 15:20:36 -0700771reaches this value, it wraps back to a minimum PID value.
772PIDs of value pid_max or larger are not allocated.
773
774==============================================================
775
Pavel Emelyanovb8f566b2012-01-12 17:20:27 -0800776ns_last_pid:
777
778The last pid allocated in the current (the one task using this sysctl
779lives in) pid namespace. When selecting a pid for a next task on fork
780kernel tries to allocate a number starting from this one.
781
782==============================================================
783
Linus Torvalds1da177e2005-04-16 15:20:36 -0700784powersave-nap: (PPC only)
785
786If set, Linux-PPC will use the 'nap' mode of powersaving,
787otherwise the 'doze' mode will be used.
788
789==============================================================
790
791printk:
792
793The four values in printk denote: console_loglevel,
794default_message_loglevel, minimum_console_loglevel and
795default_console_loglevel respectively.
796
797These values influence printk() behavior when printing or
798logging error messages. See 'man 2 syslog' for more info on
799the different loglevels.
800
801- console_loglevel: messages with a higher priority than
802 this will be printed to the console
Paul Bolle87889e12011-02-06 21:00:41 +0100803- default_message_loglevel: messages without an explicit priority
Linus Torvalds1da177e2005-04-16 15:20:36 -0700804 will be printed with this priority
805- minimum_console_loglevel: minimum (highest) value to which
806 console_loglevel can be set
807- default_console_loglevel: default value for console_loglevel
808
809==============================================================
810
Borislav Petkov807094c2011-07-23 10:39:29 -0700811printk_delay:
812
813Delay each printk message in printk_delay milliseconds
814
815Value from 0 - 10000 is allowed.
816
817==============================================================
818
Linus Torvalds1da177e2005-04-16 15:20:36 -0700819printk_ratelimit:
820
821Some warning messages are rate limited. printk_ratelimit specifies
822the minimum length of time between these messages (in jiffies), by
823default we allow one every 5 seconds.
824
825A value of 0 will disable rate limiting.
826
827==============================================================
828
829printk_ratelimit_burst:
830
831While long term we enforce one message per printk_ratelimit
832seconds, we do allow a burst of messages to pass through.
833printk_ratelimit_burst specifies the number of messages we can
834send before ratelimiting kicks in.
835
836==============================================================
837
Borislav Petkov750afe72016-08-02 14:04:07 -0700838printk_devkmsg:
839
840Control the logging to /dev/kmsg from userspace:
841
842ratelimit: default, ratelimited
843on: unlimited logging to /dev/kmsg from userspace
844off: logging to /dev/kmsg disabled
845
846The kernel command line parameter printk.devkmsg= overrides this and is
847a one-time setting until next reboot: once set, it cannot be changed by
848this sysctl interface anymore.
849
850==============================================================
851
Borislav Petkov807094c2011-07-23 10:39:29 -0700852randomize_va_space:
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100853
854This option can be used to select the type of process address
855space randomization that is used in the system, for architectures
856that support this feature.
857
Horst Schirmeierb7f5ab62009-07-03 14:20:17 +02008580 - Turn the process address space randomization off. This is the
859 default for architectures that do not support this feature anyways,
860 and kernels that are booted with the "norandmaps" parameter.
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100861
8621 - Make the addresses of mmap base, stack and VDSO page randomized.
863 This, among other things, implies that shared libraries will be
Horst Schirmeierb7f5ab62009-07-03 14:20:17 +0200864 loaded to random addresses. Also for PIE-linked binaries, the
865 location of code start is randomized. This is the default if the
866 CONFIG_COMPAT_BRK option is enabled.
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100867
Horst Schirmeierb7f5ab62009-07-03 14:20:17 +02008682 - Additionally enable heap randomization. This is the default if
869 CONFIG_COMPAT_BRK is disabled.
870
871 There are a few legacy applications out there (such as some ancient
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100872 versions of libc.so.5 from 1996) that assume that brk area starts
Horst Schirmeierb7f5ab62009-07-03 14:20:17 +0200873 just after the end of the code+bss. These applications break when
874 start of the brk area is randomized. There are however no known
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100875 non-legacy applications that would be broken this way, so for most
Horst Schirmeierb7f5ab62009-07-03 14:20:17 +0200876 systems it is safe to choose full randomization.
877
878 Systems with ancient and/or broken binaries should be configured
879 with CONFIG_COMPAT_BRK enabled, which excludes the heap from process
880 address space randomization.
Jiri Kosina1ec7fd52008-02-09 23:24:08 +0100881
882==============================================================
883
Linus Torvalds1da177e2005-04-16 15:20:36 -0700884reboot-cmd: (Sparc only)
885
886??? This seems to be a way to give an argument to the Sparc
887ROM/Flash boot loader. Maybe to tell it what to do after
888rebooting. ???
889
890==============================================================
891
892rtsig-max & rtsig-nr:
893
894The file rtsig-max can be used to tune the maximum number
895of POSIX realtime (queued) signals that can be outstanding
896in the system.
897
898rtsig-nr shows the number of RT signals currently queued.
899
900==============================================================
901
Quentin Perret2a557de2018-12-03 09:56:23 +0000902sched_energy_aware:
903
904Enables/disables Energy Aware Scheduling (EAS). EAS starts
905automatically on platforms where it can run (that is,
906platforms with asymmetric CPU topologies and having an Energy
907Model available). If your platform happens to meet the
908requirements for EAS but you do not want to use it, change
909this value to 0.
910
911==============================================================
912
Mel Gormancb251762016-02-05 09:08:36 +0000913sched_schedstats:
914
915Enables/disables scheduler statistics. Enabling this feature
916incurs a small amount of overhead in the scheduler but is
917useful for debugging and performance tuning.
918
919==============================================================
920
Linus Torvalds1da177e2005-04-16 15:20:36 -0700921sg-big-buff:
922
923This file shows the size of the generic SCSI (sg) buffer.
924You can't tune it just yet, but you could change it on
925compile time by editing include/scsi/sg.h and changing
926the value of SG_BIG_BUFF.
927
928There shouldn't be any reason to change this value. If
929you can come up with one, you probably know what you
930are doing anyway :)
931
932==============================================================
933
Carlos Alberto Lopez Perez358e4192013-01-04 15:35:05 -0800934shmall:
935
936This parameter sets the total amount of shared memory pages that
937can be used system wide. Hence, SHMALL should always be at least
938ceil(shmmax/PAGE_SIZE).
939
940If you are not sure what the default PAGE_SIZE is on your Linux
941system, you can run the following command:
942
943# getconf PAGE_SIZE
944
945==============================================================
946
Borislav Petkov807094c2011-07-23 10:39:29 -0700947shmmax:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700948
949This value can be used to query and set the run time limit
950on the maximum shared memory segment size that can be created.
Borislav Petkov807094c2011-07-23 10:39:29 -0700951Shared memory segments up to 1Gb are now supported in the
Linus Torvalds1da177e2005-04-16 15:20:36 -0700952kernel. This value defaults to SHMMAX.
953
954==============================================================
955
Vasiliy Kulikovb34a6b12011-07-26 16:08:48 -0700956shm_rmid_forced:
957
958Linux lets you set resource limits, including how much memory one
959process can consume, via setrlimit(2). Unfortunately, shared memory
960segments are allowed to exist without association with any process, and
961thus might not be counted against any resource limits. If enabled,
962shared memory segments are automatically destroyed when their attach
963count becomes zero after a detach or a process termination. It will
964also destroy segments that were created, but never attached to, on exit
965from the process. The only use left for IPC_RMID is to immediately
966destroy an unattached segment. Of course, this breaks the way things are
967defined, so some applications might stop working. Note that this
968feature will do you no good unless you also configure your resource
969limits (in particular, RLIMIT_AS and RLIMIT_NPROC). Most systems don't
970need this.
971
972Note that if you change this from 0 to 1, already created segments
973without users and with a dead originative process will be destroyed.
974
975==============================================================
976
Kees Cookf4aacea2014-06-06 14:37:19 -0700977sysctl_writes_strict:
978
979Control how file position affects the behavior of updating sysctl values
980via the /proc/sys interface:
981
982 -1 - Legacy per-write sysctl value handling, with no printk warnings.
983 Each write syscall must fully contain the sysctl value to be
984 written, and multiple writes on the same sysctl file descriptor
985 will rewrite the sysctl value, regardless of file position.
Kees Cook41662f52016-01-20 15:00:45 -0800986 0 - Same behavior as above, but warn about processes that perform writes
987 to a sysctl file descriptor when the file position is not 0.
988 1 - (default) Respect file position when writing sysctl strings. Multiple
989 writes will append to the sysctl value buffer. Anything past the max
990 length of the sysctl value buffer will be ignored. Writes to numeric
991 sysctl entries must always be at file position 0 and the value must
992 be fully contained in the buffer sent in the write syscall.
Kees Cookf4aacea2014-06-06 14:37:19 -0700993
994==============================================================
995
Aaron Tomlined235872014-06-23 13:22:05 -0700996softlockup_all_cpu_backtrace:
997
998This value controls the soft lockup detector thread's behavior
999when a soft lockup condition is detected as to whether or not
1000to gather further debug information. If enabled, each cpu will
1001be issued an NMI and instructed to capture stack trace.
1002
1003This feature is only applicable for architectures which support
1004NMI.
1005
10060: do nothing. This is the default behavior.
1007
10081: on detection capture more debug information.
1009
1010==============================================================
1011
Ulrich Obergfell195daf62015-04-14 15:44:13 -07001012soft_watchdog
1013
1014This parameter can be used to control the soft lockup detector.
1015
1016 0 - disable the soft lockup detector
1017 1 - enable the soft lockup detector
1018
1019The soft lockup detector monitors CPUs for threads that are hogging the CPUs
1020without rescheduling voluntarily, and thus prevent the 'watchdog/N' threads
1021from running. The mechanism depends on the CPUs ability to respond to timer
1022interrupts which are needed for the 'watchdog/N' threads to be woken up by
1023the watchdog timer function, otherwise the NMI watchdog - if enabled - can
1024detect a hard lockup condition.
1025
1026==============================================================
1027
Borislav Petkov807094c2011-07-23 10:39:29 -07001028tainted:
Linus Torvalds1da177e2005-04-16 15:20:36 -07001029
Kees Cook9c4560e2018-04-10 16:32:29 -07001030Non-zero if the kernel has been tainted. Numeric values, which can be
1031ORed together. The letters are seen in "Tainted" line of Oops reports.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001032
Kees Cook9c4560e2018-04-10 16:32:29 -07001033 1 (P): A module with a non-GPL license has been loaded, this
1034 includes modules with no license.
1035 Set by modutils >= 2.4.9 and module-init-tools.
1036 2 (F): A module was force loaded by insmod -f.
1037 Set by modutils >= 2.4.9 and module-init-tools.
1038 4 (S): Unsafe SMP processors: SMP with CPUs not designed for SMP.
1039 8 (R): A module was forcibly unloaded from the system by rmmod -f.
1040 16 (M): A hardware machine check error occurred on the system.
1041 32 (B): A bad page was discovered on the system.
1042 64 (U): The user has asked that the system be marked "tainted". This
1043 could be because they are running software that directly modifies
1044 the hardware, or for other reasons.
1045 128 (D): The system has died.
1046 256 (A): The ACPI DSDT has been overridden with one supplied by the user
1047 instead of using the one provided by the hardware.
1048 512 (W): A kernel warning has occurred.
1049 1024 (C): A module from drivers/staging was loaded.
1050 2048 (I): The system is working around a severe firmware bug.
1051 4096 (O): An out-of-tree module has been loaded.
1052 8192 (E): An unsigned module has been loaded in a kernel supporting module
1053 signature.
1054 16384 (L): A soft lockup has previously occurred on the system.
1055 32768 (K): The kernel has been live patched.
1056 65536 (X): Auxiliary taint, defined and used by for distros.
Kees Cookbc4f2f52018-04-10 16:32:33 -07001057131072 (T): The kernel was built with the struct randomization plugin.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001058
Shen Feng760df932009-04-02 16:57:20 -07001059==============================================================
1060
Heinrich Schuchardt0ec62af2015-04-16 12:47:53 -07001061threads-max
1062
1063This value controls the maximum number of threads that can be created
1064using fork().
1065
1066During initialization the kernel sets this value such that even if the
1067maximum number of threads is created, the thread structures occupy only
1068a part (1/8th) of the available RAM pages.
1069
1070The minimum value that can be written to threads-max is 20.
1071The maximum value that can be written to threads-max is given by the
1072constant FUTEX_TID_MASK (0x3fffffff).
1073If a value outside of this range is written to threads-max an error
1074EINVAL occurs.
1075
1076The value written is checked against the available RAM pages. If the
1077thread structures would occupy too much (more than 1/8th) of the
1078available RAM pages threads-max is reduced accordingly.
1079
1080==============================================================
1081
Shen Feng760df932009-04-02 16:57:20 -07001082unknown_nmi_panic:
1083
Borislav Petkov807094c2011-07-23 10:39:29 -07001084The value in this file affects behavior of handling NMI. When the
1085value is non-zero, unknown NMI is trapped and then panic occurs. At
1086that time, kernel debugging information is displayed on console.
Shen Feng760df932009-04-02 16:57:20 -07001087
Borislav Petkov807094c2011-07-23 10:39:29 -07001088NMI switch that most IA32 servers have fires unknown NMI up, for
1089example. If a system hangs up, try pressing the NMI switch.
Li Zefan08825c92013-05-17 10:31:20 +08001090
1091==============================================================
1092
Ulrich Obergfell195daf62015-04-14 15:44:13 -07001093watchdog:
1094
1095This parameter can be used to disable or enable the soft lockup detector
1096_and_ the NMI watchdog (i.e. the hard lockup detector) at the same time.
1097
1098 0 - disable both lockup detectors
1099 1 - enable both lockup detectors
1100
1101The soft lockup detector and the NMI watchdog can also be disabled or
1102enabled individually, using the soft_watchdog and nmi_watchdog parameters.
1103If the watchdog parameter is read, for example by executing
1104
1105 cat /proc/sys/kernel/watchdog
1106
1107the output of this command (0 or 1) shows the logical OR of soft_watchdog
1108and nmi_watchdog.
1109
1110==============================================================
1111
Chris Metcalffe4ba3c2015-06-24 16:55:45 -07001112watchdog_cpumask:
1113
1114This value can be used to control on which cpus the watchdog may run.
1115The default cpumask is all possible cores, but if NO_HZ_FULL is
1116enabled in the kernel config, and cores are specified with the
1117nohz_full= boot argument, those cores are excluded by default.
1118Offline cores can be included in this mask, and if the core is later
1119brought online, the watchdog will be started based on the mask value.
1120
1121Typically this value would only be touched in the nohz_full case
1122to re-enable cores that by default were not running the watchdog,
1123if a kernel lockup was suspected on those cores.
1124
1125The argument value is the standard cpulist format for cpumasks,
1126so for example to enable the watchdog on cores 0, 2, 3, and 4 you
1127might say:
1128
1129 echo 0,2-4 > /proc/sys/kernel/watchdog_cpumask
1130
1131==============================================================
1132
Li Zefan08825c92013-05-17 10:31:20 +08001133watchdog_thresh:
1134
1135This value can be used to control the frequency of hrtimer and NMI
1136events and the soft and hard lockup thresholds. The default threshold
1137is 10 seconds.
1138
1139The softlockup threshold is (2 * watchdog_thresh). Setting this
1140tunable to zero will disable lockup detection altogether.
1141
1142==============================================================