* [PATCH 0/2] x86: Mandate asm-goto support @ 2018-03-19 15:41 Peter Zijlstra 2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra 2018-03-19 15:41 ` [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS Peter Zijlstra 0 siblings, 2 replies; 12+ messages in thread From: Peter Zijlstra @ 2018-03-19 15:41 UTC (permalink / raw) To: mingo, tglx; +Cc: linux-kernel, torvalds, peterz Its been many _many_ years since asm-goto got introduced and recently there's been some desire to unconditionally rely on it. This makes the x86 build hard rely on asm-goto (effectively lifts the minimum to GCC-4.5). ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/2] x86: Force asm-goto 2018-03-19 15:41 [PATCH 0/2] x86: Mandate asm-goto support Peter Zijlstra @ 2018-03-19 15:41 ` Peter Zijlstra 2018-03-19 19:57 ` Thomas Gleixner 2018-03-20 15:45 ` Jonathan Corbet 2018-03-19 15:41 ` [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS Peter Zijlstra 1 sibling, 2 replies; 12+ messages in thread From: Peter Zijlstra @ 2018-03-19 15:41 UTC (permalink / raw) To: mingo, tglx; +Cc: linux-kernel, torvalds, Peter Zijlstra (Intel) [-- Attachment #1: peterz-x86-force-asm-goto.patch --] [-- Type: text/plain, Size: 1923 bytes --] We want to start using asm-goto to guarantee the absence of dynamic branches (and thus speculation). A primary prerequisite for this is of course that the compiler supports asm-goto. This effecively lifts the minimum GCC version to build an x86 kernel to gcc-4.5. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- Makefile | 13 +++++++------ arch/x86/Makefile | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) --- a/Makefile +++ b/Makefile @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) export RETPOLINE_CFLAGS +# check for 'asm goto' +ifeq ($(shell $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) + CC_HAVE_ASM_GOTO := 1 + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO +endif + ifeq ($(config-targets),1) # =========================================================================== # *config targets only - make sure prerequisites are updated, and descend @@ -658,12 +665,6 @@ KBUILD_CFLAGS += $(call cc-ifversion, -l # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) -# check for 'asm goto' -ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO - KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO -endif - include scripts/Makefile.kcov include scripts/Makefile.gcc-plugins --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -181,6 +181,10 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER endif endif +ifndef CC_HAVE_ASM_GOTO + $(error Compiler lacks asm-goto support.) +endif + # # Jump labels need '-maccumulate-outgoing-args' for gcc < 4.5.2 to prevent a # GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226). There's no way ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra @ 2018-03-19 19:57 ` Thomas Gleixner 2018-03-19 20:13 ` Peter Zijlstra 2018-03-20 15:45 ` Jonathan Corbet 1 sibling, 1 reply; 12+ messages in thread From: Thomas Gleixner @ 2018-03-19 19:57 UTC (permalink / raw) To: Peter Zijlstra; +Cc: mingo, linux-kernel, torvalds On Mon, 19 Mar 2018, Peter Zijlstra wrote: > We want to start using asm-goto to guarantee the absence of dynamic > branches (and thus speculation). > > A primary prerequisite for this is of course that the compiler > supports asm-goto. This effecively lifts the minimum GCC version to > build an x86 kernel to gcc-4.5. > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > --- > Makefile | 13 +++++++------ > arch/x86/Makefile | 4 ++++ > 2 files changed, 11 insertions(+), 6 deletions(-) > > --- a/Makefile > +++ b/Makefile > @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex > RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) > export RETPOLINE_CFLAGS > > +# check for 'asm goto' > +ifeq ($(shell $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) Why are you not using the shell-cached version which you remove further down? Thanks, tglx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-19 19:57 ` Thomas Gleixner @ 2018-03-19 20:13 ` Peter Zijlstra 2018-03-20 10:00 ` [tip:x86/build] " tip-bot for Peter Zijlstra 2018-03-27 16:43 ` [PATCH 1/2] " Anders Roxell 0 siblings, 2 replies; 12+ messages in thread From: Peter Zijlstra @ 2018-03-19 20:13 UTC (permalink / raw) To: Thomas Gleixner; +Cc: mingo, linux-kernel, torvalds On Mon, Mar 19, 2018 at 08:57:48PM +0100, Thomas Gleixner wrote: > On Mon, 19 Mar 2018, Peter Zijlstra wrote: > > > We want to start using asm-goto to guarantee the absence of dynamic > > branches (and thus speculation). > > > > A primary prerequisite for this is of course that the compiler > > supports asm-goto. This effecively lifts the minimum GCC version to > > build an x86 kernel to gcc-4.5. > > > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > --- > > Makefile | 13 +++++++------ > > arch/x86/Makefile | 4 ++++ > > 2 files changed, 11 insertions(+), 6 deletions(-) > > > > --- a/Makefile > > +++ b/Makefile > > @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex > > RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) > > export RETPOLINE_CFLAGS > > > > +# check for 'asm goto' > > +ifeq ($(shell $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) > > Why are you not using the shell-cached version which you remove further > down? Bah, I'm an idiot. I fixed that up at least two times, but clearly I forgot to check that again before sending. --- Subject: x86: Force asm-goto From: Peter Zijlstra <peterz@infradead.org> Date: Wed Jan 17 11:42:07 CET 2018 We want to start using asm-goto to guarantee the absence of dynamic branches (and thus speculation). A primary prerequisite for this is of course that the compiler supports asm-goto. This effecively lifts the minimum GCC version to build an x86 kernel to gcc-4.5. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- Makefile | 13 +++++++------ arch/x86/Makefile | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) --- a/Makefile +++ b/Makefile @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) export RETPOLINE_CFLAGS +# check for 'asm goto' +ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) + CC_HAVE_ASM_GOTO := 1 + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO +endif + ifeq ($(config-targets),1) # =========================================================================== # *config targets only - make sure prerequisites are updated, and descend @@ -658,12 +665,6 @@ KBUILD_CFLAGS += $(call cc-ifversion, -l # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) -# check for 'asm goto' -ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO - KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO -endif - include scripts/Makefile.kcov include scripts/Makefile.gcc-plugins --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -181,6 +181,10 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER endif endif +ifndef CC_HAVE_ASM_GOTO + $(error Compiler lacks asm-goto support.) +endif + # # Jump labels need '-maccumulate-outgoing-args' for gcc < 4.5.2 to prevent a # GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226). There's no way ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tip:x86/build] x86: Force asm-goto 2018-03-19 20:13 ` Peter Zijlstra @ 2018-03-20 10:00 ` tip-bot for Peter Zijlstra 2018-03-27 16:43 ` [PATCH 1/2] " Anders Roxell 1 sibling, 0 replies; 12+ messages in thread From: tip-bot for Peter Zijlstra @ 2018-03-20 10:00 UTC (permalink / raw) To: linux-tip-commits; +Cc: hpa, linux-kernel, tglx, peterz, mingo Commit-ID: e501ce957a786ecd076ea0cfb10b114e6e4d0f40 Gitweb: https://git.kernel.org/tip/e501ce957a786ecd076ea0cfb10b114e6e4d0f40 Author: Peter Zijlstra <peterz@infradead.org> AuthorDate: Wed, 17 Jan 2018 11:42:07 +0100 Committer: Thomas Gleixner <tglx@linutronix.de> CommitDate: Tue, 20 Mar 2018 10:58:02 +0100 x86: Force asm-goto We want to start using asm-goto to guarantee the absence of dynamic branches (and thus speculation). A primary prerequisite for this is of course that the compiler supports asm-goto. This effecively lifts the minimum GCC version to build an x86 kernel to gcc-4.5. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: torvalds@linux-foundation.org Link: https://lkml.kernel.org/r/20180319201327.GJ4043@hirez.programming.kicks-ass.net --- Makefile | 13 +++++++------ arch/x86/Makefile | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index d65e2e229017..6fb6fd28a124 100644 --- a/Makefile +++ b/Makefile @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) export RETPOLINE_CFLAGS +# check for 'asm goto' +ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) + CC_HAVE_ASM_GOTO := 1 + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO +endif + ifeq ($(config-targets),1) # =========================================================================== # *config targets only - make sure prerequisites are updated, and descend @@ -658,12 +665,6 @@ KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \ # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) -# check for 'asm goto' -ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO - KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO -endif - include scripts/Makefile.kcov include scripts/Makefile.gcc-plugins diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 498c1b812300..d798e36d103c 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -181,6 +181,10 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER endif endif +ifndef CC_HAVE_ASM_GOTO + $(error Compiler lacks asm-goto support.) +endif + # # Jump labels need '-maccumulate-outgoing-args' for gcc < 4.5.2 to prevent a # GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226). There's no way ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-19 20:13 ` Peter Zijlstra 2018-03-20 10:00 ` [tip:x86/build] " tip-bot for Peter Zijlstra @ 2018-03-27 16:43 ` Anders Roxell 1 sibling, 0 replies; 12+ messages in thread From: Anders Roxell @ 2018-03-27 16:43 UTC (permalink / raw) To: Peter Zijlstra; +Cc: Thomas Gleixner, mingo, linux-kernel, torvalds On 2018-03-19 21:13, Peter Zijlstra wrote: > On Mon, Mar 19, 2018 at 08:57:48PM +0100, Thomas Gleixner wrote: > > On Mon, 19 Mar 2018, Peter Zijlstra wrote: > > > > > We want to start using asm-goto to guarantee the absence of dynamic > > > branches (and thus speculation). > > > > > > A primary prerequisite for this is of course that the compiler > > > supports asm-goto. This effecively lifts the minimum GCC version to > > > build an x86 kernel to gcc-4.5. > > > > > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > > --- > > > Makefile | 13 +++++++------ > > > arch/x86/Makefile | 4 ++++ > > > 2 files changed, 11 insertions(+), 6 deletions(-) > > > > > > --- a/Makefile > > > +++ b/Makefile > > > @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex > > > RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) > > > export RETPOLINE_CFLAGS > > > > > > +# check for 'asm goto' > > > +ifeq ($(shell $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) > > > > Why are you not using the shell-cached version which you remove further > > down? > > Bah, I'm an idiot. I fixed that up at least two times, but clearly I > forgot to check that again before sending. > > --- > Subject: x86: Force asm-goto > From: Peter Zijlstra <peterz@infradead.org> > Date: Wed Jan 17 11:42:07 CET 2018 > > We want to start using asm-goto to guarantee the absence of dynamic > branches (and thus speculation). > > A primary prerequisite for this is of course that the compiler > supports asm-goto. This effecively lifts the minimum GCC version to > build an x86 kernel to gcc-4.5. With this patch applied I'm not able to do "make kernelversion" without any toolchain to get the kernel version, I was able to do that before. Cheers, Anders > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > --- > Makefile | 13 +++++++------ > arch/x86/Makefile | 4 ++++ > 2 files changed, 11 insertions(+), 6 deletions(-) > > --- a/Makefile > +++ b/Makefile > @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex > RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) > export RETPOLINE_CFLAGS > > +# check for 'asm goto' > +ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) > + CC_HAVE_ASM_GOTO := 1 > + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO > + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO > +endif > + > ifeq ($(config-targets),1) > # =========================================================================== > # *config targets only - make sure prerequisites are updated, and descend > @@ -658,12 +665,6 @@ KBUILD_CFLAGS += $(call cc-ifversion, -l > # Tell gcc to never replace conditional load with a non-conditional one > KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) > > -# check for 'asm goto' > -ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) > - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO > - KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO > -endif > - > include scripts/Makefile.kcov > include scripts/Makefile.gcc-plugins > > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -181,6 +181,10 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER > endif > endif > > +ifndef CC_HAVE_ASM_GOTO > + $(error Compiler lacks asm-goto support.) > +endif > + > # > # Jump labels need '-maccumulate-outgoing-args' for gcc < 4.5.2 to prevent a > # GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226). There's no way ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra 2018-03-19 19:57 ` Thomas Gleixner @ 2018-03-20 15:45 ` Jonathan Corbet 2018-03-20 15:50 ` Peter Zijlstra 1 sibling, 1 reply; 12+ messages in thread From: Jonathan Corbet @ 2018-03-20 15:45 UTC (permalink / raw) To: Peter Zijlstra; +Cc: mingo, tglx, linux-kernel, torvalds On Mon, 19 Mar 2018 16:41:25 +0100 Peter Zijlstra <peterz@infradead.org> wrote: > A primary prerequisite for this is of course that the compiler > supports asm-goto. This effecively lifts the minimum GCC version to > build an x86 kernel to gcc-4.5. Given that, how about a patch to Documentation/Changes to reflect the new reality? It's not in RST yet, so you should be able to go there without ill effect :) Thanks, jon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-20 15:45 ` Jonathan Corbet @ 2018-03-20 15:50 ` Peter Zijlstra 2018-03-20 18:44 ` Jonathan Corbet 2018-03-22 12:10 ` Pavel Machek 0 siblings, 2 replies; 12+ messages in thread From: Peter Zijlstra @ 2018-03-20 15:50 UTC (permalink / raw) To: Jonathan Corbet; +Cc: mingo, tglx, linux-kernel, torvalds On Tue, Mar 20, 2018 at 09:45:54AM -0600, Jonathan Corbet wrote: > On Mon, 19 Mar 2018 16:41:25 +0100 > Peter Zijlstra <peterz@infradead.org> wrote: > > > A primary prerequisite for this is of course that the compiler > > supports asm-goto. This effecively lifts the minimum GCC version to > > build an x86 kernel to gcc-4.5. > > Given that, how about a patch to Documentation/Changes to reflect the new > reality? It's not in RST yet, so you should be able to go there without > ill effect :) That thing says: GCC --- The gcc version requirements may vary depending on the type of CPU in your computer. jon Which is still entirely accurate. And afaik the 3.2 minimum listed there still works for !x86. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-20 15:50 ` Peter Zijlstra @ 2018-03-20 18:44 ` Jonathan Corbet 2018-03-22 12:10 ` Pavel Machek 1 sibling, 0 replies; 12+ messages in thread From: Jonathan Corbet @ 2018-03-20 18:44 UTC (permalink / raw) To: Peter Zijlstra; +Cc: mingo, tglx, linux-kernel, torvalds On Tue, 20 Mar 2018 16:50:36 +0100 Peter Zijlstra <peterz@infradead.org> wrote: > > Given that, how about a patch to Documentation/Changes to reflect the new > > reality? It's not in RST yet, so you should be able to go there without > > ill effect :) > > > That thing says: > > GCC > --- > > The gcc version requirements may vary depending on the type of CPU in your > computer. jon > > Which is still entirely accurate. And afaik the 3.2 minimum listed there > still works for !x86. Well, other recent discussions established that nothing earlier than 4.1 has been observed to work anywhere for some time. I guess what we really need is a little table of architecture-specific minimum GCC versions so that our users actually know what's required. I'll see if I can find a moment to pull that together at some point. jon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] x86: Force asm-goto 2018-03-20 15:50 ` Peter Zijlstra 2018-03-20 18:44 ` Jonathan Corbet @ 2018-03-22 12:10 ` Pavel Machek 1 sibling, 0 replies; 12+ messages in thread From: Pavel Machek @ 2018-03-22 12:10 UTC (permalink / raw) To: Peter Zijlstra; +Cc: Jonathan Corbet, mingo, tglx, linux-kernel, torvalds [-- Attachment #1: Type: text/plain, Size: 1042 bytes --] On Tue 2018-03-20 16:50:36, Peter Zijlstra wrote: > On Tue, Mar 20, 2018 at 09:45:54AM -0600, Jonathan Corbet wrote: > > On Mon, 19 Mar 2018 16:41:25 +0100 > > Peter Zijlstra <peterz@infradead.org> wrote: > > > > > A primary prerequisite for this is of course that the compiler > > > supports asm-goto. This effecively lifts the minimum GCC version to > > > build an x86 kernel to gcc-4.5. > > > > Given that, how about a patch to Documentation/Changes to reflect the new > > reality? It's not in RST yet, so you should be able to go there without > > ill effect :) > > > That thing says: > > GCC > --- > > The gcc version requirements may vary depending on the type of CPU in your > computer. jon > > Which is still entirely accurate. And afaik the 3.2 minimum listed there > still works for !x86. Maybe accurate, but pretty user hostile :-(. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS 2018-03-19 15:41 [PATCH 0/2] x86: Mandate asm-goto support Peter Zijlstra 2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra @ 2018-03-19 15:41 ` Peter Zijlstra 2018-03-20 10:01 ` [tip:x86/build] " tip-bot for Peter Zijlstra 1 sibling, 1 reply; 12+ messages in thread From: Peter Zijlstra @ 2018-03-19 15:41 UTC (permalink / raw) To: mingo, tglx; +Cc: linux-kernel, torvalds, Peter Zijlstra (Intel) [-- Attachment #1: peterz-x86-remove-fast-feature.patch --] [-- Type: text/plain, Size: 1861 bytes --] Since we want to rely on static branches to avoid speculation, remove any possible fallback code for static_cpu_has. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- arch/x86/Kconfig | 11 ----------- arch/x86/include/asm/cpufeature.h | 8 -------- 2 files changed, 19 deletions(-) --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -393,17 +393,6 @@ config X86_FEATURE_NAMES If in doubt, say Y. -config X86_FAST_FEATURE_TESTS - bool "Fast CPU feature tests" if EMBEDDED - default y - ---help--- - Some fast-paths in the kernel depend on the capabilities of the CPU. - Say Y here for the kernel to patch in the appropriate code at runtime - based on the capabilities of the CPU. The infrastructure for patching - code at runtime takes up some additional space; space-constrained - embedded systems may wish to say N here to produce smaller, slightly - slower code. - config X86_X2APIC bool "Support x2apic" depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST) --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -140,7 +140,6 @@ extern void clear_cpu_cap(struct cpuinfo #define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit) -#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_X86_FAST_FEATURE_TESTS) /* * Static testing of CPU features. Used the same as boot_cpu_has(). * These will statically patch the target code for additional @@ -196,13 +195,6 @@ static __always_inline __pure bool _stat boot_cpu_has(bit) : \ _static_cpu_has(bit) \ ) -#else -/* - * Fall back to dynamic for gcc versions which don't support asm goto. Should be - * a minority now anyway. - */ -#define static_cpu_has(bit) boot_cpu_has(bit) -#endif #define cpu_has_bug(c, bit) cpu_has(c, (bit)) #define set_cpu_bug(c, bit) set_cpu_cap(c, (bit)) ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tip:x86/build] x86: Remove FAST_FEATURE_TESTS 2018-03-19 15:41 ` [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS Peter Zijlstra @ 2018-03-20 10:01 ` tip-bot for Peter Zijlstra 0 siblings, 0 replies; 12+ messages in thread From: tip-bot for Peter Zijlstra @ 2018-03-20 10:01 UTC (permalink / raw) To: linux-tip-commits; +Cc: tglx, peterz, mingo, hpa, linux-kernel Commit-ID: d0266046ad54e0c964941364cd82a0d0478ce286 Gitweb: https://git.kernel.org/tip/d0266046ad54e0c964941364cd82a0d0478ce286 Author: Peter Zijlstra <peterz@infradead.org> AuthorDate: Mon, 19 Mar 2018 16:41:26 +0100 Committer: Thomas Gleixner <tglx@linutronix.de> CommitDate: Tue, 20 Mar 2018 10:58:03 +0100 x86: Remove FAST_FEATURE_TESTS Since we want to rely on static branches to avoid speculation, remove any possible fallback code for static_cpu_has. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: torvalds@linux-foundation.org Link: https://lkml.kernel.org/r/20180319154717.705383007@infradead.org --- arch/x86/Kconfig | 11 ----------- arch/x86/include/asm/cpufeature.h | 8 -------- 2 files changed, 19 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 0fa71a78ec99..cb5b5907dbd6 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -393,17 +393,6 @@ config X86_FEATURE_NAMES If in doubt, say Y. -config X86_FAST_FEATURE_TESTS - bool "Fast CPU feature tests" if EMBEDDED - default y - ---help--- - Some fast-paths in the kernel depend on the capabilities of the CPU. - Say Y here for the kernel to patch in the appropriate code at runtime - based on the capabilities of the CPU. The infrastructure for patching - code at runtime takes up some additional space; space-constrained - embedded systems may wish to say N here to produce smaller, slightly - slower code. - config X86_X2APIC bool "Support x2apic" depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST) diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index 736771c9822e..b27da9602a6d 100644 --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -140,7 +140,6 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit); #define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit) -#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_X86_FAST_FEATURE_TESTS) /* * Static testing of CPU features. Used the same as boot_cpu_has(). * These will statically patch the target code for additional @@ -196,13 +195,6 @@ t_no: boot_cpu_has(bit) : \ _static_cpu_has(bit) \ ) -#else -/* - * Fall back to dynamic for gcc versions which don't support asm goto. Should be - * a minority now anyway. - */ -#define static_cpu_has(bit) boot_cpu_has(bit) -#endif #define cpu_has_bug(c, bit) cpu_has(c, (bit)) #define set_cpu_bug(c, bit) set_cpu_cap(c, (bit)) ^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-03-27 17:11 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-03-19 15:41 [PATCH 0/2] x86: Mandate asm-goto support Peter Zijlstra 2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra 2018-03-19 19:57 ` Thomas Gleixner 2018-03-19 20:13 ` Peter Zijlstra 2018-03-20 10:00 ` [tip:x86/build] " tip-bot for Peter Zijlstra 2018-03-27 16:43 ` [PATCH 1/2] " Anders Roxell 2018-03-20 15:45 ` Jonathan Corbet 2018-03-20 15:50 ` Peter Zijlstra 2018-03-20 18:44 ` Jonathan Corbet 2018-03-22 12:10 ` Pavel Machek 2018-03-19 15:41 ` [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS Peter Zijlstra 2018-03-20 10:01 ` [tip:x86/build] " tip-bot for Peter Zijlstra
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.