Merge tag 'pidfd-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
Pull pidfd updates from Christian Brauner: "This patchset makes it possible to retrieve pidfds at process creation time by introducing the new flag CLONE_PIDFD to the clone() system call. Linus originally suggested to implement this as a new flag to clone() instead of making it a separate system call. After a thorough review from Oleg CLONE_PIDFD returns pidfds in the parent_tidptr argument. This means we can give back the associated pid and the pidfd at the same time. Access to process metadata information thus becomes rather trivial. As has been agreed, CLONE_PIDFD creates file descriptors based on anonymous inodes similar to the new mount api. They are made unconditional by this patchset as they are now needed by core kernel code (vfs, pidfd) even more than they already were before (timerfd, signalfd, io_uring, epoll etc.). The core patchset is rather small. The bulky looking changelist is caused by David's very simple changes to Kconfig to make anon inodes unconditional. A pidfd comes with additional information in fdinfo if the kernel supports procfs. The fdinfo file contains the pid of the process in the callers pid namespace in the same format as the procfs status file, i.e. "Pid:\t%d". To remove worries about missing metadata access this patchset comes with a sample/test program that illustrates how a combination of CLONE_PIDFD and pidfd_send_signal() can be used to gain race-free access to process metadata through /proc/<pid>. Further work based on this patchset has been done by Joel. His work makes pidfds pollable. It finished too late for this merge window. I would prefer to have it sitting in linux-next for a while and send it for inclusion during the 5.3 merge window" * tag 'pidfd-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: samples: show race-free pidfd metadata access signal: support CLONE_PIDFD with pidfd_send_signal clone: add CLONE_PIDFD Make anon_inodes unconditional
This commit is contained in:
10
init/Kconfig
10
init/Kconfig
@ -1171,9 +1171,6 @@ config LD_DEAD_CODE_DATA_ELIMINATION
|
||||
config SYSCTL
|
||||
bool
|
||||
|
||||
config ANON_INODES
|
||||
bool
|
||||
|
||||
config HAVE_UID16
|
||||
bool
|
||||
|
||||
@ -1378,14 +1375,12 @@ config HAVE_FUTEX_CMPXCHG
|
||||
config EPOLL
|
||||
bool "Enable eventpoll support" if EXPERT
|
||||
default y
|
||||
select ANON_INODES
|
||||
help
|
||||
Disabling this option will cause the kernel to be built without
|
||||
support for epoll family of system calls.
|
||||
|
||||
config SIGNALFD
|
||||
bool "Enable signalfd() system call" if EXPERT
|
||||
select ANON_INODES
|
||||
default y
|
||||
help
|
||||
Enable the signalfd() system call that allows to receive signals
|
||||
@ -1395,7 +1390,6 @@ config SIGNALFD
|
||||
|
||||
config TIMERFD
|
||||
bool "Enable timerfd() system call" if EXPERT
|
||||
select ANON_INODES
|
||||
default y
|
||||
help
|
||||
Enable the timerfd() system call that allows to receive timer
|
||||
@ -1405,7 +1399,6 @@ config TIMERFD
|
||||
|
||||
config EVENTFD
|
||||
bool "Enable eventfd() system call" if EXPERT
|
||||
select ANON_INODES
|
||||
default y
|
||||
help
|
||||
Enable the eventfd() system call that allows to receive both
|
||||
@ -1516,7 +1509,6 @@ config KALLSYMS_BASE_RELATIVE
|
||||
# syscall, maps, verifier
|
||||
config BPF_SYSCALL
|
||||
bool "Enable bpf() system call"
|
||||
select ANON_INODES
|
||||
select BPF
|
||||
select IRQ_WORK
|
||||
default n
|
||||
@ -1533,7 +1525,6 @@ config BPF_JIT_ALWAYS_ON
|
||||
|
||||
config USERFAULTFD
|
||||
bool "Enable userfaultfd() system call"
|
||||
select ANON_INODES
|
||||
depends on MMU
|
||||
help
|
||||
Enable the userfaultfd() system call that allows to intercept and
|
||||
@ -1600,7 +1591,6 @@ config PERF_EVENTS
|
||||
bool "Kernel performance events and counters"
|
||||
default y if PROFILING
|
||||
depends on HAVE_PERF_EVENTS
|
||||
select ANON_INODES
|
||||
select IRQ_WORK
|
||||
select SRCU
|
||||
help
|
||||
|
Reference in New Issue
Block a user