Re: [PATCH 0/8] all: use find_next_*_bit() instead of find_first_*_bit() where possible

From: Yury Norov
Date: Wed Jul 28 2021 - 11:01:56 EST


Ping again.

The rebased series together with other bitmap patches can be found
here:

https://github.com/norov/linux/tree/bitmap-20210716

On Sat, Jun 12, 2021 at 05:36:31AM -0700, Yury Norov wrote:
> find_first_*_bit() is simpler and faster than 'next' version [1], and they
> work identically if start == 0. But in many cases kernel code uses the
> 'next' version where 'first' can be used. This series addresses this issue.
>
> Patches 1-3 move find.h under include/linux as it simplifies development.
> Patches 4-8 switch the kernel and tools to find_first_*_bit() implementation
> where appropriate.
>
> Yury Norov (8):
> bitops: protect find_first_{,zero}_bit properly
> bitops: move find_bit_*_le functions from le.h to find.h
> include: move find.h from asm_generic to linux
> arch: remove GENERIC_FIND_FIRST_BIT entirely
> lib: add find_first_and_bit()
> cpumask: use find_first_and_bit()
> all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where
> appropriate
> tools: sync tools/bitmap with mother linux
>
> MAINTAINERS | 4 +-
> arch/alpha/include/asm/bitops.h | 2 -
> arch/arc/Kconfig | 1 -
> arch/arc/include/asm/bitops.h | 1 -
> arch/arm/include/asm/bitops.h | 1 -
> arch/arm64/Kconfig | 1 -
> arch/arm64/include/asm/bitops.h | 1 -
> arch/csky/include/asm/bitops.h | 1 -
> arch/h8300/include/asm/bitops.h | 1 -
> arch/hexagon/include/asm/bitops.h | 1 -
> arch/ia64/include/asm/bitops.h | 2 -
> arch/m68k/include/asm/bitops.h | 2 -
> arch/mips/Kconfig | 1 -
> arch/mips/include/asm/bitops.h | 1 -
> arch/openrisc/include/asm/bitops.h | 1 -
> arch/parisc/include/asm/bitops.h | 2 -
> arch/powerpc/include/asm/bitops.h | 2 -
> arch/powerpc/platforms/pasemi/dma_lib.c | 4 +-
> arch/riscv/include/asm/bitops.h | 1 -
> arch/s390/Kconfig | 1 -
> arch/s390/include/asm/bitops.h | 1 -
> arch/s390/kvm/kvm-s390.c | 2 +-
> arch/sh/include/asm/bitops.h | 1 -
> arch/sparc/include/asm/bitops_32.h | 1 -
> arch/sparc/include/asm/bitops_64.h | 2 -
> arch/x86/Kconfig | 1 -
> arch/x86/include/asm/bitops.h | 2 -
> arch/x86/um/Kconfig | 1 -
> arch/xtensa/include/asm/bitops.h | 1 -
> drivers/block/rnbd/rnbd-clt.c | 2 +-
> drivers/dma/ti/edma.c | 2 +-
> drivers/iio/adc/ad7124.c | 2 +-
> drivers/infiniband/hw/irdma/hw.c | 16 +-
> drivers/media/cec/core/cec-core.c | 2 +-
> drivers/media/mc/mc-devnode.c | 2 +-
> drivers/pci/controller/dwc/pci-dra7xx.c | 2 +-
> drivers/scsi/lpfc/lpfc_sli.c | 10 +-
> drivers/soc/ti/k3-ringacc.c | 4 +-
> drivers/tty/n_tty.c | 2 +-
> drivers/virt/acrn/ioreq.c | 3 +-
> fs/f2fs/segment.c | 8 +-
> fs/ocfs2/cluster/heartbeat.c | 2 +-
> fs/ocfs2/dlm/dlmdomain.c | 4 +-
> fs/ocfs2/dlm/dlmmaster.c | 18 +--
> fs/ocfs2/dlm/dlmrecovery.c | 2 +-
> fs/ocfs2/dlm/dlmthread.c | 2 +-
> include/asm-generic/bitops.h | 1 -
> include/asm-generic/bitops/le.h | 64 --------
> include/linux/bitmap.h | 1 +
> include/linux/cpumask.h | 30 ++--
> .../bitops => include/linux}/find.h | 149 +++++++++++++++++-
> lib/Kconfig | 3 -
> lib/find_bit.c | 21 +++
> lib/find_bit_benchmark.c | 21 +++
> lib/genalloc.c | 2 +-
> net/ncsi/ncsi-manage.c | 4 +-
> tools/include/asm-generic/bitops.h | 1 -
> tools/include/linux/bitmap.h | 7 +-
> .../bitops => tools/include/linux}/find.h | 54 +++++--
> tools/lib/find_bit.c | 20 +++
> 60 files changed, 319 insertions(+), 185 deletions(-)
> rename {tools/include/asm-generic/bitops => include/linux}/find.h (50%)
> rename {include/asm-generic/bitops => tools/include/linux}/find.h (83%)
>
> --
> 2.30.2