]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
lib/find_bit_benchmark: avoid clearing randomly filled bitmap in test_find_first_bit()
authorAkinobu Mita <akinobu.mita@gmail.com>
Tue, 10 Mar 2026 15:21:26 +0000 (00:21 +0900)
committerYury Norov <ynorov@nvidia.com>
Mon, 23 Mar 2026 17:33:51 +0000 (13:33 -0400)
commit6c88ba561cfc2c5f35067519f46310059a9dc39a
tree8b174aba2f465f139c688485c34b895e3faec617
parenta676643709115816d3ce7e50aa5b5a4af1ee6c45
lib/find_bit_benchmark: avoid clearing randomly filled bitmap in test_find_first_bit()

test_find_first_bit() searches for a set bit from the beginning of the
test bitmap and clears it repeatedly, eventually clearing the entire
bitmap.

After test_find_first_bit() is executed, test_find_first_and_bit() and
test_find_next_and_bit() are executed without randomly reinitializing the
cleared bitmap.

In the first phase (testing find_bit() with a random-filled bitmap),
test_find_first_bit() only operates on 1/10 of the entire size of the
testing bitmap, so this isn't a big problem.

However, in the second phase (testing find_bit() with a sparse bitmap),
test_find_first_bit() clears the entire test bitmap, so the subsequent
test_find_first_and_bit() and test_find_next_and_bit() will not find any
set bits. This is probably not the intended benchmark.

To fix this issue, test_find_first_bit() operates on a duplicated bitmap
and does not clear the original test bitmap.
The same is already done in test_find_first_and_bit().

While we're at it, add const qualifiers to the bitmap pointer arguments
in the test functions.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Yury Norov <ynorov@nvidia.com>
lib/find_bit_benchmark.c