Messages in this thread |  | | From | (Eric W. Biederman) | Date | Tue, 21 Aug 2018 14:59:37 +0200 | Subject | [GIT PULL] signal work for v4.19-rc1 |
| |
Linus,
Please pull the siginfo-linus branch from the git tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git siginfo-linus
HEAD: 84fe4cc09abc1a5ef3a282db3ed10f4d3f1e6a0b signal: Don't send signals to tasks that don't exist
It was observed that a periodic timer in combination with a sufficiently expensive fork could prevent fork from every completing. This branch holds the set of changes to remove the need for that restart.
This set of changes is split into several parts. The first part makes PIDTYPE_TGID a proper pid type instead something only for very special cases. The part starts uses PIDTYPE_TGID enough so that in __send_signal where signals are actually delivered we know if the signal is being sent to a a group of processes or just a single process. With that prep work out of the way the logic in fork is modified so that fork logically makes signals received while it is running appear to be received after the fork completes.
Eric W. Biederman (22): pids: Initialize leader_pid in init_task pids: Move task_pid_type into sched/signal.h pids: Compute task_tgid using signal->leader_pid kvm: Don't open code task_pid in kvm_vcpu_ioctl pids: Move the pgrp and session pid pointers from task_struct to signal_struct pid: Implement PIDTYPE_TGID signal: Use PIDTYPE_TGID to clearly store where file signals will be sent posix-timers: Noralize good_sigevent signal: Pass pid and pid type into send_sigqueue signal: Pass pid type into group_send_sig_info signal: Pass pid type into send_sigio_to_task & send_sigurg_to_task signal: Pass pid type into do_send_sig_info signal: Push pid type down into send_signal signal: Push pid type down into __send_signal signal: Push pid type down into complete_signal. fork: Move and describe why the code examines PIDNS_ADDING fork: Unconditionally exit if a fatal signal is pending signal: Add calculate_sigpending() fork: Skip setting TIF_SIGPENDING in ptrace_init_task fork: Have new threads join on-going signal group stops signal: Don't restart fork when signals come in. signal: Don't send signals to tasks that don't exist
arch/ia64/kernel/asm-offsets.c | 4 +- arch/ia64/kernel/fsys.S | 12 ++--- arch/s390/kernel/perf_cpum_sf.c | 2 +- drivers/net/tun.c | 2 +- drivers/platform/x86/thinkpad_acpi.c | 1 + drivers/tty/sysrq.c | 2 +- drivers/tty/tty_io.c | 2 +- fs/autofs/autofs_i.h | 1 + fs/exec.c | 1 + fs/fcntl.c | 74 ++++++++++++++------------- fs/fuse/file.c | 1 + fs/locks.c | 2 +- fs/notify/dnotify/dnotify.c | 3 +- fs/notify/fanotify/fanotify.c | 1 + include/linux/init_task.h | 9 ---- include/linux/pid.h | 11 +--- include/linux/ptrace.h | 2 - include/linux/sched.h | 31 +++--------- include/linux/sched/signal.h | 49 ++++++++++++++++-- include/linux/signal.h | 6 ++- include/net/scm.h | 1 + init/init_task.c | 13 +++-- kernel/events/core.c | 2 +- kernel/exit.c | 12 ++--- kernel/fork.c | 75 +++++++++++++++++++-------- kernel/pid.c | 42 ++++++++-------- kernel/sched/core.c | 2 + kernel/signal.c | 98 ++++++++++++++++++++++++++---------- kernel/time/itimer.c | 5 +- kernel/time/posix-cpu-timers.c | 2 +- kernel/time/posix-timers.c | 21 ++++---- mm/oom_kill.c | 4 +- virt/kvm/kvm_main.c | 2 +- 33 files changed, 294 insertions(+), 201 deletions(-)
Eric
|  |