Re: [PATCH 29/54] drivers/iio: replace bitmap_weight() with bitmap_weight_{eq,gt} where appropriate

From: Andy Shevchenko
Date: Mon Jan 24 2022 - 07:48:01 EST


On Sun, Jan 23, 2022 at 10:39:00AM -0800, Yury Norov wrote:
> drivers/iio calls bitmap_weight() to compare the weight of bitmap with
> a given number. We can do it more efficiently with bitmap_weight_{eq, gt}
> because conditional bitmap_weight may stop traversing the bitmap earlier,
> as soon as condition is met.

...

> int i, j;
>
> for (i = 0, j = 0;
> - i < bitmap_weight(indio_dev->active_scan_mask,
> - indio_dev->masklength);
> + bitmap_weight_gt(indio_dev->active_scan_mask,
> + indio_dev->masklength, i);
> i++, j++) {
> j = find_next_bit(indio_dev->active_scan_mask,
> indio_dev->masklength, j);

This smells like room for improvement. Have you checked this deeply?

--
With Best Regards,
Andy Shevchenko