Thread (52 messages) 52 messages, 8 authors, 2024-04-02

Re: [PATCH net-next v5 01/21] lib/bitmap: add bitmap_{read,write}()

From: Yury Norov <yury.norov@gmail.com>
Date: 2024-02-28 16:11:01
Also in: intel-wired-lan, linux-btrfs, linux-s390, lkml, ntfs3

On Thu, Feb 01, 2024 at 03:02:50PM +0100, Arnd Bergmann wrote:
On Thu, Feb 1, 2024, at 14:45, Alexander Potapenko wrote:
quoted
On Thu, Feb 1, 2024 at 2:23 PM Arnd Bergmann [off-list ref] wrote:
quoted
On Thu, Feb 1, 2024, at 13:21, Alexander Lobakin wrote:

As far as I can tell, the header ends up being included
indirectly almost everywhere, so just parsing these functions
likey adds not just dependencies but also compile time.
Removing particular functions from a header to reduce compilation time
does not really scale.
Do we know this case has a noticeable impact on the compilation time?
If yes, maybe we need to tackle this problem in a different way (e.g.
reduce the number of dependencies on it)?
Cleaning up the header dependencies is definitely possible in
theory, and there are other places we could start this, but
it's also a multi-year effort that several people have tried
without much success.

All I'm asking here is to not make it worse by adding this
one without need. If the function is not normally inlined
anyway, there is no benefit to having it in the header.

      Arnd
Hi Arnd,

I think Alexander has shown that the functions are normally inlined.
If for some target that doesn't hold, we'd use __always_inline.

They are very lightweight by nature - one or at max two word fetches
followed by some shifting. We spent quite some cycles making sure
that the generated code looks efficient, at least not worse than the
existing bitmap_{get,set}_value8(), which is a special case of the
bitmap_{read,write}.

I agree that bitmap header is overwhelmed (like many other kernel
headers), and I'm working on unloading it.

I checked allyesconfig build time before and after this patch, and
I found no difference for me. So if you're concerned about compilation
time, this patch doesn't make things worse in this department.

With all that, Alexander, can you please double-check that the
functions get inlined, and if so:

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help