From: Yury Norov <yury.norov@gmail.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Yury Norov <yury.norov@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-perf-users@vger.kernel.org,
kvm@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Alexander Lobakin <alobakin@pm.me>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Alexey Klimov <aklimov@redhat.com>,
Andrea Merello <andrea.merello@gmail.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Arnd Bergmann <arnd@arndb.de>, Ben Gardon <bgardon@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Brian Cain <bcain@codeaurora.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Christoph Lameter <cl@linux.com>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
David Hildenbrand <david@redhat.com>,
Dennis Zhou <dennis@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Heiko Carstens <hca@linux.ibm.com>,
Ian Rogers <irogers@google.com>, Ingo Molnar <mingo@redhat.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
Joe Perches <joe@perches.com>, Jonas Bonn <jonas@southpole.se>,
Leo Yan <leo.yan@linaro.org>, Mark Rutland <mark.rutland@arm.com>,
Namhyung Kim <namhyung@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Petr Mladek <pmladek@suse.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Rich Felker <dalias@libc.org>,
Samuel Mendoza-Jonas <sam@mendozajonas.com>,
Sean Christopherson <seanjc@google.com>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Shuah Khan <shuah@kernel.org>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
Steven Rostedt <rostedt@goodmis.org>, Tejun Heo <tj@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Ulf Hansson <ulf.hansson@linaro.org>,
Will Deacon <will@kernel.org>,
Wolfram Sang <wsa+renesas@sang-engineering.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>
Subject: [PATCH 04/16] arch: remove GENERIC_FIND_FIRST_BIT entirely
Date: Mon, 4 Oct 2021 22:40:47 -0700 [thread overview]
Message-ID: <20211005054059.475634-5-yury.norov@gmail.com> (raw)
In-Reply-To: <20211005054059.475634-1-yury.norov@gmail.com>
In 5.12 cycle we enabled GENERIC_FIND_FIRST_BIT config option for ARM64
and MIPS. It increased performance and shrunk .text size; and so far
I didn't receive any negative feedback on the change.
https://lore.kernel.org/linux-arch/20210225135700.1381396-1-yury.norov@gmail.com/
Now I think it's a good time to switch all architectures to use
find_{first,last}_bit() unconditionally, and so remove corresponding
config option.
The patch does't introduce functioal changes for arc, arm, arm64, mips,
m68k, s390 and x86, for other architectures I expect improvement both in
performance and .text size.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
Tested-by: Alexander Lobakin <alobakin@pm.me> (mips)
Reviewed-by: Alexander Lobakin <alobakin@pm.me> (mips)
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Will Deacon <will@kernel.org>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
arch/arc/Kconfig | 1 -
arch/arm64/Kconfig | 1 -
arch/mips/Kconfig | 1 -
arch/s390/Kconfig | 1 -
arch/x86/Kconfig | 1 -
arch/x86/um/Kconfig | 1 -
include/linux/find.h | 13 -------------
lib/Kconfig | 3 ---
8 files changed, 22 deletions(-)
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 3a5a80f302e1..248389278e8f 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -20,7 +20,6 @@ config ARC
select COMMON_CLK
select DMA_DIRECT_REMAP
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
- select GENERIC_FIND_FIRST_BIT
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
select GENERIC_IRQ_SHOW
select GENERIC_PCI_IOMAP
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 5c7ae4c3954b..abbd7b1e549f 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -119,7 +119,6 @@ config ARM64
select GENERIC_CPU_AUTOPROBE
select GENERIC_CPU_VULNERABILITIES
select GENERIC_EARLY_IOREMAP
- select GENERIC_FIND_FIRST_BIT
select GENERIC_IDLE_POLL_SETUP
select GENERIC_IRQ_IPI
select GENERIC_IRQ_PROBE
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 771ca53af06d..0cf31a6cbee1 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -32,7 +32,6 @@ config MIPS
select GENERIC_ATOMIC64 if !64BIT
select GENERIC_CMOS_UPDATE
select GENERIC_CPU_AUTOPROBE
- select GENERIC_FIND_FIRST_BIT
select GENERIC_GETTIMEOFDAY
select GENERIC_IOMAP
select GENERIC_IRQ_PROBE
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index b86de61b8caa..b0bb3aaec5f2 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -127,7 +127,6 @@ config S390
select GENERIC_CPU_AUTOPROBE
select GENERIC_CPU_VULNERABILITIES
select GENERIC_ENTRY
- select GENERIC_FIND_FIRST_BIT
select GENERIC_GETTIMEOFDAY
select GENERIC_PTDUMP
select GENERIC_SMP_IDLE_THREAD
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index ab83c22d274e..8a2c61f732ee 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -134,7 +134,6 @@ config X86
select GENERIC_CPU_VULNERABILITIES
select GENERIC_EARLY_IOREMAP
select GENERIC_ENTRY
- select GENERIC_FIND_FIRST_BIT
select GENERIC_IOMAP
select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
index 95d26a69088b..40d6a06e41c8 100644
--- a/arch/x86/um/Kconfig
+++ b/arch/x86/um/Kconfig
@@ -8,7 +8,6 @@ endmenu
config UML_X86
def_bool y
- select GENERIC_FIND_FIRST_BIT
config 64BIT
bool "64-bit kernel" if "$(SUBARCH)" = "x86"
diff --git a/include/linux/find.h b/include/linux/find.h
index c5410c243e04..ea57f7f38c49 100644
--- a/include/linux/find.h
+++ b/include/linux/find.h
@@ -101,8 +101,6 @@ unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
}
#endif
-#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
-
#ifndef find_first_bit
/**
* find_first_bit - find the first set bit in a memory region
@@ -147,17 +145,6 @@ unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
}
#endif
-#else /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
-#ifndef find_first_bit
-#define find_first_bit(addr, size) find_next_bit((addr), (size), 0)
-#endif
-#ifndef find_first_zero_bit
-#define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)
-#endif
-
-#endif /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
#ifndef find_last_bit
/**
* find_last_bit - find the last set bit in a memory region
diff --git a/lib/Kconfig b/lib/Kconfig
index 5e7165e6a346..6a6ae5312fa0 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -65,9 +65,6 @@ config GENERIC_STRNLEN_USER
config GENERIC_NET_UTILS
bool
-config GENERIC_FIND_FIRST_BIT
- bool
-
source "lib/math/Kconfig"
config NO_GENERIC_PCI_IOPORT_MAP
--
2.30.2
next prev parent reply other threads:[~2021-10-05 5:41 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-05 5:40 [PATCH RESEND 3 00/16] Bitmap patches for 5.15 Yury Norov
2021-10-05 5:40 ` [PATCH 01/16] bitops: protect find_first_{,zero}_bit properly Yury Norov
2021-10-05 5:40 ` [PATCH 02/16] bitops: move find_bit_*_le functions from le.h to find.h Yury Norov
2021-10-05 5:40 ` [PATCH 03/16] include: move find.h from asm_generic to linux Yury Norov
2021-10-05 5:40 ` Yury Norov [this message]
2021-10-05 5:40 ` [PATCH 05/16] lib: add find_first_and_bit() Yury Norov
2021-10-05 5:40 ` [PATCH 06/16] cpumask: use find_first_and_bit() Yury Norov
2021-10-05 5:40 ` [PATCH 07/16] all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriate Yury Norov
2021-10-05 5:40 ` [PATCH 08/16] tools: sync tools/bitmap with mother linux Yury Norov
2021-10-05 5:40 ` [PATCH 09/16] cpumask: replace cpumask_next_* with cpumask_first_* where appropriate Yury Norov
2021-10-05 5:40 ` [PATCH 10/16] include/linux: move for_each_bit() macros from bitops.h to find.h Yury Norov
2021-10-05 5:40 ` [PATCH 11/16] find: micro-optimize for_each_{set,clear}_bit() Yury Norov
2021-10-05 5:40 ` [PATCH 12/16] Replace for_each_*_bit_from() with for_each_*_bit() where appropriate Yury Norov
2021-10-05 5:40 ` [PATCH 13/16] mm/percpu: micro-optimize pcpu_is_populated() Yury Norov
2021-10-05 5:40 ` [PATCH 14/16] bitmap: unify find_bit operations Yury Norov
2021-10-05 5:40 ` [PATCH 15/16] lib: bitmap: add performance test for bitmap_print_to_pagebuf Yury Norov
2021-10-05 5:40 ` [PATCH 16/16] vsprintf: rework bitmap_list_string Yury Norov
2021-10-05 6:02 ` [PATCH RESEND 3 00/16] Bitmap patches for 5.15 Stephen Rothwell
-- strict thread matches above, loose matches on Subject: below --
2021-10-01 18:12 [PATCH RESEND 2 00/16] Resend bitmap patches Yury Norov
2021-10-01 18:12 ` [PATCH 04/16] arch: remove GENERIC_FIND_FIRST_BIT entirely Yury Norov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211005054059.475634-5-yury.norov@gmail.com \
--to=yury.norov@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=acme@redhat.com \
--cc=aklimov@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=alobakin@pm.me \
--cc=andrea.merello@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=bcain@codeaurora.org \
--cc=benh@kernel.crashing.org \
--cc=bgardon@google.com \
--cc=bristot@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=cl@linux.com \
--cc=dalias@libc.org \
--cc=david@redhat.com \
--cc=dennis@kernel.org \
--cc=geert@linux-m68k.org \
--cc=hca@linux.ibm.com \
--cc=irogers@google.com \
--cc=jaegeuk@kernel.org \
--cc=joe@perches.com \
--cc=jolsa@redhat.com \
--cc=jonas@southpole.se \
--cc=kuba@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=leo.yan@linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=sam@mendozajonas.com \
--cc=seanjc@google.com \
--cc=senozhatsky@chromium.org \
--cc=sfr@canb.auug.org.au \
--cc=shuah@kernel.org \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=tj@kernel.org \
--cc=tsbogend@alpha.franken.de \
--cc=ulf.hansson@linaro.org \
--cc=will@kernel.org \
--cc=wsa+renesas@sang-engineering.com \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.