Patch "arm: add support for TIF_NOTIFY_SIGNAL" has been added to the 5.10-stable tree

Russell King (Oracle) linux at armlinux.org.uk
Tue Jan 3 02:37:22 PST 2023


Hi Greg,

Probably not a good idea to pick this up just yet - there's been a
report of a performance regression due to this patch.

Not sure why you're picking it up anyway?

Thanks.

On Tue, Jan 03, 2023 at 08:36:24AM +0100, gregkh at linuxfoundation.org wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     arm: add support for TIF_NOTIFY_SIGNAL
> 
> to the 5.10-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      arm-add-support-for-tif_notify_signal.patch
> and it can be found in the queue-5.10 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable at vger.kernel.org> know about it.
> 
> 
> From 4548cba5ff2a7b81495b7c109b48972655715142 Mon Sep 17 00:00:00 2001
> From: Jens Axboe <axboe at kernel.dk>
> Date: Fri, 9 Oct 2020 16:00:49 -0600
> Subject: arm: add support for TIF_NOTIFY_SIGNAL
> 
> From: Jens Axboe <axboe at kernel.dk>
> 
> [ Upstream commit 32d59773da38cd83e497a70eb9754d4bbae3aeae ]
> 
> Wire up TIF_NOTIFY_SIGNAL handling for arm.
> 
> Cc: linux-arm-kernel at lists.infradead.org
> Acked-by: Russell King <rmk+kernel at armlinux.org.uk>
> Signed-off-by: Jens Axboe <axboe at kernel.dk>
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> ---
>  arch/arm/include/asm/thread_info.h |    7 ++++++-
>  arch/arm/kernel/entry-common.S     |    6 +++---
>  arch/arm/kernel/entry-v7m.S        |    2 +-
>  arch/arm/kernel/signal.c           |    2 +-
>  4 files changed, 11 insertions(+), 6 deletions(-)
> 
> --- a/arch/arm/include/asm/thread_info.h
> +++ b/arch/arm/include/asm/thread_info.h
> @@ -126,6 +126,8 @@ extern int vfp_restore_user_hwstate(stru
>   * thread information flags:
>   *  TIF_USEDFPU		- FPU was used by this task this quantum (SMP)
>   *  TIF_POLLING_NRFLAG	- true if poll_idle() is polling TIF_NEED_RESCHED
> + *
> + * Any bit in the range of 0..15 will cause do_work_pending() to be invoked.
>   */
>  #define TIF_SIGPENDING		0	/* signal pending */
>  #define TIF_NEED_RESCHED	1	/* rescheduling necessary */
> @@ -135,6 +137,7 @@ extern int vfp_restore_user_hwstate(stru
>  #define TIF_SYSCALL_AUDIT	5	/* syscall auditing active */
>  #define TIF_SYSCALL_TRACEPOINT	6	/* syscall tracepoint instrumentation */
>  #define TIF_SECCOMP		7	/* seccomp syscall filtering active */
> +#define TIF_NOTIFY_SIGNAL	8	/* signal notifications exist */
>  
>  #define TIF_USING_IWMMXT	17
>  #define TIF_MEMDIE		18	/* is terminating due to OOM killer */
> @@ -148,6 +151,7 @@ extern int vfp_restore_user_hwstate(stru
>  #define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT)
>  #define _TIF_SYSCALL_TRACEPOINT	(1 << TIF_SYSCALL_TRACEPOINT)
>  #define _TIF_SECCOMP		(1 << TIF_SECCOMP)
> +#define _TIF_NOTIFY_SIGNAL	(1 << TIF_NOTIFY_SIGNAL)
>  #define _TIF_USING_IWMMXT	(1 << TIF_USING_IWMMXT)
>  
>  /* Checks for any syscall work in entry-common.S */
> @@ -158,7 +162,8 @@ extern int vfp_restore_user_hwstate(stru
>   * Change these and you break ASM code in entry-common.S
>   */
>  #define _TIF_WORK_MASK		(_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
> -				 _TIF_NOTIFY_RESUME | _TIF_UPROBE)
> +				 _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
> +				 _TIF_NOTIFY_SIGNAL)
>  
>  #endif /* __KERNEL__ */
>  #endif /* __ASM_ARM_THREAD_INFO_H */
> --- a/arch/arm/kernel/entry-common.S
> +++ b/arch/arm/kernel/entry-common.S
> @@ -53,7 +53,7 @@ __ret_fast_syscall:
>  	cmp	r2, #TASK_SIZE
>  	blne	addr_limit_check_failed
>  	ldr	r1, [tsk, #TI_FLAGS]		@ re-check for syscall tracing
> -	tst	r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
> +	movs	r1, r1, lsl #16
>  	bne	fast_work_pending
>  
>  
> @@ -90,7 +90,7 @@ __ret_fast_syscall:
>  	cmp	r2, #TASK_SIZE
>  	blne	addr_limit_check_failed
>  	ldr	r1, [tsk, #TI_FLAGS]		@ re-check for syscall tracing
> -	tst	r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
> +	movs	r1, r1, lsl #16
>  	beq	no_work_pending
>   UNWIND(.fnend		)
>  ENDPROC(ret_fast_syscall)
> @@ -131,7 +131,7 @@ ENTRY(ret_to_user_from_irq)
>  	cmp	r2, #TASK_SIZE
>  	blne	addr_limit_check_failed
>  	ldr	r1, [tsk, #TI_FLAGS]
> -	tst	r1, #_TIF_WORK_MASK
> +	movs	r1, r1, lsl #16
>  	bne	slow_work_pending
>  no_work_pending:
>  	asm_trace_hardirqs_on save = 0
> --- a/arch/arm/kernel/entry-v7m.S
> +++ b/arch/arm/kernel/entry-v7m.S
> @@ -59,7 +59,7 @@ __irq_entry:
>  
>  	get_thread_info tsk
>  	ldr	r2, [tsk, #TI_FLAGS]
> -	tst	r2, #_TIF_WORK_MASK
> +	movs	r2, r2, lsl #16
>  	beq	2f			@ no work pending
>  	mov	r0, #V7M_SCB_ICSR_PENDSVSET
>  	str	r0, [r1, V7M_SCB_ICSR]	@ raise PendSV
> --- a/arch/arm/kernel/signal.c
> +++ b/arch/arm/kernel/signal.c
> @@ -655,7 +655,7 @@ do_work_pending(struct pt_regs *regs, un
>  			if (unlikely(!user_mode(regs)))
>  				return 0;
>  			local_irq_enable();
> -			if (thread_flags & _TIF_SIGPENDING) {
> +			if (thread_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) {
>  				int restart = do_signal(regs, syscall);
>  				if (unlikely(restart)) {
>  					/*
> 
> 
> Patches currently in stable-queue which might be from axboe at kernel.dk are
> 
> queue-5.10/x86-process-setup-io_threads-more-like-normal-user-space-threads.patch
> queue-5.10/powerpc-add-support-for-tif_notify_signal.patch
> queue-5.10/eventfd-provide-a-eventfd_signal_mask-helper.patch
> queue-5.10/fs-provide-locked-helper-variant-of-close_fd_get_file.patch
> queue-5.10/relay-fix-type-mismatch-when-allocating-memory-in-re.patch
> queue-5.10/eventfd-change-int-to-__u64-in-eventfd_signal-ifndef.patch
> queue-5.10/io_uring-pass-in-epoll_uring_wake-for-eventfd-signaling-and-wakeups.patch
> queue-5.10/blk-mq-fix-possible-memleak-when-register-hctx-faile.patch
> queue-5.10/fix-handling-of-nd-depth-on-lookup_cached-failures-in-try_to_unlazy.patch
> queue-5.10/net-provide-__sys_shutdown_sock-that-takes-a-socket.patch
> queue-5.10/task_work-unconditionally-run-task_work-from-get_signal.patch
> queue-5.10/openrisc-add-support-for-tif_notify_signal.patch
> queue-5.10/signal-add-task_sigpending-helper.patch
> queue-5.10/net-remove-cmsg-restriction-from-io_uring-based-send-recvmsg-calls.patch
> queue-5.10/alpha-add-support-for-tif_notify_signal.patch
> queue-5.10/nios32-add-support-for-tif_notify_signal.patch
> queue-5.10/ia64-don-t-call-handle_signal-unless-there-s-actually-a-signal-queued.patch
> queue-5.10/task_work-remove-legacy-twa_signal-path.patch
> queue-5.10/revert-proc-don-t-allow-async-path-resolution-of-proc-self-components.patch
> queue-5.10/m68k-add-support-for-tif_notify_signal.patch
> queue-5.10/s390-add-support-for-tif_notify_signal.patch
> queue-5.10/um-add-support-for-tif_notify_signal.patch
> queue-5.10/tools-headers-uapi-sync-openat2.h-with-the-kernel-sources.patch
> queue-5.10/kernel-provide-create_io_thread-helper.patch
> queue-5.10/iov_iter-add-helper-to-save-iov_iter-state.patch
> queue-5.10/arc-unbork-5.11-bootup-fix-snafu-in-_tif_notify_signal-handling.patch
> queue-5.10/arch-ensure-parisc-powerpc-handle-pf_io_worker-in-copy_thread.patch
> queue-5.10/csky-add-support-for-tif_notify_signal.patch
> queue-5.10/arm-add-support-for-tif_notify_signal.patch
> queue-5.10/kernel-stop-masking-signals-in-create_io_thread.patch
> queue-5.10/fs-expose-lookup_cached-through-openat2-resolve_cached.patch
> queue-5.10/task_work-add-helper-for-more-targeted-task_work-canceling.patch
> queue-5.10/nds32-add-support-for-tif_notify_signal.patch
> queue-5.10/signal-kill-jobctl_task_work.patch
> queue-5.10/hexagon-add-support-for-tif_notify_signal.patch
> queue-5.10/sh-add-support-for-tif_notify_signal.patch
> queue-5.10/riscv-add-support-for-tif_notify_signal.patch
> queue-5.10/h8300-add-support-for-tif_notify_signal.patch
> queue-5.10/io_uring-import-5.15-stable-io_uring.patch
> queue-5.10/sparc-add-support-for-tif_notify_signal.patch
> queue-5.10/blktrace-fix-output-non-blktrace-event-when-blk_clas.patch
> queue-5.10/eventpoll-add-epoll_uring_wake-poll-wakeup-flag.patch
> queue-5.10/parisc-add-support-for-tif_notify_signal.patch
> queue-5.10/entry-add-support-for-tif_notify_signal.patch
> queue-5.10/x86-wire-up-tif_notify_signal.patch
> queue-5.10/task_work-use-tif_notify_signal-if-available.patch
> queue-5.10/drbd-fix-an-invalid-memory-access-caused-by-incorrec.patch
> queue-5.10/kernel-don-t-call-do_exit-for-pf_io_worker-threads.patch
> queue-5.10/kernel-allow-fork-with-tif_notify_signal-pending.patch
> queue-5.10/pata_ipx4xx_cf-fix-unsigned-comparison-with-less-tha.patch
> queue-5.10/mips-add-support-for-tif_notify_signal.patch
> queue-5.10/xtensa-add-support-for-tif_notify_signal.patch
> queue-5.10/c6x-add-support-for-tif_notify_signal.patch
> queue-5.10/microblaze-add-support-for-tif_notify_signal.patch
> queue-5.10/net-add-accept-helper-not-installing-fd.patch
> queue-5.10/ia64-add-support-for-tif_notify_signal.patch
> queue-5.10/arm64-add-support-for-tif_notify_signal.patch
> queue-5.10/arc-add-support-for-tif_notify_signal.patch
> queue-5.10/revert-proc-don-t-allow-async-path-resolution-of-proc-thread-self-components.patch
> queue-5.10/fs-make-do_renameat2-take-struct-filename.patch
> queue-5.10/kernel-remove-checking-for-tif_notify_signal.patch
> queue-5.10/arch-setup-pf_io_worker-threads-like-pf_kthread.patch
> queue-5.10/nvme-pci-fix-mempool-alloc-size.patch
> queue-5.10/fs-add-support-for-lookup_cached.patch
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!



More information about the linux-arm-kernel mailing list