^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) bool "/proc file system support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) This is a virtual file system providing information about the status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) of the system. "Virtual" means that it doesn't take up any space on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) your hard disk: the files are created on the fly by the kernel when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) you try to access them. Also, you cannot read the files with older
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) version of the program less: you need to use more or cat.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) It's totally cool; for example, "cat /proc/interrupts" gives
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) information about what the different IRQs are used for at the moment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) (there is a small number of Interrupt ReQuest lines in your computer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) that are used by the attached devices to gain the CPU's attention --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) often a source of trouble if two devices are mistakenly configured
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) to use the same IRQ). The program procinfo to display some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) information about your system gathered from the /proc file system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Before you can use the /proc file system, it has to be mounted,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) meaning it has to be given a location in the directory hierarchy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) That location should be /proc. A command such as "mount -t proc proc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) /proc" or the equivalent line in /etc/fstab does the job.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) The /proc file system is explained in the file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) <file:Documentation/filesystems/proc.rst> and on the proc(5) manpage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ("man 5 proc").
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) This option will enlarge your kernel by about 67 KB. Several
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) programs depend on this, so everyone should say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) config PROC_KCORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) bool "/proc/kcore support" if !ARM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) depends on PROC_FS && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) select CRASH_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Provides a virtual ELF core file of the live kernel. This can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) be read with gdb and other ELF tools. No modifications can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) made using this mechanism.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) config PROC_VMCORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) bool "/proc/vmcore support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) depends on PROC_FS && CRASH_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) Exports the dump image of crashed kernel in ELF format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) config PROC_VMCORE_DEVICE_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) bool "Device Hardware/Firmware Log Collection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) depends on PROC_VMCORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) After kernel panic, device drivers can collect the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) specific snapshot of their hardware or firmware before the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) underlying devices are initialized in crash recovery kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) Note that the device driver must be present in the crash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) recovery kernel's initramfs to collect its underlying device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) snapshot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) If you say Y here, the collected device dumps will be added
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) as ELF notes to /proc/vmcore. You can still disable device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) dump using the kernel command line option 'novmcoredd'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) config PROC_SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) bool "Sysctl support (/proc/sys)" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) depends on PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) select SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) The sysctl interface provides a means of dynamically changing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) certain kernel parameters and variables on the fly without requiring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) a recompile of the kernel or reboot of the system. The primary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) interface is through /proc/sys. If you say Y here a tree of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) modifiable sysctl entries will be generated beneath the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) /proc/sys directory. They are explained in the files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) in <file:Documentation/admin-guide/sysctl/>. Note that enabling this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) option will enlarge the kernel by at least 8 KB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) As it is generally a good thing, you should say Y here unless
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) building a kernel for install/rescue disks or your system is very
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) limited in memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) config PROC_PAGE_MONITOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) depends on PROC_FS && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) bool "Enable /proc page monitoring" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) Various /proc files exist to monitor process memory utilization:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) /proc/kpagecount, and /proc/kpageflags. Disabling these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) interfaces will reduce the size of the kernel by approximately 4kb.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) config PROC_CHILDREN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) bool "Include /proc/<pid>/task/<tid>/children file"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) Provides a fast way to retrieve first level children pids of a task. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) <file:Documentation/filesystems/proc.rst> for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Say Y if you are running any user-space software which takes benefit from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) this interface. For example, rkt is such a piece of software.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) config PROC_PID_ARCH_STATUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) depends on PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) config PROC_CPU_RESCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) depends on PROC_FS