mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-03 06:36:39 +07:00
2e13ba54a2
Commit 818411616b
("fs, proc: introduce /proc/<pid>/task/<tid>/children
entry") introduced the children entry for checkpoint restore and the
file is only available on kernels configured with CONFIG_EXPERT and
CONFIG_CHECKPOINT_RESTORE.
This is available in most distributions (Fedora, Debian, Ubuntu, CoreOS)
because they usually enable CONFIG_EXPERT and CONFIG_CHECKPOINT_RESTORE.
But Arch does not enable CONFIG_EXPERT or CONFIG_CHECKPOINT_RESTORE.
However, the children proc file is useful outside of checkpoint restore.
I would like to use it in rkt. The rkt process exec() another program
it does not control, and that other program will fork()+exec() a child
process. I would like to find the pid of the child process from an
external tool without iterating in /proc over all processes to find
which one has a parent pid equal to rkt.
This commit introduces CONFIG_PROC_CHILDREN and makes
CONFIG_CHECKPOINT_RESTORE select it. This allows enabling
/proc/<pid>/task/<tid>/children without needing to enable
CONFIG_CHECKPOINT_RESTORE and CONFIG_EXPERT.
Alban tested that /proc/<pid>/task/<tid>/children is present when the
kernel is configured with CONFIG_PROC_CHILDREN=y but without
CONFIG_CHECKPOINT_RESTORE
Signed-off-by: Iago López Galeiras <iago@endocode.com>
Tested-by: Alban Crequy <alban@endocode.com>
Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Serge Hallyn <serge.hallyn@canonical.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Djalal Harouni <djalal@endocode.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
78 lines
3.0 KiB
Plaintext
78 lines
3.0 KiB
Plaintext
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.txt> 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
|
|
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_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/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/<pid>/task/<tid>/children file"
|
|
default n
|