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. 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 | 7 +++-- arch/xtensa/kernel/signal.c | 2 +- include/linux/entry-common.h | 9 +++++-- include/linux/entry-kvm.h | 4 +-- include/linux/sched/signal.h | 20 ++++++++++++--- include/linux/tracehook.h | 31 ++++++++++++++++++++-- kernel/entry/common.c | 7 +++-- kernel/entry/kvm.c | 7 ++--- kernel/events/uprobes.c | 2 +- kernel/signal.c | 8 +++--- kernel/task_work.c | 41 +++++++++++++++++++++--------- 35 files changed, 118 insertions(+), 75 deletions(-) Changes since v4: - Change ifdef as per Thomas - Split x86 change from generic entry code - Pass in TIF flags for arch_do_signal() to avoid doing multiple bit tests -- Jens Axboe