From 203dda8a636c46efa6d2b7587507c9a503668aaa Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 8 Oct 2020 22:34:34 +0000 Subject: [PATCH] sig_intr(9): return early if AST is not scheduled. Check td_flags for relevant AST requests lock-less. This opens the race slightly wider where sig_intr() returns false negative, but might be it is worth it. Requested by: mjg Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/kern/kern_sig.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 8108d4cb3a5..ed4dd52b66d 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -3212,6 +3212,9 @@ sig_intr(void) int ret; td = curthread; + if ((td->td_flags & (TDF_NEEDSIGCHK | TDF_NEEDSUSPCHK)) == 0) + return (0); + p = td->td_proc; PROC_LOCK(p);