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