[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87o77xinmt.fsf_-_@email.froward.int.ebiederm.org>
Date: Tue, 18 Jun 2024 23:04:42 -0500
From: "Eric W. Biederman" <ebiederm@...ssion.com>
To: Oleg Nesterov <oleg@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, Tejun Heo <tj@...nel.org>,
linux-kernel@...r.kernel.org
Subject: [PATCH 0/17] exit: complete synchronize_group_exit
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
Powered by blists - more mailing lists