]> www.infradead.org Git - users/jedix/linux-maple.git/commit
signal: avoid clearing TIF_SIGPENDING in recalc_sigpending() if unset
authorMateusz Guzik <mjguzik@gmail.com>
Mon, 3 Mar 2025 13:49:08 +0000 (14:49 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 19:16:59 +0000 (12:16 -0700)
commit8a56f26607418ab517476de4a27e38be51f6fbca
treeca89376e85b3ce92c77921122c940eeae7eb1e36
parente0349c46cb4fbbb507fa34476bd70f9c82bad359
signal: avoid clearing TIF_SIGPENDING in recalc_sigpending() if unset

Clearing is an atomic op and the flag is not set most of the time.

When creating and destroying threads in the same process with the pthread
family, the primary bottleneck is calls to sigprocmask which take the
process-wide sighand lock.

Avoiding the atomic gives me a 2% bump in start/teardown rate at 24-core
scale.

[akpm@linux-foundation.org: add unlikely() as well]
Link: https://lkml.kernel.org/r/20250303134908.423242-1-mjguzik@gmail.com
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/signal.c