1=================================== 2Documentation for /proc/sys/kernel/ 3=================================== 4 5.. See scripts/check-sysctl-docs to keep this up to date 6 7 8Copyright (c) 1998, 1999, Rik van Riel <[email protected]> 9 10Copyright (c) 2009, Shen Feng<[email protected]> 11 12For general info and legal blurb, please look in 13Documentation/admin-guide/sysctl/index.rst. 14 15------------------------------------------------------------------------------ 16 17This file contains documentation for the sysctl files in 18``/proc/sys/kernel/``. 19 20The files in this directory can be used to tune and monitor 21miscellaneous and general things in the operation of the Linux 22kernel. Since some of the files *can* be used to screw up your 23system, it is advisable to read both documentation and source 24before actually making adjustments. 25 26Currently, these files might (depending on your configuration) 27show up in ``/proc/sys/kernel``: 28 29.. contents:: :local: 30 31 32acct 33==== 34 35:: 36 37 highwater lowwater frequency 38 39If BSD-style process accounting is enabled these values control 40its behaviour. If free space on filesystem where the log lives 41goes below ``lowwater``\ % accounting suspends. If free space gets 42above ``highwater``\ % accounting resumes. ``frequency`` determines 43how often do we check the amount of free space (value is in 44seconds). Default: 45 46:: 47 48 4 2 30 49 50That is, suspend accounting if free space drops below 2%; resume it 51if it increases to at least 4%; consider information about amount of 52free space valid for 30 seconds. 53 54 55acpi_video_flags 56================ 57 58See Documentation/power/video.rst. This allows the video resume mode to be set, 59in a similar fashion to the ``acpi_sleep`` kernel parameter, by 60combining the following values: 61 62= ======= 631 s3_bios 642 s3_mode 654 s3_beep 66= ======= 67 68arch 69==== 70 71The machine hardware name, the same output as ``uname -m`` 72(e.g. ``x86_64`` or ``aarch64``). 73 74auto_msgmni 75=========== 76 77This variable has no effect and may be removed in future kernel 78releases. Reading it always returns 0. 79Up to Linux 3.17, it enabled/disabled automatic recomputing of 80`msgmni`_ 81upon memory add/remove or upon IPC namespace creation/removal. 82Echoing "1" into this file enabled msgmni automatic recomputing. 83Echoing "0" turned it off. The default value was 1. 84 85 86bootloader_type (x86 only) 87========================== 88 89This gives the bootloader type number as indicated by the bootloader, 90shifted left by 4, and OR'd with the low four bits of the bootloader 91version. The reason for this encoding is that this used to match the 92``type_of_loader`` field in the kernel header; the encoding is kept for 93backwards compatibility. That is, if the full bootloader type number 94is 0x15 and the full version number is 0x234, this file will contain 95the value 340 = 0x154. 96 97See the ``type_of_loader`` and ``ext_loader_type`` fields in 98Documentation/x86/boot.rst for additional information. 99 100 101bootloader_version (x86 only) 102============================= 103 104The complete bootloader version number. In the example above, this 105file will contain the value 564 = 0x234. 106 107See the ``type_of_loader`` and ``ext_loader_ver`` fields in 108Documentation/x86/boot.rst for additional information. 109 110 111bpf_stats_enabled 112================= 113 114Controls whether the kernel should collect statistics on BPF programs 115(total time spent running, number of times run...). Enabling 116statistics causes a slight reduction in performance on each program 117run. The statistics can be seen using ``bpftool``. 118 119= =================================== 1200 Don't collect statistics (default). 1211 Collect statistics. 122= =================================== 123 124 125cad_pid 126======= 127 128This is the pid which will be signalled on reboot (notably, by 129Ctrl-Alt-Delete). Writing a value to this file which doesn't 130correspond to a running process will result in ``-ESRCH``. 131 132See also `ctrl-alt-del`_. 133 134 135cap_last_cap 136============ 137 138Highest valid capability of the running kernel. Exports 139``CAP_LAST_CAP`` from the kernel. 140 141 142.. _core_pattern: 143 144core_pattern 145============ 146 147``core_pattern`` is used to specify a core dumpfile pattern name. 148 149* max length 127 characters; default value is "core" 150* ``core_pattern`` is used as a pattern template for the output 151 filename; certain string patterns (beginning with '%') are 152 substituted with their actual values. 153* backward compatibility with ``core_uses_pid``: 154 155 If ``core_pattern`` does not include "%p" (default does not) 156 and ``core_uses_pid`` is set, then .PID will be appended to 157 the filename. 158 159* corename format specifiers 160 161 ======== ========================================== 162 %<NUL> '%' is dropped 163 %% output one '%' 164 %p pid 165 %P global pid (init PID namespace) 166 %i tid 167 %I global tid (init PID namespace) 168 %u uid (in initial user namespace) 169 %g gid (in initial user namespace) 170 %d dump mode, matches ``PR_SET_DUMPABLE`` and 171 ``/proc/sys/fs/suid_dumpable`` 172 %s signal number 173 %t UNIX time of dump 174 %h hostname 175 %e executable filename (may be shortened, could be changed by prctl etc) 176 %f executable filename 177 %E executable path 178 %c maximum size of core file by resource limit RLIMIT_CORE 179 %C CPU the task ran on 180 %<OTHER> both are dropped 181 ======== ========================================== 182 183* If the first character of the pattern is a '|', the kernel will treat 184 the rest of the pattern as a command to run. The core dump will be 185 written to the standard input of that program instead of to a file. 186 187 188core_pipe_limit 189=============== 190 191This sysctl is only applicable when `core_pattern`_ is configured to 192pipe core files to a user space helper (when the first character of 193``core_pattern`` is a '|', see above). 194When collecting cores via a pipe to an application, it is occasionally 195useful for the collecting application to gather data about the 196crashing process from its ``/proc/pid`` directory. 197In order to do this safely, the kernel must wait for the collecting 198process to exit, so as not to remove the crashing processes proc files 199prematurely. 200This in turn creates the possibility that a misbehaving userspace 201collecting process can block the reaping of a crashed process simply 202by never exiting. 203This sysctl defends against that. 204It defines how many concurrent crashing processes may be piped to user 205space applications in parallel. 206If this value is exceeded, then those crashing processes above that 207value are noted via the kernel log and their cores are skipped. 2080 is a special value, indicating that unlimited processes may be 209captured in parallel, but that no waiting will take place (i.e. the 210collecting process is not guaranteed access to ``/proc/<crashing 211pid>/``). 212This value defaults to 0. 213 214 215core_uses_pid 216============= 217 218The default coredump filename is "core". By setting 219``core_uses_pid`` to 1, the coredump filename becomes core.PID. 220If `core_pattern`_ does not include "%p" (default does not) 221and ``core_uses_pid`` is set, then .PID will be appended to 222the filename. 223 224 225ctrl-alt-del 226============ 227 228When the value in this file is 0, ctrl-alt-del is trapped and 229sent to the ``init(1)`` program to handle a graceful restart. 230When, however, the value is > 0, Linux's reaction to a Vulcan 231Nerve Pinch (tm) will be an immediate reboot, without even 232syncing its dirty buffers. 233 234Note: 235 when a program (like dosemu) has the keyboard in 'raw' 236 mode, the ctrl-alt-del is intercepted by the program before it 237 ever reaches the kernel tty layer, and it's up to the program 238 to decide what to do with it. 239 240 241dmesg_restrict 242============== 243 244This toggle indicates whether unprivileged users are prevented 245from using ``dmesg(8)`` to view messages from the kernel's log 246buffer. 247When ``dmesg_restrict`` is set to 0 there are no restrictions. 248When ``dmesg_restrict`` is set to 1, users must have 249``CAP_SYSLOG`` to use ``dmesg(8)``. 250 251The kernel config option ``CONFIG_SECURITY_DMESG_RESTRICT`` sets the 252default value of ``dmesg_restrict``. 253 254 255domainname & hostname 256===================== 257 258These files can be used to set the NIS/YP domainname and the 259hostname of your box in exactly the same way as the commands 260domainname and hostname, i.e.:: 261 262 # echo "darkstar" > /proc/sys/kernel/hostname 263 # echo "mydomain" > /proc/sys/kernel/domainname 264 265has the same effect as:: 266 267 # hostname "darkstar" 268 # domainname "mydomain" 269 270Note, however, that the classic darkstar.frop.org has the 271hostname "darkstar" and DNS (Internet Domain Name Server) 272domainname "frop.org", not to be confused with the NIS (Network 273Information Service) or YP (Yellow Pages) domainname. These two 274domain names are in general different. For a detailed discussion 275see the ``hostname(1)`` man page. 276 277 278firmware_config 279=============== 280 281See Documentation/driver-api/firmware/fallback-mechanisms.rst. 282 283The entries in this directory allow the firmware loader helper 284fallback to be controlled: 285 286* ``force_sysfs_fallback``, when set to 1, forces the use of the 287 fallback; 288* ``ignore_sysfs_fallback``, when set to 1, ignores any fallback. 289 290 291ftrace_dump_on_oops 292=================== 293 294Determines whether ``ftrace_dump()`` should be called on an oops (or 295kernel panic). This will output the contents of the ftrace buffers to 296the console. This is very useful for capturing traces that lead to 297crashes and outputting them to a serial console. 298 299= =================================================== 3000 Disabled (default). 3011 Dump buffers of all CPUs. 3022 Dump the buffer of the CPU that triggered the oops. 303= =================================================== 304 305 306ftrace_enabled, stack_tracer_enabled 307==================================== 308 309See Documentation/trace/ftrace.rst. 310 311 312hardlockup_all_cpu_backtrace 313============================ 314 315This value controls the hard lockup detector behavior when a hard 316lockup condition is detected as to whether or not to gather further 317debug information. If enabled, arch-specific all-CPU stack dumping 318will be initiated. 319 320= ============================================ 3210 Do nothing. This is the default behavior. 3221 On detection capture more debug information. 323= ============================================ 324 325 326hardlockup_panic 327================ 328 329This parameter can be used to control whether the kernel panics 330when a hard lockup is detected. 331 332= =========================== 3330 Don't panic on hard lockup. 3341 Panic on hard lockup. 335= =========================== 336 337See Documentation/admin-guide/lockup-watchdogs.rst for more information. 338This can also be set using the nmi_watchdog kernel parameter. 339 340 341hotplug 342======= 343 344Path for the hotplug policy agent. 345Default value is ``CONFIG_UEVENT_HELPER_PATH``, which in turn defaults 346to the empty string. 347 348This file only exists when ``CONFIG_UEVENT_HELPER`` is enabled. Most 349modern systems rely exclusively on the netlink-based uevent source and 350don't need this. 351 352 353hung_task_all_cpu_backtrace 354=========================== 355 356If this option is set, the kernel will send an NMI to all CPUs to dump 357their backtraces when a hung task is detected. This file shows up if 358CONFIG_DETECT_HUNG_TASK and CONFIG_SMP are enabled. 359 3600: Won't show all CPUs backtraces when a hung task is detected. 361This is the default behavior. 362 3631: Will non-maskably interrupt all CPUs and dump their backtraces when 364a hung task is detected. 365 366 367hung_task_panic 368=============== 369 370Controls the kernel's behavior when a hung task is detected. 371This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled. 372 373= ================================================= 3740 Continue operation. This is the default behavior. 3751 Panic immediately. 376= ================================================= 377 378 379hung_task_check_count 380===================== 381 382The upper bound on the number of tasks that are checked. 383This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled. 384 385 386hung_task_timeout_secs 387====================== 388 389When a task in D state did not get scheduled 390for more than this value report a warning. 391This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled. 392 3930 means infinite timeout, no checking is done. 394 395Possible values to set are in range {0:``LONG_MAX``/``HZ``}. 396 397 398hung_task_check_interval_secs 399============================= 400 401Hung task check interval. If hung task checking is enabled 402(see `hung_task_timeout_secs`_), the check is done every 403``hung_task_check_interval_secs`` seconds. 404This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled. 405 4060 (default) means use ``hung_task_timeout_secs`` as checking 407interval. 408 409Possible values to set are in range {0:``LONG_MAX``/``HZ``}. 410 411 412hung_task_warnings 413================== 414 415The maximum number of warnings to report. During a check interval 416if a hung task is detected, this value is decreased by 1. 417When this value reaches 0, no more warnings will be reported. 418This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled. 419 420-1: report an infinite number of warnings. 421 422 423hyperv_record_panic_msg 424======================= 425 426Controls whether the panic kmsg data should be reported to Hyper-V. 427 428= ========================================================= 4290 Do not report panic kmsg data. 4301 Report the panic kmsg data. This is the default behavior. 431= ========================================================= 432 433 434ignore-unaligned-usertrap 435========================= 436 437On architectures where unaligned accesses cause traps, and where this 438feature is supported (``CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN``; 439currently, ``arc``, ``ia64`` and ``loongarch``), controls whether all 440unaligned traps are logged. 441 442= ============================================================= 4430 Log all unaligned accesses. 4441 Only warn the first time a process traps. This is the default 445 setting. 446= ============================================================= 447 448See also `unaligned-trap`_ and `unaligned-dump-stack`_. On ``ia64``, 449this allows system administrators to override the 450``IA64_THREAD_UAC_NOPRINT`` ``prctl`` and avoid logs being flooded. 451 452 453kexec_load_disabled 454=================== 455 456A toggle indicating if the syscalls ``kexec_load`` and 457``kexec_file_load`` have been disabled. 458This value defaults to 0 (false: ``kexec_*load`` enabled), but can be 459set to 1 (true: ``kexec_*load`` disabled). 460Once true, kexec can no longer be used, and the toggle cannot be set 461back to false. 462This allows a kexec image to be loaded before disabling the syscall, 463allowing a system to set up (and later use) an image without it being 464altered. 465Generally used together with the `modules_disabled`_ sysctl. 466 467 468kptr_restrict 469============= 470 471This toggle indicates whether restrictions are placed on 472exposing kernel addresses via ``/proc`` and other interfaces. 473 474When ``kptr_restrict`` is set to 0 (the default) the address is hashed 475before printing. 476(This is the equivalent to %p.) 477 478When ``kptr_restrict`` is set to 1, kernel pointers printed using the 479%pK format specifier will be replaced with 0s unless the user has 480``CAP_SYSLOG`` and effective user and group ids are equal to the real 481ids. 482This is because %pK checks are done at read() time rather than open() 483time, so if permissions are elevated between the open() and the read() 484(e.g via a setuid binary) then %pK will not leak kernel pointers to 485unprivileged users. 486Note, this is a temporary solution only. 487The correct long-term solution is to do the permission checks at 488open() time. 489Consider removing world read permissions from files that use %pK, and 490using `dmesg_restrict`_ to protect against uses of %pK in ``dmesg(8)`` 491if leaking kernel pointer values to unprivileged users is a concern. 492 493When ``kptr_restrict`` is set to 2, kernel pointers printed using 494%pK will be replaced with 0s regardless of privileges. 495 496 497modprobe 498======== 499 500The full path to the usermode helper for autoloading kernel modules, 501by default ``CONFIG_MODPROBE_PATH``, which in turn defaults to 502"/sbin/modprobe". This binary is executed when the kernel requests a 503module. For example, if userspace passes an unknown filesystem type 504to mount(), then the kernel will automatically request the 505corresponding filesystem module by executing this usermode helper. 506This usermode helper should insert the needed module into the kernel. 507 508This sysctl only affects module autoloading. It has no effect on the 509ability to explicitly insert modules. 510 511This sysctl can be used to debug module loading requests:: 512 513 echo '#! /bin/sh' > /tmp/modprobe 514 echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe 515 echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe 516 chmod a+x /tmp/modprobe 517 echo /tmp/modprobe > /proc/sys/kernel/modprobe 518 519Alternatively, if this sysctl is set to the empty string, then module 520autoloading is completely disabled. The kernel will not try to 521execute a usermode helper at all, nor will it call the 522kernel_module_request LSM hook. 523 524If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration, 525then the configured static usermode helper overrides this sysctl, 526except that the empty string is still accepted to completely disable 527module autoloading as described above. 528 529modules_disabled 530================ 531 532A toggle value indicating if modules are allowed to be loaded 533in an otherwise modular kernel. This toggle defaults to off 534(0), but can be set true (1). Once true, modules can be 535neither loaded nor unloaded, and the toggle cannot be set back 536to false. Generally used with the `kexec_load_disabled`_ toggle. 537 538 539.. _msgmni: 540 541msgmax, msgmnb, and msgmni 542========================== 543 544``msgmax`` is the maximum size of an IPC message, in bytes. 8192 by 545default (``MSGMAX``). 546 547``msgmnb`` is the maximum size of an IPC queue, in bytes. 16384 by 548default (``MSGMNB``). 549 550``msgmni`` is the maximum number of IPC queues. 32000 by default 551(``MSGMNI``). 552 553 554msg_next_id, sem_next_id, and shm_next_id (System V IPC) 555======================================================== 556 557These three toggles allows to specify desired id for next allocated IPC 558object: message, semaphore or shared memory respectively. 559 560By default they are equal to -1, which means generic allocation logic. 561Possible values to set are in range {0:``INT_MAX``}. 562 563Notes: 564 1) kernel doesn't guarantee, that new object will have desired id. So, 565 it's up to userspace, how to handle an object with "wrong" id. 566 2) Toggle with non-default value will be set back to -1 by kernel after 567 successful IPC object allocation. If an IPC object allocation syscall 568 fails, it is undefined if the value remains unmodified or is reset to -1. 569 570 571ngroups_max 572=========== 573 574Maximum number of supplementary groups, _i.e._ the maximum size which 575``setgroups`` will accept. Exports ``NGROUPS_MAX`` from the kernel. 576 577 578 579nmi_watchdog 580============ 581 582This parameter can be used to control the NMI watchdog 583(i.e. the hard lockup detector) on x86 systems. 584 585= ================================= 5860 Disable the hard lockup detector. 5871 Enable the hard lockup detector. 588= ================================= 589 590The hard lockup detector monitors each CPU for its ability to respond to 591timer interrupts. The mechanism utilizes CPU performance counter registers 592that are programmed to generate Non-Maskable Interrupts (NMIs) periodically 593while a CPU is busy. Hence, the alternative name 'NMI watchdog'. 594 595The NMI watchdog is disabled by default if the kernel is running as a guest 596in a KVM virtual machine. This default can be overridden by adding:: 597 598 nmi_watchdog=1 599 600to the guest kernel command line (see 601Documentation/admin-guide/kernel-parameters.rst). 602 603 604nmi_wd_lpm_factor (PPC only) 605============================ 606 607Factor to apply to the NMI watchdog timeout (only when ``nmi_watchdog`` is 608set to 1). This factor represents the percentage added to 609``watchdog_thresh`` when calculating the NMI watchdog timeout during an 610LPM. The soft lockup timeout is not impacted. 611 612A value of 0 means no change. The default value is 200 meaning the NMI 613watchdog is set to 30s (based on ``watchdog_thresh`` equal to 10). 614 615 616numa_balancing 617============== 618 619Enables/disables and configures automatic page fault based NUMA memory 620balancing. Memory is moved automatically to nodes that access it often. 621The value to set can be the result of ORing the following: 622 623= ================================= 6240 NUMA_BALANCING_DISABLED 6251 NUMA_BALANCING_NORMAL 6262 NUMA_BALANCING_MEMORY_TIERING 627= ================================= 628 629Or NUMA_BALANCING_NORMAL to optimize page placement among different 630NUMA nodes to reduce remote accessing. On NUMA machines, there is a 631performance penalty if remote memory is accessed by a CPU. When this 632feature is enabled the kernel samples what task thread is accessing 633memory by periodically unmapping pages and later trapping a page 634fault. At the time of the page fault, it is determined if the data 635being accessed should be migrated to a local memory node. 636 637The unmapping of pages and trapping faults incur additional overhead that 638ideally is offset by improved memory locality but there is no universal 639guarantee. If the target workload is already bound to NUMA nodes then this 640feature should be disabled. 641 642Or NUMA_BALANCING_MEMORY_TIERING to optimize page placement among 643different types of memory (represented as different NUMA nodes) to 644place the hot pages in the fast memory. This is implemented based on 645unmapping and page fault too. 646 647numa_balancing_promote_rate_limit_MBps 648====================================== 649 650Too high promotion/demotion throughput between different memory types 651may hurt application latency. This can be used to rate limit the 652promotion throughput. The per-node max promotion throughput in MB/s 653will be limited to be no more than the set value. 654 655A rule of thumb is to set this to less than 1/10 of the PMEM node 656write bandwidth. 657 658oops_all_cpu_backtrace 659====================== 660 661If this option is set, the kernel will send an NMI to all CPUs to dump 662their backtraces when an oops event occurs. It should be used as a last 663resort in case a panic cannot be triggered (to protect VMs running, for 664example) or kdump can't be collected. This file shows up if CONFIG_SMP 665is enabled. 666 6670: Won't show all CPUs backtraces when an oops is detected. 668This is the default behavior. 669 6701: Will non-maskably interrupt all CPUs and dump their backtraces when 671an oops event is detected. 672 673 674oops_limit 675========== 676 677Number of kernel oopses after which the kernel should panic when 678``panic_on_oops`` is not set. Setting this to 0 disables checking 679the count. Setting this to 1 has the same effect as setting 680``panic_on_oops=1``. The default value is 10000. 681 682 683osrelease, ostype & version 684=========================== 685 686:: 687 688 # cat osrelease 689 2.1.88 690 # cat ostype 691 Linux 692 # cat version 693 #5 Wed Feb 25 21:49:24 MET 1998 694 695The files ``osrelease`` and ``ostype`` should be clear enough. 696``version`` 697needs a little more clarification however. The '#5' means that 698this is the fifth kernel built from this source base and the 699date behind it indicates the time the kernel was built. 700The only way to tune these values is to rebuild the kernel :-) 701 702 703overflowgid & overflowuid 704========================= 705 706if your architecture did not always support 32-bit UIDs (i.e. arm, 707i386, m68k, sh, and sparc32), a fixed UID and GID will be returned to 708applications that use the old 16-bit UID/GID system calls, if the 709actual UID or GID would exceed 65535. 710 711These sysctls allow you to change the value of the fixed UID and GID. 712The default is 65534. 713 714 715panic 716===== 717 718The value in this file determines the behaviour of the kernel on a 719panic: 720 721* if zero, the kernel will loop forever; 722* if negative, the kernel will reboot immediately; 723* if positive, the kernel will reboot after the corresponding number 724 of seconds. 725 726When you use the software watchdog, the recommended setting is 60. 727 728 729panic_on_io_nmi 730=============== 731 732Controls the kernel's behavior when a CPU receives an NMI caused by 733an IO error. 734 735= ================================================================== 7360 Try to continue operation (default). 7371 Panic immediately. The IO error triggered an NMI. This indicates a 738 serious system condition which could result in IO data corruption. 739 Rather than continuing, panicking might be a better choice. Some 740 servers issue this sort of NMI when the dump button is pushed, 741 and you can use this option to take a crash dump. 742= ================================================================== 743 744 745panic_on_oops 746============= 747 748Controls the kernel's behaviour when an oops or BUG is encountered. 749 750= =================================================================== 7510 Try to continue operation. 7521 Panic immediately. If the `panic` sysctl is also non-zero then the 753 machine will be rebooted. 754= =================================================================== 755 756 757panic_on_stackoverflow 758====================== 759 760Controls the kernel's behavior when detecting the overflows of 761kernel, IRQ and exception stacks except a user stack. 762This file shows up if ``CONFIG_DEBUG_STACKOVERFLOW`` is enabled. 763 764= ========================== 7650 Try to continue operation. 7661 Panic immediately. 767= ========================== 768 769 770panic_on_unrecovered_nmi 771======================== 772 773The default Linux behaviour on an NMI of either memory or unknown is 774to continue operation. For many environments such as scientific 775computing it is preferable that the box is taken out and the error 776dealt with than an uncorrected parity/ECC error get propagated. 777 778A small number of systems do generate NMIs for bizarre random reasons 779such as power management so the default is off. That sysctl works like 780the existing panic controls already in that directory. 781 782 783panic_on_warn 784============= 785 786Calls panic() in the WARN() path when set to 1. This is useful to avoid 787a kernel rebuild when attempting to kdump at the location of a WARN(). 788 789= ================================================ 7900 Only WARN(), default behaviour. 7911 Call panic() after printing out WARN() location. 792= ================================================ 793 794 795panic_print 796=========== 797 798Bitmask for printing system info when panic happens. User can chose 799combination of the following bits: 800 801===== ============================================ 802bit 0 print all tasks info 803bit 1 print system memory info 804bit 2 print timer info 805bit 3 print locks info if ``CONFIG_LOCKDEP`` is on 806bit 4 print ftrace buffer 807bit 5 print all printk messages in buffer 808bit 6 print all CPUs backtrace (if available in the arch) 809===== ============================================ 810 811So for example to print tasks and memory info on panic, user can:: 812 813 echo 3 > /proc/sys/kernel/panic_print 814 815 816panic_on_rcu_stall 817================== 818 819When set to 1, calls panic() after RCU stall detection messages. This 820is useful to define the root cause of RCU stalls using a vmcore. 821 822= ============================================================ 8230 Do not panic() when RCU stall takes place, default behavior. 8241 panic() after printing RCU stall messages. 825= ============================================================ 826 827max_rcu_stall_to_panic 828====================== 829 830When ``panic_on_rcu_stall`` is set to 1, this value determines the 831number of times that RCU can stall before panic() is called. 832 833When ``panic_on_rcu_stall`` is set to 0, this value is has no effect. 834 835perf_cpu_time_max_percent 836========================= 837 838Hints to the kernel how much CPU time it should be allowed to 839use to handle perf sampling events. If the perf subsystem 840is informed that its samples are exceeding this limit, it 841will drop its sampling frequency to attempt to reduce its CPU 842usage. 843 844Some perf sampling happens in NMIs. If these samples 845unexpectedly take too long to execute, the NMIs can become 846stacked up next to each other so much that nothing else is 847allowed to execute. 848 849===== ======================================================== 8500 Disable the mechanism. Do not monitor or correct perf's 851 sampling rate no matter how CPU time it takes. 852 8531-100 Attempt to throttle perf's sample rate to this 854 percentage of CPU. Note: the kernel calculates an 855 "expected" length of each sample event. 100 here means 856 100% of that expected length. Even if this is set to 857 100, you may still see sample throttling if this 858 length is exceeded. Set to 0 if you truly do not care 859 how much CPU is consumed. 860===== ======================================================== 861 862 863perf_event_paranoid 864=================== 865 866Controls use of the performance events system by unprivileged 867users (without CAP_PERFMON). The default value is 2. 868 869For backward compatibility reasons access to system performance 870monitoring and observability remains open for CAP_SYS_ADMIN 871privileged processes but CAP_SYS_ADMIN usage for secure system 872performance monitoring and observability operations is discouraged 873with respect to CAP_PERFMON use cases. 874 875=== ================================================================== 876 -1 Allow use of (almost) all events by all users. 877 878 Ignore mlock limit after perf_event_mlock_kb without 879 ``CAP_IPC_LOCK``. 880 881>=0 Disallow ftrace function tracepoint by users without 882 ``CAP_PERFMON``. 883 884 Disallow raw tracepoint access by users without ``CAP_PERFMON``. 885 886>=1 Disallow CPU event access by users without ``CAP_PERFMON``. 887 888>=2 Disallow kernel profiling by users without ``CAP_PERFMON``. 889=== ================================================================== 890 891 892perf_event_max_stack 893==================== 894 895Controls maximum number of stack frames to copy for (``attr.sample_type & 896PERF_SAMPLE_CALLCHAIN``) configured events, for instance, when using 897'``perf record -g``' or '``perf trace --call-graph fp``'. 898 899This can only be done when no events are in use that have callchains 900enabled, otherwise writing to this file will return ``-EBUSY``. 901 902The default value is 127. 903 904 905perf_event_mlock_kb 906=================== 907 908Control size of per-cpu ring buffer not counted against mlock limit. 909 910The default value is 512 + 1 page 911 912 913perf_event_max_contexts_per_stack 914================================= 915 916Controls maximum number of stack frame context entries for 917(``attr.sample_type & PERF_SAMPLE_CALLCHAIN``) configured events, for 918instance, when using '``perf record -g``' or '``perf trace --call-graph fp``'. 919 920This can only be done when no events are in use that have callchains 921enabled, otherwise writing to this file will return ``-EBUSY``. 922 923The default value is 8. 924 925 926perf_user_access (arm64 only) 927================================= 928 929Controls user space access for reading perf event counters. When set to 1, 930user space can read performance monitor counter registers directly. 931 932The default value is 0 (access disabled). 933 934See Documentation/arm64/perf.rst for more information. 935 936 937pid_max 938======= 939 940PID allocation wrap value. When the kernel's next PID value 941reaches this value, it wraps back to a minimum PID value. 942PIDs of value ``pid_max`` or larger are not allocated. 943 944 945ns_last_pid 946=========== 947 948The last pid allocated in the current (the one task using this sysctl 949lives in) pid namespace. When selecting a pid for a next task on fork 950kernel tries to allocate a number starting from this one. 951 952 953powersave-nap (PPC only) 954======================== 955 956If set, Linux-PPC will use the 'nap' mode of powersaving, 957otherwise the 'doze' mode will be used. 958 959 960============================================================== 961 962printk 963====== 964 965The four values in printk denote: ``console_loglevel``, 966``default_message_loglevel``, ``minimum_console_loglevel`` and 967``default_console_loglevel`` respectively. 968 969These values influence printk() behavior when printing or 970logging error messages. See '``man 2 syslog``' for more info on 971the different loglevels. 972 973======================== ===================================== 974console_loglevel messages with a higher priority than 975 this will be printed to the console 976default_message_loglevel messages without an explicit priority 977 will be printed with this priority 978minimum_console_loglevel minimum (highest) value to which 979 console_loglevel can be set 980default_console_loglevel default value for console_loglevel 981======================== ===================================== 982 983 984printk_delay 985============ 986 987Delay each printk message in ``printk_delay`` milliseconds 988 989Value from 0 - 10000 is allowed. 990 991 992printk_ratelimit 993================ 994 995Some warning messages are rate limited. ``printk_ratelimit`` specifies 996the minimum length of time between these messages (in seconds). 997The default value is 5 seconds. 998 999A value of 0 will disable rate limiting. 1000 1001 1002printk_ratelimit_burst 1003====================== 1004 1005While long term we enforce one message per `printk_ratelimit`_ 1006seconds, we do allow a burst of messages to pass through. 1007``printk_ratelimit_burst`` specifies the number of messages we can 1008send before ratelimiting kicks in. 1009 1010The default value is 10 messages. 1011 1012 1013printk_devkmsg 1014============== 1015 1016Control the logging to ``/dev/kmsg`` from userspace: 1017 1018========= ============================================= 1019ratelimit default, ratelimited 1020on unlimited logging to /dev/kmsg from userspace 1021off logging to /dev/kmsg disabled 1022========= ============================================= 1023 1024The kernel command line parameter ``printk.devkmsg=`` overrides this and is 1025a one-time setting until next reboot: once set, it cannot be changed by 1026this sysctl interface anymore. 1027 1028============================================================== 1029 1030 1031pty 1032=== 1033 1034See Documentation/filesystems/devpts.rst. 1035 1036 1037random 1038====== 1039 1040This is a directory, with the following entries: 1041 1042* ``boot_id``: a UUID generated the first time this is retrieved, and 1043 unvarying after that; 1044 1045* ``uuid``: a UUID generated every time this is retrieved (this can 1046 thus be used to generate UUIDs at will); 1047 1048* ``entropy_avail``: the pool's entropy count, in bits; 1049 1050* ``poolsize``: the entropy pool size, in bits; 1051 1052* ``urandom_min_reseed_secs``: obsolete (used to determine the minimum 1053 number of seconds between urandom pool reseeding). This file is 1054 writable for compatibility purposes, but writing to it has no effect 1055 on any RNG behavior; 1056 1057* ``write_wakeup_threshold``: when the entropy count drops below this 1058 (as a number of bits), processes waiting to write to ``/dev/random`` 1059 are woken up. This file is writable for compatibility purposes, but 1060 writing to it has no effect on any RNG behavior. 1061 1062 1063randomize_va_space 1064================== 1065 1066This option can be used to select the type of process address 1067space randomization that is used in the system, for architectures 1068that support this feature. 1069 1070== =========================================================================== 10710 Turn the process address space randomization off. This is the 1072 default for architectures that do not support this feature anyways, 1073 and kernels that are booted with the "norandmaps" parameter. 1074 10751 Make the addresses of mmap base, stack and VDSO page randomized. 1076 This, among other things, implies that shared libraries will be 1077 loaded to random addresses. Also for PIE-linked binaries, the 1078 location of code start is randomized. This is the default if the 1079 ``CONFIG_COMPAT_BRK`` option is enabled. 1080 10812 Additionally enable heap randomization. This is the default if 1082 ``CONFIG_COMPAT_BRK`` is disabled. 1083 1084 There are a few legacy applications out there (such as some ancient 1085 versions of libc.so.5 from 1996) that assume that brk area starts 1086 just after the end of the code+bss. These applications break when 1087 start of the brk area is randomized. There are however no known 1088 non-legacy applications that would be broken this way, so for most 1089 systems it is safe to choose full randomization. 1090 1091 Systems with ancient and/or broken binaries should be configured 1092 with ``CONFIG_COMPAT_BRK`` enabled, which excludes the heap from process 1093 address space randomization. 1094== =========================================================================== 1095 1096 1097real-root-dev 1098============= 1099 1100See Documentation/admin-guide/initrd.rst. 1101 1102 1103reboot-cmd (SPARC only) 1104======================= 1105 1106??? This seems to be a way to give an argument to the Sparc 1107ROM/Flash boot loader. Maybe to tell it what to do after 1108rebooting. ??? 1109 1110 1111sched_energy_aware 1112================== 1113 1114Enables/disables Energy Aware Scheduling (EAS). EAS starts 1115automatically on platforms where it can run (that is, 1116platforms with asymmetric CPU topologies and having an Energy 1117Model available). If your platform happens to meet the 1118requirements for EAS but you do not want to use it, change 1119this value to 0. 1120 1121task_delayacct 1122=============== 1123 1124Enables/disables task delay accounting (see 1125Documentation/accounting/delay-accounting.rst. Enabling this feature incurs 1126a small amount of overhead in the scheduler but is useful for debugging 1127and performance tuning. It is required by some tools such as iotop. 1128 1129sched_schedstats 1130================ 1131 1132Enables/disables scheduler statistics. Enabling this feature 1133incurs a small amount of overhead in the scheduler but is 1134useful for debugging and performance tuning. 1135 1136sched_util_clamp_min 1137==================== 1138 1139Max allowed *minimum* utilization. 1140 1141Default value is 1024, which is the maximum possible value. 1142 1143It means that any requested uclamp.min value cannot be greater than 1144sched_util_clamp_min, i.e., it is restricted to the range 1145[0:sched_util_clamp_min]. 1146 1147sched_util_clamp_max 1148==================== 1149 1150Max allowed *maximum* utilization. 1151 1152Default value is 1024, which is the maximum possible value. 1153 1154It means that any requested uclamp.max value cannot be greater than 1155sched_util_clamp_max, i.e., it is restricted to the range 1156[0:sched_util_clamp_max]. 1157 1158sched_util_clamp_min_rt_default 1159=============================== 1160 1161By default Linux is tuned for performance. Which means that RT tasks always run 1162at the highest frequency and most capable (highest capacity) CPU (in 1163heterogeneous systems). 1164 1165Uclamp achieves this by setting the requested uclamp.min of all RT tasks to 11661024 by default, which effectively boosts the tasks to run at the highest 1167frequency and biases them to run on the biggest CPU. 1168 1169This knob allows admins to change the default behavior when uclamp is being 1170used. In battery powered devices particularly, running at the maximum 1171capacity and frequency will increase energy consumption and shorten the battery 1172life. 1173 1174This knob is only effective for RT tasks which the user hasn't modified their 1175requested uclamp.min value via sched_setattr() syscall. 1176 1177This knob will not escape the range constraint imposed by sched_util_clamp_min 1178defined above. 1179 1180For example if 1181 1182 sched_util_clamp_min_rt_default = 800 1183 sched_util_clamp_min = 600 1184 1185Then the boost will be clamped to 600 because 800 is outside of the permissible 1186range of [0:600]. This could happen for instance if a powersave mode will 1187restrict all boosts temporarily by modifying sched_util_clamp_min. As soon as 1188this restriction is lifted, the requested sched_util_clamp_min_rt_default 1189will take effect. 1190 1191seccomp 1192======= 1193 1194See Documentation/userspace-api/seccomp_filter.rst. 1195 1196 1197sg-big-buff 1198=========== 1199 1200This file shows the size of the generic SCSI (sg) buffer. 1201You can't tune it just yet, but you could change it on 1202compile time by editing ``include/scsi/sg.h`` and changing 1203the value of ``SG_BIG_BUFF``. 1204 1205There shouldn't be any reason to change this value. If 1206you can come up with one, you probably know what you 1207are doing anyway :) 1208 1209 1210shmall 1211====== 1212 1213This parameter sets the total amount of shared memory pages that 1214can be used system wide. Hence, ``shmall`` should always be at least 1215``ceil(shmmax/PAGE_SIZE)``. 1216 1217If you are not sure what the default ``PAGE_SIZE`` is on your Linux 1218system, you can run the following command:: 1219 1220 # getconf PAGE_SIZE 1221 1222 1223shmmax 1224====== 1225 1226This value can be used to query and set the run time limit 1227on the maximum shared memory segment size that can be created. 1228Shared memory segments up to 1Gb are now supported in the 1229kernel. This value defaults to ``SHMMAX``. 1230 1231 1232shmmni 1233====== 1234 1235This value determines the maximum number of shared memory segments. 12364096 by default (``SHMMNI``). 1237 1238 1239shm_rmid_forced 1240=============== 1241 1242Linux lets you set resource limits, including how much memory one 1243process can consume, via ``setrlimit(2)``. Unfortunately, shared memory 1244segments are allowed to exist without association with any process, and 1245thus might not be counted against any resource limits. If enabled, 1246shared memory segments are automatically destroyed when their attach 1247count becomes zero after a detach or a process termination. It will 1248also destroy segments that were created, but never attached to, on exit 1249from the process. The only use left for ``IPC_RMID`` is to immediately 1250destroy an unattached segment. Of course, this breaks the way things are 1251defined, so some applications might stop working. Note that this 1252feature will do you no good unless you also configure your resource 1253limits (in particular, ``RLIMIT_AS`` and ``RLIMIT_NPROC``). Most systems don't 1254need this. 1255 1256Note that if you change this from 0 to 1, already created segments 1257without users and with a dead originative process will be destroyed. 1258 1259 1260sysctl_writes_strict 1261==================== 1262 1263Control how file position affects the behavior of updating sysctl values 1264via the ``/proc/sys`` interface: 1265 1266 == ====================================================================== 1267 -1 Legacy per-write sysctl value handling, with no printk warnings. 1268 Each write syscall must fully contain the sysctl value to be 1269 written, and multiple writes on the same sysctl file descriptor 1270 will rewrite the sysctl value, regardless of file position. 1271 0 Same behavior as above, but warn about processes that perform writes 1272 to a sysctl file descriptor when the file position is not 0. 1273 1 (default) Respect file position when writing sysctl strings. Multiple 1274 writes will append to the sysctl value buffer. Anything past the max 1275 length of the sysctl value buffer will be ignored. Writes to numeric 1276 sysctl entries must always be at file position 0 and the value must 1277 be fully contained in the buffer sent in the write syscall. 1278 == ====================================================================== 1279 1280 1281softlockup_all_cpu_backtrace 1282============================ 1283 1284This value controls the soft lockup detector thread's behavior 1285when a soft lockup condition is detected as to whether or not 1286to gather further debug information. If enabled, each cpu will 1287be issued an NMI and instructed to capture stack trace. 1288 1289This feature is only applicable for architectures which support 1290NMI. 1291 1292= ============================================ 12930 Do nothing. This is the default behavior. 12941 On detection capture more debug information. 1295= ============================================ 1296 1297 1298softlockup_panic 1299================= 1300 1301This parameter can be used to control whether the kernel panics 1302when a soft lockup is detected. 1303 1304= ============================================ 13050 Don't panic on soft lockup. 13061 Panic on soft lockup. 1307= ============================================ 1308 1309This can also be set using the softlockup_panic kernel parameter. 1310 1311 1312soft_watchdog 1313============= 1314 1315This parameter can be used to control the soft lockup detector. 1316 1317= ================================= 13180 Disable the soft lockup detector. 13191 Enable the soft lockup detector. 1320= ================================= 1321 1322The soft lockup detector monitors CPUs for threads that are hogging the CPUs 1323without rescheduling voluntarily, and thus prevent the 'migration/N' threads 1324from running, causing the watchdog work fail to execute. The mechanism depends 1325on the CPUs ability to respond to timer interrupts which are needed for the 1326watchdog work to be queued by the watchdog timer function, otherwise the NMI 1327watchdog — if enabled — can detect a hard lockup condition. 1328 1329 1330split_lock_mitigate (x86 only) 1331============================== 1332 1333On x86, each "split lock" imposes a system-wide performance penalty. On larger 1334systems, large numbers of split locks from unprivileged users can result in 1335denials of service to well-behaved and potentially more important users. 1336 1337The kernel mitigates these bad users by detecting split locks and imposing 1338penalties: forcing them to wait and only allowing one core to execute split 1339locks at a time. 1340 1341These mitigations can make those bad applications unbearably slow. Setting 1342split_lock_mitigate=0 may restore some application performance, but will also 1343increase system exposure to denial of service attacks from split lock users. 1344 1345= =================================================================== 13460 Disable the mitigation mode - just warns the split lock on kernel log 1347 and exposes the system to denials of service from the split lockers. 13481 Enable the mitigation mode (this is the default) - penalizes the split 1349 lockers with intentional performance degradation. 1350= =================================================================== 1351 1352 1353stack_erasing 1354============= 1355 1356This parameter can be used to control kernel stack erasing at the end 1357of syscalls for kernels built with ``CONFIG_GCC_PLUGIN_STACKLEAK``. 1358 1359That erasing reduces the information which kernel stack leak bugs 1360can reveal and blocks some uninitialized stack variable attacks. 1361The tradeoff is the performance impact: on a single CPU system kernel 1362compilation sees a 1% slowdown, other systems and workloads may vary. 1363 1364= ==================================================================== 13650 Kernel stack erasing is disabled, STACKLEAK_METRICS are not updated. 13661 Kernel stack erasing is enabled (default), it is performed before 1367 returning to the userspace at the end of syscalls. 1368= ==================================================================== 1369 1370 1371stop-a (SPARC only) 1372=================== 1373 1374Controls Stop-A: 1375 1376= ==================================== 13770 Stop-A has no effect. 13781 Stop-A breaks to the PROM (default). 1379= ==================================== 1380 1381Stop-A is always enabled on a panic, so that the user can return to 1382the boot PROM. 1383 1384 1385sysrq 1386===== 1387 1388See Documentation/admin-guide/sysrq.rst. 1389 1390 1391tainted 1392======= 1393 1394Non-zero if the kernel has been tainted. Numeric values, which can be 1395ORed together. The letters are seen in "Tainted" line of Oops reports. 1396 1397====== ===== ============================================================== 1398 1 `(P)` proprietary module was loaded 1399 2 `(F)` module was force loaded 1400 4 `(S)` kernel running on an out of specification system 1401 8 `(R)` module was force unloaded 1402 16 `(M)` processor reported a Machine Check Exception (MCE) 1403 32 `(B)` bad page referenced or some unexpected page flags 1404 64 `(U)` taint requested by userspace application 1405 128 `(D)` kernel died recently, i.e. there was an OOPS or BUG 1406 256 `(A)` an ACPI table was overridden by user 1407 512 `(W)` kernel issued warning 1408 1024 `(C)` staging driver was loaded 1409 2048 `(I)` workaround for bug in platform firmware applied 1410 4096 `(O)` externally-built ("out-of-tree") module was loaded 1411 8192 `(E)` unsigned module was loaded 1412 16384 `(L)` soft lockup occurred 1413 32768 `(K)` kernel has been live patched 1414 65536 `(X)` Auxiliary taint, defined and used by for distros 1415131072 `(T)` The kernel was built with the struct randomization plugin 1416====== ===== ============================================================== 1417 1418See Documentation/admin-guide/tainted-kernels.rst for more information. 1419 1420Note: 1421 writes to this sysctl interface will fail with ``EINVAL`` if the kernel is 1422 booted with the command line option ``panic_on_taint=<bitmask>,nousertaint`` 1423 and any of the ORed together values being written to ``tainted`` match with 1424 the bitmask declared on panic_on_taint. 1425 See Documentation/admin-guide/kernel-parameters.rst for more details on 1426 that particular kernel command line option and its optional 1427 ``nousertaint`` switch. 1428 1429threads-max 1430=========== 1431 1432This value controls the maximum number of threads that can be created 1433using ``fork()``. 1434 1435During initialization the kernel sets this value such that even if the 1436maximum number of threads is created, the thread structures occupy only 1437a part (1/8th) of the available RAM pages. 1438 1439The minimum value that can be written to ``threads-max`` is 1. 1440 1441The maximum value that can be written to ``threads-max`` is given by the 1442constant ``FUTEX_TID_MASK`` (0x3fffffff). 1443 1444If a value outside of this range is written to ``threads-max`` an 1445``EINVAL`` error occurs. 1446 1447 1448traceoff_on_warning 1449=================== 1450 1451When set, disables tracing (see Documentation/trace/ftrace.rst) when a 1452``WARN()`` is hit. 1453 1454 1455tracepoint_printk 1456================= 1457 1458When tracepoints are sent to printk() (enabled by the ``tp_printk`` 1459boot parameter), this entry provides runtime control:: 1460 1461 echo 0 > /proc/sys/kernel/tracepoint_printk 1462 1463will stop tracepoints from being sent to printk(), and:: 1464 1465 echo 1 > /proc/sys/kernel/tracepoint_printk 1466 1467will send them to printk() again. 1468 1469This only works if the kernel was booted with ``tp_printk`` enabled. 1470 1471See Documentation/admin-guide/kernel-parameters.rst and 1472Documentation/trace/boottime-trace.rst. 1473 1474 1475.. _unaligned-dump-stack: 1476 1477unaligned-dump-stack (ia64) 1478=========================== 1479 1480When logging unaligned accesses, controls whether the stack is 1481dumped. 1482 1483= =================================================== 14840 Do not dump the stack. This is the default setting. 14851 Dump the stack. 1486= =================================================== 1487 1488See also `ignore-unaligned-usertrap`_. 1489 1490 1491unaligned-trap 1492============== 1493 1494On architectures where unaligned accesses cause traps, and where this 1495feature is supported (``CONFIG_SYSCTL_ARCH_UNALIGN_ALLOW``; currently, 1496``arc``, ``parisc`` and ``loongarch``), controls whether unaligned traps 1497are caught and emulated (instead of failing). 1498 1499= ======================================================== 15000 Do not emulate unaligned accesses. 15011 Emulate unaligned accesses. This is the default setting. 1502= ======================================================== 1503 1504See also `ignore-unaligned-usertrap`_. 1505 1506 1507unknown_nmi_panic 1508================= 1509 1510The value in this file affects behavior of handling NMI. When the 1511value is non-zero, unknown NMI is trapped and then panic occurs. At 1512that time, kernel debugging information is displayed on console. 1513 1514NMI switch that most IA32 servers have fires unknown NMI up, for 1515example. If a system hangs up, try pressing the NMI switch. 1516 1517 1518unprivileged_bpf_disabled 1519========================= 1520 1521Writing 1 to this entry will disable unprivileged calls to ``bpf()``; 1522once disabled, calling ``bpf()`` without ``CAP_SYS_ADMIN`` or ``CAP_BPF`` 1523will return ``-EPERM``. Once set to 1, this can't be cleared from the 1524running kernel anymore. 1525 1526Writing 2 to this entry will also disable unprivileged calls to ``bpf()``, 1527however, an admin can still change this setting later on, if needed, by 1528writing 0 or 1 to this entry. 1529 1530If ``BPF_UNPRIV_DEFAULT_OFF`` is enabled in the kernel config, then this 1531entry will default to 2 instead of 0. 1532 1533= ============================================================= 15340 Unprivileged calls to ``bpf()`` are enabled 15351 Unprivileged calls to ``bpf()`` are disabled without recovery 15362 Unprivileged calls to ``bpf()`` are disabled 1537= ============================================================= 1538 1539 1540warn_limit 1541========== 1542 1543Number of kernel warnings after which the kernel should panic when 1544``panic_on_warn`` is not set. Setting this to 0 disables checking 1545the warning count. Setting this to 1 has the same effect as setting 1546``panic_on_warn=1``. The default value is 0. 1547 1548 1549watchdog 1550======== 1551 1552This parameter can be used to disable or enable the soft lockup detector 1553*and* the NMI watchdog (i.e. the hard lockup detector) at the same time. 1554 1555= ============================== 15560 Disable both lockup detectors. 15571 Enable both lockup detectors. 1558= ============================== 1559 1560The soft lockup detector and the NMI watchdog can also be disabled or 1561enabled individually, using the ``soft_watchdog`` and ``nmi_watchdog`` 1562parameters. 1563If the ``watchdog`` parameter is read, for example by executing:: 1564 1565 cat /proc/sys/kernel/watchdog 1566 1567the output of this command (0 or 1) shows the logical OR of 1568``soft_watchdog`` and ``nmi_watchdog``. 1569 1570 1571watchdog_cpumask 1572================ 1573 1574This value can be used to control on which cpus the watchdog may run. 1575The default cpumask is all possible cores, but if ``NO_HZ_FULL`` is 1576enabled in the kernel config, and cores are specified with the 1577``nohz_full=`` boot argument, those cores are excluded by default. 1578Offline cores can be included in this mask, and if the core is later 1579brought online, the watchdog will be started based on the mask value. 1580 1581Typically this value would only be touched in the ``nohz_full`` case 1582to re-enable cores that by default were not running the watchdog, 1583if a kernel lockup was suspected on those cores. 1584 1585The argument value is the standard cpulist format for cpumasks, 1586so for example to enable the watchdog on cores 0, 2, 3, and 4 you 1587might say:: 1588 1589 echo 0,2-4 > /proc/sys/kernel/watchdog_cpumask 1590 1591 1592watchdog_thresh 1593=============== 1594 1595This value can be used to control the frequency of hrtimer and NMI 1596events and the soft and hard lockup thresholds. The default threshold 1597is 10 seconds. 1598 1599The softlockup threshold is (``2 * watchdog_thresh``). Setting this 1600tunable to zero will disable lockup detection altogether. 1601