[PATCH 0/17] exit: complete synchronize_group_exit

Eric W. Biederman posted 17 patches 1 year, 7 months ago
fs/coredump.c                |  25 +++-----
fs/exec.c                    |  14 ++--
fs/proc/array.c              |   3 +
include/linux/sched.h        |   1 +
include/linux/sched/jobctl.h |   2 +
include/linux/sched/signal.h |  11 +++-
kernel/exit.c                |  29 +++------
kernel/ptrace.c              |  12 ++--
kernel/signal.c              | 148 ++++++++++++++++++++++++-------------------
9 files changed, 131 insertions(+), 114 deletions(-)
[PATCH 0/17] exit: complete synchronize_group_exit
Posted by Eric W. Biederman 1 year, 7 months ago
This patchset is against v6.10-rc3

A while ago I was working on the problem of how to allow signals that
trigger coredumps to support short circuit delivery.  Along the way I
wound up developing some code that would make ``process'' exits
triggered by signals, do_exit, or do_group_exit clean.  This patchset is
that code.

The highlights add enough bits to the task_struct to allow task exits to
be scheduled like signal group exits.

Add helpers schedule_task_exit_locked, and schedule_group_exit_locked
so the same code is not repeated in small variations in different parts
of the code, and allowing de_thread to be implemented cleanly.

Eric W. Biederman (17):
      signal: Make SIGKILL during coredumps an explicit special case
      signal: Compute the process exit_code in get_signal
      coredump: Consolidate the work to allow SIGKILL during coredumps
      signal: In get_signal call do_exit when it is unnecessary to shoot down threads
      signal: Bring down all threads when handling a non-coredump fatal signal
      signal: Add JOBCTL_WILL_EXIT to mark exiting tasks
      signal: Always set JOBCTL_WILL_EXIT for exiting tasks
      signal: Don't target tasks that are exiting
      signal: Test for process exit or de_thread using task_exit_pending
      signal: Only set JOBCTL_WILL_EXIT if it is not already set
      signal: Make individual tasks exiting a first class concept
      signal: Remove zap_other_threads
      signal: Stop skipping current in do_group_exit & get_signal
      signal: Factor out schedule_group_exit_locked
      ptrace: Separate task->ptrace_code out from task->exit_code
      signal: Record the exit_code when an exit is scheduled
      signal: Set SIGNAL_GROUP_EXIT when all tasks have decided to exit

 fs/coredump.c                |  25 +++-----
 fs/exec.c                    |  14 ++--
 fs/proc/array.c              |   3 +
 include/linux/sched.h        |   1 +
 include/linux/sched/jobctl.h |   2 +
 include/linux/sched/signal.h |  11 +++-
 kernel/exit.c                |  29 +++------
 kernel/ptrace.c              |  12 ++--
 kernel/signal.c              | 148 ++++++++++++++++++++++++-------------------
 9 files changed, 131 insertions(+), 114 deletions(-)

Eric