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

From: Kuan-Wei Chiu
Date: Sun May 05 2024 - 13:27:33 EST


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.

> 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)
>