Re: [PATCH v3 1/2] lib/test_bitops: Add benchmark test for fns()

From: Kuan-Wei Chiu
Date: Sun May 05 2024 - 13:29:32 EST


On Mon, May 06, 2024 at 01:27:25AM +0800, Kuan-Wei Chiu wrote:
> Hi David,
>
> On Sun, May 05, 2024 at 01:03:23PM +0000, David Laight wrote:
> > From: Kuan-Wei Chiu
> > > Sent: 01 May 2024 08:17
> > >
> > > Introduce a benchmark test for the fns(). It measures the total time
> > > taken by fns() to process 1,000,000 test data generated using
> > > get_random_long() for each n in the range [0, BITS_PER_LONG).
> > >
> > > example:
> > > test_bitops: fns: 5876762553 ns, 64000000 iterations
> >
> > Great benchmark....
> >
> > The compiler almost certainly optimises it all away.
> >
> > Assigning the result of fns() to a file scope (global) volatile int
> > should stop that happening.
> >
> Thank you for your review. There is an updated v5 of this patch [1],
> which has already been accepted and included in Yury's bitmap-for-next
> branch of the bitmap tree. In the v5 patch, we have addressed the issue
> you mentioned regarding the use of volatile variables to avoid compiler
> optimizations.
>
[1]: https://lore.kernel.org/lkml/20240502092443.6845-2-visitorckw@xxxxxxxxx/

> > And a real test would actually check the result - just in case
> > someone does something silly.
> >
> The fns() function is mainly a helper for find_nth_bit(), so its
> accuracy should have been checked in find_nth_bit()'s tests. If you
> want unit tests for fns() here too, that sounds good to me, but it
> would likely be a separate patch. I'm happy to do it if you'd like.
>
> Regards,
> Kuan-Wei
>
> > David
> >
> > -
> > Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
> > Registration No: 1397386 (Wales)
> >