From: Arnd Bergmann <arnd@xxxxxxxx> Date: Thu, 01 Feb 2024 14:23:33 +0100 > On Thu, Feb 1, 2024, at 13:21, Alexander Lobakin wrote: >> From: Syed Nayyar Waris <syednwaris@xxxxxxxxx> >> >> The two new functions allow reading/writing values of length up to >> BITS_PER_LONG bits at arbitrary position in the bitmap. >> >> The code was taken from "bitops: Introduce the for_each_set_clump macro" >> by Syed Nayyar Waris with a number of changes and simplifications: >> - instead of using roundup(), which adds an unnecessary dependency >> on <linux/math.h>, we calculate space as BITS_PER_LONG-offset; >> - indentation is reduced by not using else-clauses (suggested by >> checkpatch for bitmap_get_value()); >> - bitmap_get_value()/bitmap_set_value() are renamed to bitmap_read() >> and bitmap_write(); >> - some redundant computations are omitted. > > These functions feel like they should not be inline but are > better off in lib/bitmap.c given their length. When their arguments are compile-time constants, they got optimized well. They're also used on hotpath, so making them external could hurt performance + taking the first sentence into account, making them external will hurt the performance even more, 'cause they won't be then as optimized by the compiler as they are now. > > 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. > > Arnd Thanks, Olek