]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rseq: Always inline rseq_debug_syscall_return()
authorEric Dumazet <edumazet@google.com>
Fri, 5 Dec 2025 10:07:53 +0000 (10:07 +0000)
committerIngo Molnar <mingo@kernel.org>
Fri, 12 Dec 2025 09:26:26 +0000 (10:26 +0100)
To get the full benefit of:

  eaa9088d568c ("rseq: Use static branch for syscall exit debug when GENERIC_IRQ_ENTRY=y")

clang needs an __always_inline instead of a plain inline qualifier:

$ for i in {1..10}; do taskset -c 4 perf5 bench syscall basic -l 100000000 | grep "ops/sec"; done

 Before      After
ops/sec  15424491    15872221   +2.9%

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://patch.msgid.link/20251205100753.4073221-1-edumazet@google.com
include/linux/rseq_entry.h

index c92167ff8a7fbd1a0771d5a79c71ee8bc4a0f8bf..a36b472627dec83a9a196eb33b83e8d39061ffbe 100644 (file)
@@ -596,7 +596,7 @@ static __always_inline void rseq_exit_to_user_mode_legacy(void)
 
 void __rseq_debug_syscall_return(struct pt_regs *regs);
 
-static inline void rseq_debug_syscall_return(struct pt_regs *regs)
+static __always_inline void rseq_debug_syscall_return(struct pt_regs *regs)
 {
        if (static_branch_unlikely(&rseq_debug_enabled))
                __rseq_debug_syscall_return(regs);