The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: "Eric W. Biederman" <ebiederm@xmission.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	 Andy Lutomirski <luto@kernel.org>,  Kees Cook <kees@kernel.org>,
	 Kusaram Devineni <kusaram@devineni.in>,
	 Peter Zijlstra <peterz@infradead.org>,
	 Thomas Gleixner <tglx@kernel.org>,
	 Will Drewry <wad@chromium.org>,
	linux-kernel@vger.kernel.org,
	 Linus Torvalds <torvalds@linux-foundation.org>,
	Christian Brauner <brauner@kernel.org>
Subject: [PATCH v2 00/14] Short circuit delivery for coredump signals
Date: Fri, 03 Jul 2026 16:35:51 -0500	[thread overview]
Message-ID: <877bnb4uyw.fsf_-_@email.froward.int.ebiederm.org> (raw)
In-Reply-To: <877bnh7tnf.fsf@email.froward.int.ebiederm.org> (Eric W. Biederman's message of "Mon, 29 Jun 2026 01:22:28 -0500")


Oleg's recent patchset tweaking how force_sig_info works has inspired me
to finally push through and update the signal handling to have proper
short circuit deliver for coredump signals.  Everything is just simpler
when coredumps are not such a large special case.

What makes this tricky is coredumps have had their own process
shoot-down logic similar to but separate and different from everything
else in the kernel.  The bulk of this set of changes is merging the
process shoot-down logic that is used for signals and the logic for
coredumps.  So the same process shoot-down logic can be shared.

With the shoot-down logic sorted the rest is quite straight forward.

Oleg when reviewing the first version of this set of changes noticed
that dequeue_exit_signal did not properly handle thread local signal
that trigger a coredump.  To resolve this I have added a few more
cleanups so that I can detect a fatal signal as it is being enqueued
and place it in the shared signal queue.

One of those cleanups is a rewrite of detecting if a signal can be
delivered immediately when sent aka short circuit delivery.  The
processing of signals that will be ignored and signals that will cause a
process to exit without returning to userspace (such as SIGKILL) are
both enhanced.

This set of changes is against v7.2-rc1

 fs/coredump.c                          | 161 +++++++++++++++++----------------
 include/linux/coredump.h               |   4 +
 include/linux/sched/signal.h           |   2 +
 include/linux/sched/task.h             |   1 -
 include/linux/signal_types.h           |   3 -
 include/uapi/asm-generic/signal-defs.h |   1 -
 kernel/exit.c                          |  41 ++-------
 kernel/signal.c                        | 119 +++++++++++++++---------
 mm/oom_kill.c                          |   2 +-
 9 files changed, 171 insertions(+), 163 deletions(-)

Eric W. Biederman (14):
      signal: Generalize posixtimer_queue_sigqueue into enqueue_signal
      signal: Factor out sig_blocked from sig_ignored
      signal: More accurate ignoring of signals based on sig_can_short_circuit
      signal: Use sig_can_short_circuit to improve fatal signal delivery
      signal: Compute the exit_code in get_signal
      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: Move stopping for the coredump from do_exit into get_signal
      signal: Move audit_core_dumps from do_coredump into get_signal
      coredump: In zap_threads complete startup if there is no need to wait
      signal: Use the thread killing in get_signal for coredumps
      exit: Make do_group_exit static
      signal: Dequeue fatal signals
      signal: Short circuit deliver coredump signals

 fs/coredump.c                | 153 ++++++++++++++-------------
 include/linux/coredump.h     |   4 +
 include/linux/sched/signal.h |   2 +
 include/linux/sched/task.h   |   1 -
 kernel/exit.c                |  41 ++------
 kernel/signal.c              | 246 +++++++++++++++++++++++++++++--------------
 mm/oom_kill.c                |   2 +-
 7 files changed, 260 insertions(+), 189 deletions(-)

  parent reply	other threads:[~2026-07-03 21:36 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-19 13:27 [PATCH v2 1/3] signal: change force_sig_info_to_task() to call __send_signal_locked() Oleg Nesterov
2026-06-19 13:27 ` [PATCH v2 2/3] signal: turn the "bool force" arg of __send_signal_locked() into "int flags" Oleg Nesterov
2026-06-19 13:28 ` [PATCH v2 3/3] signal: fix evasion of SA_IMMUTABLE signals Oleg Nesterov
2026-06-26 16:52 ` [PATCH 0/11] Short circuit delivery for coredump signals Eric W. Biederman
2026-06-26 16:54   ` [PATCH 01/11] signal: Compute the exit_code in get_signal Eric W. Biederman
2026-06-26 16:54   ` [PATCH 02/11] signal: In get_signal call do_exit when it is unnecessary to shoot down threads Eric W. Biederman
2026-06-26 16:55   ` [PATCH 03/11] signal: Bring down all threads when handling a non-coredump fatal signal Eric W. Biederman
2026-06-26 16:55   ` [PATCH 04/11] signal: Move stopping for the coredump from do_exit into get_signal Eric W. Biederman
2026-06-26 16:56   ` [PATCH 05/11] signal: Move audit_core_dumps from do_coredump " Eric W. Biederman
2026-06-26 16:57   ` [PATCH 06/11] coredump: In zap_threads complete startup if there is no need to wait Eric W. Biederman
2026-06-26 16:57   ` [PATCH 07/11] signal: Use the thread killing in get_signal for coredumps Eric W. Biederman
2026-06-26 16:58   ` [PATCH 08/11] exit: Make do_group_exit static Eric W. Biederman
2026-06-26 16:59   ` [PATCH 09/11] signal: Dequeue fatal signals Eric W. Biederman
2026-06-26 16:59   ` [PATCH 10/11] signal: Short circuit deliver coredump signals Eric W. Biederman
2026-06-26 17:00   ` [PATCH 11/11] signal: Remove SA_IMMUTABLE Eric W. Biederman
2026-06-28 14:29   ` [PATCH 0/11] Short circuit delivery for coredump signals Oleg Nesterov
2026-06-29  6:22     ` Eric W. Biederman
2026-06-29 17:45       ` Eric W. Biederman
2026-07-02 10:36         ` Oleg Nesterov
2026-07-03 20:16           ` Eric W. Biederman
2026-07-03 21:35       ` Eric W. Biederman [this message]
2026-07-03 21:36         ` [PATCH 01/14] signal: Generalize posixtimer_queue_sigqueue into enqueue_signal Eric W. Biederman
2026-07-03 21:37         ` [PATCH 02/14] signal: Factor out sig_blocked from sig_ignored Eric W. Biederman
2026-07-03 21:37         ` [PATCH 03/14] signal: More accurate ignoring of signals based on sig_can_short_circuit Eric W. Biederman
2026-07-03 21:38         ` [PATCH 04/14] signal: Use sig_can_short_circuit to improve fatal signal delivery Eric W. Biederman
2026-07-03 21:39         ` [PATCH 05/14] signal: Compute the exit_code in get_signal Eric W. Biederman
2026-07-03 21:39         ` Eric W. Biederman
2026-07-03 21:40         ` [PATCH 06/14] signal: In get_signal call do_exit when it is unnecessary to shoot down threads Eric W. Biederman
2026-07-03 21:40         ` [PATCH 07/14] signal: Bring down all threads when handling a non-coredump fatal signal Eric W. Biederman
2026-07-03 21:41         ` [PATCH 08/14] signal: Move stopping for the coredump from do_exit into get_signal Eric W. Biederman
2026-07-03 21:41         ` [PATCH 09/14] signal: Move audit_core_dumps from do_coredump " Eric W. Biederman
2026-07-03 21:42         ` [PATCH 10/14] coredump: In zap_threads complete startup if there is no need to wait Eric W. Biederman
2026-07-03 21:43         ` [PATCH 11/14] signal: Use the thread killing in get_signal for coredumps Eric W. Biederman
2026-07-03 21:43         ` [PATCH 12/14] exit: Make do_group_exit static Eric W. Biederman
2026-07-03 21:44         ` [PATCH 13/14] signal: Dequeue fatal signals Eric W. Biederman
2026-07-03 21:44         ` [PATCH 14/14] signal: Short circuit deliver coredump signals Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877bnb4uyw.fsf_-_@email.froward.int.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=kees@kernel.org \
    --cc=kusaram@devineni.in \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wad@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox