Re: [PATCH 3/3] lib/find_bit.c: uninline helper _find_next_bit()

From: Yury Norov
Date: Fri Jan 03 2020 - 20:06:02 EST


On Fri, Jan 03, 2020 at 04:08:43PM -0800, Yury Norov wrote:
> On Fri, Jan 03, 2020 at 01:46:07PM -0800, Joe Perches wrote:
> > On Fri, 2020-01-03 at 12:28 -0800, Yury Norov wrote:
> > > It saves 25% of .text for arm64, and more for BE architectures.
> >
> > This seems a rather misleading code size reduction description.
> >
> > Please detail the specific code sizes using "size lib/find_bit.o"
> > before and after this change.
>
> Before:
> $ size lib/find_bit.o
> text data bss dec hex filename
> 1012 56 0 1068 42c lib/find_bit.o
>
> After:
> $ size lib/find_bit.o
> text data bss dec hex filename
> 776 56 0 832 340 lib/find_bit.o
>
> > Also, _find_next_bit is used 3 times, perhaps any code size
> > increase is appropriate given likely reduced run time.
>
> Second patch of the series switches find_next_zero_bit_le()
> and find_next_bit_le() to _find_next_bit(), so totally 5.
>
> Yury

> > perhaps any code size
> > increase is appropriate given likely reduced run time.

I have a benchmark for the find_bit functions upstream, however, it cannot
measure the overall performance degradation related to increased probability
of cache eviction.

When I originally wrote _find_next_bit() in 2014, it was simpler and had 2
users. Now there are 5 of them, and I think it's good time to stop inlining
_find_next_bit().

Yury