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