[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <877em2jxyr.fsf_-_@xmission.com>
Date: Tue, 10 Jul 2018 21:41:16 -0500
From: ebiederm@...ssion.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Oleg Nesterov <oleg@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
<linux-kernel@...r.kernel.org>, Wen Yang <wen.yang99@....com.cn>,
majiang <ma.jiang@....com.cn>
Subject: [RFC][PATCH 0/11] PIDTYPE_TGID and fewer fork restarts
The following patches should be close. I took some patches I haven't
taken the time to merge yet that make PIDTYPE_TGID not a hack.
Updated the code that deals with signals to handle PIDTYPE_TGID.
Pushed the pid type down from the signal senders all of the way
down into __send_signal. That work could probably use being
split into more than one patch for readability, but it seems
reasonble and less of a hack than the "bool group" we have
currently.
I think I have gotten all of the places we send signals to multiple
processes. But I have yet to make an exhaustive examination. I would
appreciate some review feedback before I burn a day doing that.
All in all this changes a little more than I might hope for but it seems
a nicely targted cleanup that sorts out the fork issue.
Comments please.
I think I am 99% of the way to solving this cleanly but any feedback would
be very appreciated.
Thank you in advance.
Eric W. Biederman (11):
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: Deliver group signals via PIDTYPE_TGID not PIDTYPE_PID
signal: Use PIDTYPE_TGID to clearly store where file signals will be sent
tty_io: Use do_send_sig_info in __do_SACK to forcibly kill tasks
signal: Push pid type from signal senders down into __send_signal
signal: Ignore all but multi-process signals that come in during fork.
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 | 10 +++---
fs/autofs/autofs_i.h | 1 +
fs/exec.c | 1 +
fs/fcntl.c | 38 ++++++++--------------
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/sched.h | 31 ++++--------------
include/linux/sched/signal.h | 39 +++++++++++++++++++++--
include/linux/signal.h | 6 ++--
include/net/scm.h | 1 +
include/trace/events/signal.h | 12 +++----
init/init_task.c | 12 ++++---
kernel/events/core.c | 2 +-
kernel/exit.c | 12 ++-----
kernel/fork.c | 45 +++++++++++++++++++++-----
kernel/pid.c | 42 ++++++++++++-------------
kernel/signal.c | 61 ++++++++++++++++++++----------------
kernel/time/itimer.c | 5 +--
kernel/time/posix-cpu-timers.c | 2 +-
kernel/time/posix-timers.c | 13 +++-----
mm/oom_kill.c | 4 +--
virt/kvm/kvm_main.c | 2 +-
32 files changed, 205 insertions(+), 184 deletions(-)
Powered by blists - more mailing lists