
Now move the relevant codes into separate files: kernel/crash_reserve.c, include/linux/crash_reserve.h. And add config item CRASH_RESERVE to control its enabling. And also update the old ifdeffery of CONFIG_CRASH_CORE, including of <linux/crash_core.h> and config item dependency on CRASH_CORE accordingly. And also do renaming as follows: - arch/xxx/kernel/{crash_core.c => vmcore_info.c} because they are only related to vmcoreinfo exporting on x86, arm64, riscv. And also Remove config item CRASH_CORE, and rely on CONFIG_KEXEC_CORE to decide if build in crash_core.c. [yang.lee@linux.alibaba.com: remove duplicated include in vmcore_info.c] Link: https://lkml.kernel.org/r/20240126005744.16561-1-yang.lee@linux.alibaba.com Link: https://lkml.kernel.org/r/20240124051254.67105-3-bhe@redhat.com Signed-off-by: Baoquan He <bhe@redhat.com> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com> Acked-by: Hari Bathini <hbathini@linux.ibm.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Pingfan Liu <piliu@redhat.com> Cc: Klara Modin <klarasmodin@gmail.com> Cc: Michael Kelley <mhklinux@outlook.com> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Yang Li <yang.lee@linux.alibaba.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
4.1 KiB
SPDX-License-Identifier: GPL-2.0-only
config PROC_FS bool "/proc file system support" if EXPERT default y help This is a virtual file system providing information about the status of the system. "Virtual" means that it doesn't take up any space on your hard disk: the files are created on the fly by the kernel when you try to access them. Also, you cannot read the files with older version of the program less: you need to use more or cat.
It's totally cool; for example, "cat /proc/interrupts" gives
information about what the different IRQs are used for at the moment
(there is a small number of Interrupt ReQuest lines in your computer
that are used by the attached devices to gain the CPU's attention --
often a source of trouble if two devices are mistakenly configured
to use the same IRQ). The program procinfo to display some
information about your system gathered from the /proc file system.
Before you can use the /proc file system, it has to be mounted,
meaning it has to be given a location in the directory hierarchy.
That location should be /proc. A command such as "mount -t proc proc
/proc" or the equivalent line in /etc/fstab does the job.
The /proc file system is explained in the file
<file:Documentation/filesystems/proc.rst> and on the proc(5) manpage
("man 5 proc").
This option will enlarge your kernel by about 67 KB. Several
programs depend on this, so everyone should say Y here.
config PROC_KCORE bool "/proc/kcore support" if !ARM depends on PROC_FS && MMU select VMCORE_INFO help Provides a virtual ELF core file of the live kernel. This can be read with gdb and other ELF tools. No modifications can be made using this mechanism.
config PROC_VMCORE bool "/proc/vmcore support" depends on PROC_FS && CRASH_DUMP default y help Exports the dump image of crashed kernel in ELF format.
config PROC_VMCORE_DEVICE_DUMP bool "Device Hardware/Firmware Log Collection" depends on PROC_VMCORE default n help After kernel panic, device drivers can collect the device specific snapshot of their hardware or firmware before the underlying devices are initialized in crash recovery kernel. Note that the device driver must be present in the crash recovery kernel's initramfs to collect its underlying device snapshot.
If you say Y here, the collected device dumps will be added
as ELF notes to /proc/vmcore. You can still disable device
dump using the kernel command line option 'novmcoredd'.
config PROC_SYSCTL bool "Sysctl support (/proc/sys)" if EXPERT depends on PROC_FS select SYSCTL default y help The sysctl interface provides a means of dynamically changing certain kernel parameters and variables on the fly without requiring a recompile of the kernel or reboot of the system. The primary interface is through /proc/sys. If you say Y here a tree of modifiable sysctl entries will be generated beneath the /proc/sys directory. They are explained in the files in file:Documentation/admin-guide/sysctl/. Note that enabling this option will enlarge the kernel by at least 8 KB.
As it is generally a good thing, you should say Y here unless
building a kernel for install/rescue disks or your system is very
limited in memory.
config PROC_PAGE_MONITOR default y depends on PROC_FS && MMU bool "Enable /proc page monitoring" if EXPERT help Various /proc files exist to monitor process memory utilization: /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap, /proc/kpagecount, and /proc/kpageflags. Disabling these interfaces will reduce the size of the kernel by approximately 4kb.
config PROC_CHILDREN bool "Include /proc//task//children file" depends on PROC_FS default n help Provides a fast way to retrieve first level children pids of a task. See file:Documentation/filesystems/proc.rst for more information.
Say Y if you are running any user-space software which takes benefit from
this interface. For example, rkt is such a piece of software.
config PROC_PID_ARCH_STATUS def_bool n depends on PROC_FS
config PROC_CPU_RESCTRL def_bool n depends on PROC_FS