On Sat, Jun 12, 2021 at 1:36 PM Yury Norov <yury.norov@xxxxxxxxx> wrote: > > Currently find_first_and_bit() is an alias to find_next_and_bit(). However, > it is widely used in cpumask, so it worth to optimize it. This patch adds > its own implementation for find_first_and_bit(). > > On x86_64 find_bit_benchmark says: > > Before (#define find_first_and_bit(...) find_next_and_bit(..., 0): > Start testing find_bit() with random-filled bitmap > [ 140.291468] find_first_and_bit: 46890919 ns, 32671 iterations > Start testing find_bit() with sparse bitmap > [ 140.295028] find_first_and_bit: 7103 ns, 1 iterations > > After: > Start testing find_bit() with random-filled bitmap > [ 162.574907] find_first_and_bit: 25045813 ns, 32846 iterations > Start testing find_bit() with sparse bitmap > [ 162.578458] find_first_and_bit: 4900 ns, 1 iterations > > (Thanks to Alexey Klimov for thorough testing.) > > Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx> Tested-by: Alexey Klimov <aklimov@xxxxxxxxxx> [..] Best regards, Alexey