From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out02.mta.xmission.com (out02.mta.xmission.com [166.70.13.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20B2D2C9D for ; Fri, 3 Jul 2026 21:40:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=166.70.13.232 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783114833; cv=none; b=c1f0KC3R2mndzyqVBurDX30yg+jhQ/LN1g0bGcLhLf/8NlC1I5YvXQDsW44/p66KqJJaoCK4RXR561ly0POVcpyRpl/wgSGPzQw8AxWn+frW7/EPoPteEdm3+pIjtO90qeTXNayFDLdIhQakWWAAJY6XlHEjTBn8qkFNHsPXTo0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783114833; c=relaxed/simple; bh=LqJeG2+1lE1hC3rzV0yIHC9GavSKlHJV7krJcx0mXjw=; h=From:To:Cc:In-Reply-To:References:Date:Message-ID:MIME-Version: Content-Type:Subject; b=NtMVt3lvUtsmTf6VmU5JHiSGGsqghTtYvet6/Q635DFxrFl2qOuwGFYKQe2EEAfa5xLipUo8Wb+4khAFKKCoTlu65myJiH7zkJZUiS1yzZeGFjBuUR5yq3VZFWDHBuFERf88q7ctlnHRLXGlxI6Sl/Eb9rJjxyXbREZDTffCZ8A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=xmission.com; spf=pass smtp.mailfrom=xmission.com; dkim=pass (1024-bit key) header.d=xmission.com header.i=@xmission.com header.b=nn5wA7SZ; arc=none smtp.client-ip=166.70.13.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=xmission.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xmission.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=xmission.com header.i=@xmission.com header.b="nn5wA7SZ" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=simple/simple; d=xmission.com; s=xmission; h=Subject:Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=LqJeG2+1lE1hC3rzV0yIHC9GavSKlHJV7krJcx0mXjw=; b=nn5wA7SZCelNhZV98TqZU/xWB1 JOssruPHebTw0uu4pEkKa6IV9RoF7kmceQBGBy5YmxrpX1s0FnLnhpiJxp/SGBlkCJIauF6XrDh9k pGLXaZehtbh25z5Cn+hy3Vd19Y1fdm2jmQngv8KoekSBiePdJ8SPdzChC805aNXKxZB0=; Received: from in01.mta.xmission.com ([166.70.13.51]:42064) by out02.mta.xmission.com with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1wflcd-003GBs-DO; Fri, 03 Jul 2026 15:40:31 -0600 Received: from ip72-198-198-28.om.om.cox.net ([72.198.198.28]:47936 helo=email.froward.int.ebiederm.org.xmission.com) by in01.mta.xmission.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1wflcc-00DmK8-LQ; Fri, 03 Jul 2026 15:40:31 -0600 From: "Eric W. Biederman" To: Oleg Nesterov Cc: Andrew Morton , Andy Lutomirski , Kees Cook , Kusaram Devineni , Peter Zijlstra , Thomas Gleixner , Will Drewry , linux-kernel@vger.kernel.org, Linus Torvalds , Christian Brauner In-Reply-To: <877bnb4uyw.fsf_-_@email.froward.int.ebiederm.org> (Eric W. Biederman's message of "Fri, 03 Jul 2026 16:35:51 -0500") References: <87o6gx9rc4.fsf@email.froward.int.ebiederm.org> <877bnh7tnf.fsf@email.froward.int.ebiederm.org> <877bnb4uyw.fsf_-_@email.froward.int.ebiederm.org> Date: Fri, 03 Jul 2026 16:40:25 -0500 Message-ID: <87wlvb21me.fsf_-_@email.froward.int.ebiederm.org> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1wflcc-00DmK8-LQ;;;mid=<87wlvb21me.fsf_-_@email.froward.int.ebiederm.org>;;;hst=in01.mta.xmission.com;;;ip=72.198.198.28;;;frm=ebiederm@xmission.com;;;sPfnum=0;;;sPf=pass X-XM-AID: U2FsdGVkX1/wBkRNoIDBzDEOIDnEd2UPjItPmiRRWjc= X-Spam-Level: * X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP * 0.1 BAYES_50 BODY: Bayes spam probability is 40 to 60% * [score: 0.5001] * 0.7 XMSubLong Long Subject * 1.5 XMNoVowels Alpha-numberic number with no vowels * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa06 1397; Body=1 Fuz1=1 Fuz2=39] * 0.0 T_TooManySym_01 4+ unique symbols in subject X-Spam-DCC: XMission; sa06 1397; Body=1 Fuz1=1 Fuz2=39 X-Spam-Combo: *;Oleg Nesterov X-Spam-Relay-Country: X-Spam-Timing: total 319 ms - load_scoreonly_sql: 0.03 (0.0%), signal_user_changed: 10 (3.3%), b_tie_ro: 9 (2.9%), parse: 0.82 (0.3%), extract_message_metadata: 11 (3.4%), get_uri_detail_list: 1.05 (0.3%), tests_pri_-2000: 13 (4.0%), tests_pri_-1000: 2.7 (0.8%), tests_pri_-950: 1.18 (0.4%), tests_pri_-900: 0.99 (0.3%), tests_pri_-90: 49 (15.4%), check_bayes: 48 (15.0%), b_tokenize: 6 (1.9%), b_tok_get_all: 5 (1.7%), b_comp_prob: 1.56 (0.5%), b_tok_touch_all: 31 (9.9%), b_finish: 0.91 (0.3%), tests_pri_0: 216 (67.8%), check_dkim_signature: 0.48 (0.2%), check_dkim_adsp: 2.4 (0.8%), poll_dns_idle: 0.72 (0.2%), tests_pri_10: 2.6 (0.8%), tests_pri_500: 8 (2.7%), rewrite_mail: 0.00 (0.0%) Subject: [PATCH 07/14] signal: Bring down all threads when handling a non-coredump fatal signal X-SA-Exim-Connect-IP: 166.70.13.51 X-SA-Exim-Rcpt-To: brauner@kernel.org, torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, wad@chromium.org, tglx@kernel.org, peterz@infradead.org, kusaram@devineni.in, kees@kernel.org, luto@kernel.org, akpm@linux-foundation.org, oleg@redhat.com X-SA-Exim-Mail-From: ebiederm@xmission.com X-SA-Exim-Scanned: No (on out02.mta.xmission.com); SAEximRunCond expanded to false For non-coredump fatal signals instead of dropping and reacquiring siglock to shoot down the other threads from do_group_exit at the end of get_signal, shoot down the other threads before siglock is dropped. This can not be done for coredump signals yet, because do_coredump needs to be in a position to catch dying threads before it kills them so it can make certain to catch them, so they can be added to the coredump. Signed-off-by: "Eric W. Biederman" --- kernel/signal.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/kernel/signal.c b/kernel/signal.c index 94662010ab4c..5ed3a02542ad 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3049,7 +3049,21 @@ bool get_signal(struct ksignal *ksig) * Anything else is fatal, maybe with a core dump. */ exit_code = signr; - group_exit_needed = true; + if (sig_kernel_coredump(signr)) + group_exit_needed = true; + else { + struct task_struct *t; + signal->flags = SIGNAL_GROUP_EXIT; + signal->group_exit_code = signr; + signal->group_stop_count = 0; + __for_each_thread(signal, t) { + task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); + if (t != current) { + sigaddset(&t->pending.signal, SIGKILL); + signal_wake_up(t, 1); + } + } + } fatal: spin_unlock_irq(&sighand->siglock); if (unlikely(cgroup_task_frozen(current))) -- 2.41.0