Hi, The goal is this patch series is to decouple TWA_SIGNAL based task_work from real signals and signal delivery. The motivation is speeding up TWA_SIGNAL based task_work, particularly for threaded setups where ->sighand is shared across threads. See the last patch for numbers. v4 is nicely reduced, thanks to feedback from Oleg, dropping two of the core patches and resulting in something that is easier to adopt in other archs as well. arch/alpha/kernel/signal.c | 1 - arch/arc/kernel/signal.c | 2 +- arch/arm/kernel/signal.c | 1 - arch/arm64/kernel/signal.c | 1 - arch/c6x/kernel/signal.c | 4 +-- arch/csky/kernel/signal.c | 1 - arch/h8300/kernel/signal.c | 4 +-- arch/hexagon/kernel/process.c | 1 - arch/ia64/kernel/process.c | 2 +- arch/m68k/kernel/signal.c | 2 +- arch/microblaze/kernel/signal.c | 2 +- arch/mips/kernel/signal.c | 1 - arch/nds32/kernel/signal.c | 4 +-- arch/nios2/kernel/signal.c | 2 +- arch/openrisc/kernel/signal.c | 1 - arch/parisc/kernel/signal.c | 4 +-- arch/powerpc/kernel/signal.c | 1 - arch/riscv/kernel/signal.c | 4 +-- arch/s390/kernel/signal.c | 1 - arch/sh/kernel/signal_32.c | 4 +-- arch/sparc/kernel/signal_32.c | 4 +-- arch/sparc/kernel/signal_64.c | 4 +-- arch/um/kernel/process.c | 2 +- arch/x86/include/asm/thread_info.h | 2 ++ arch/x86/kernel/signal.c | 5 +++- arch/xtensa/kernel/signal.c | 2 +- include/linux/entry-common.h | 6 ++++- include/linux/entry-kvm.h | 4 +-- include/linux/sched/signal.h | 20 ++++++++++++--- include/linux/tracehook.h | 31 ++++++++++++++++++++-- kernel/entry/common.c | 3 +-- kernel/entry/kvm.c | 7 ++--- kernel/events/uprobes.c | 2 +- kernel/signal.c | 8 +++--- kernel/task_work.c | 41 +++++++++++++++++++++--------- 35 files changed, 113 insertions(+), 71 deletions(-) Also find the changes here: https://git.kernel.dk/cgit/linux-block/log/?h=tif-task_work Changes since v3: - Drop not needed io_uring change - Drop syscall restart split, handle TIF_NOTIFY_SIGNAL from the arch signal handling, using task_sigpending() to see if we need to care about real signals. - Fix a few over-zelaous task_sigpending() changes - Cleanup WARN_ON() in restore_saved_sigmask_unless() -- Jens Axboe