Re: [PATCH] entry: always inline local_irq_{enable,disable}_exit_to_user()

From: Eric Dumazet

Date: Fri Dec 05 2025 - 05:54:40 EST


On Fri, Dec 5, 2025 at 2:51 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Thu, Dec 04, 2025 at 03:31:27PM +0000, Eric Dumazet wrote:
> > clang needs __always_inline instead of inline, even for tiny helpers.
> >
> > This saves some cycles in system call fast path, and saves 195 bytes
> > on x86_64 build:
> >
> > $ size vmlinux.before vmlinux.after
> > text data bss dec hex filename
> > 34652814 22291961 5875180 62819955 3be8e73 vmlinux.before
> > 34652619 22291961 5875180 62819760 3be8db0 vmlinux.after
> >
> > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
>
> Yeah, sometimes these inline heuristics drive me mad. I've picked up
> this and the rseq one. I'll do something with them after rc1.

Thanks Peter.

I forgot to include perf numbers for this one, but apparently having a
local_irq_enable()
in an out-of-line function in syscall path was adding a 5 % penalty on
some platforms.

Crazy...