[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250208190600.18075c88@pumpkin>
Date: Sat, 8 Feb 2025 19:06:00 +0000
From: David Laight <david.laight.linux@...il.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Al Viro <viro@...iv.linux.org.uk>, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org, Christian Brauner <brauner@...nel.org>, Jan
Kara <jack@...e.cz>
Subject: Re: [PATCH next 1/1] fs: Mark get_sigset_argpack() __always_inline
On Sat, 8 Feb 2025 10:53:38 -0800
Linus Torvalds <torvalds@...ux-foundation.org> wrote:
> On Sat, 8 Feb 2025 at 07:14, David Laight <david.laight.linux@...il.com> wrote:
> >
> > Since the function is 'hot enough' to worry about avoiding the
> > overhead of copy_from_user() it must be worth forcing it to be
> > inlined.
>
> Hmm. gcc certainly inlines this one for me regardless.
>
> So it's either a gcc version issue (I have gcc-14.2.1), or it's some
> build configuration thing that makes the function big enough in your
> case that gcc decides not to inline things. Do you perhaps have some
> debugging options enabled? At that point, inlining is the least of all
> problems.
gcc 12.2.0 (from debian) - so not THAT old.
clang 18 does inline it.
I've turned off pretty much everything (except page table separation).
And there isn't much unexpected in the object code.
Can the 'alternatives' be flipped so the .o doesn't contain loads of nops?
It'd be nice to see the clac and lfence.
David
Powered by blists - more mailing lists