Message ID | 20210129204528.2118168-1-yury.norov@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | lib/find_bit: fast path for small bitmaps | expand |
On Fri, Jan 29, 2021 at 12:45 PM Yury Norov <yury.norov@gmail.com> wrote: > > Bitmap operations are much simpler and faster in case of small bitmaps, whicn > fit into a single word. In linux/bitmap.h we have a machinery that allows > compiler to replace actual function call with a few instructions if bitmaps > passed into the function is small and its size is known at compile time. > > find_*_bit() API lacks this functionality; despite users will benefit from it > a lot. One important example is cpumask subsystem, when NR_CPUS <= BITS_PER_LONG. > In the very best case, the compiler may replace a find_*_bit() call for such a > bitmap with a single ffs or ffz instruction. > > Tools is synchronized with new implementation where needed. Sorry for the broken enumeration . If it's too confusing, please let me know and I'll resend.
On Fri, Jan 29, 2021 at 10:54 PM Yury Norov <yury.norov@gmail.com> wrote: > On Fri, Jan 29, 2021 at 12:45 PM Yury Norov <yury.norov@gmail.com> wrote: > > > > Bitmap operations are much simpler and faster in case of small bitmaps, whicn > > fit into a single word. In linux/bitmap.h we have a machinery that allows > > compiler to replace actual function call with a few instructions if bitmaps > > passed into the function is small and its size is known at compile time. > > > > find_*_bit() API lacks this functionality; despite users will benefit from it > > a lot. One important example is cpumask subsystem, when NR_CPUS <= BITS_PER_LONG. > > In the very best case, the compiler may replace a find_*_bit() call for such a > > bitmap with a single ffs or ffz instruction. > > > > Tools is synchronized with new implementation where needed. > > Sorry for the broken enumeration . If it's too confusing, please let me know > and I'll resend. Yeah, please resend with a bumped version and respective changelog.