Re: [PATCH v2 5/5] powerpc: Remove -mno-sched-epilog
On Fri, Sep 14, 2018 at 03:20:18PM -0700, Nick Desaulniers wrote: > On Fri, Sep 14, 2018 at 2:56 PM Segher Boessenkool > wrote: > > On Sat, Sep 15, 2018 at 06:43:05AM +1000, Nicholas Piggin wrote: > > > On Fri, 14 Sep 2018 11:03:38 -0700 > > > Nick Desaulniers wrote: > > > > > > Sorry I forgot to cc you. This has links to some of the sched > > > epilog bugs. > > > > > > https://marc.info/?l=linuxppc-embedded=153690223909654=2 > > Cool, cc me on the thread if you'd like me to add my reviewed-by tag > visibly on the thread. > > > PR44199 was backported to 4.4 and PR52828 is fixed in 4.8. > > Are those GCC versions? If so, what does that mean for the users of > the many GCC releases between 4.4 and 4.8? Yes, GCC bug 44199 was fixed in GCC version 4.4, etc. It of course also is fixed in all later versions; so GCC releases between 4.4 and 4.8 have the fix for PR44199 but not that for PR52828. I didn't check exactly what 4.4.x versions have the fix, etc. I always assume anyone using x.y.z uses the highest z available. I don't know if those are the only fixes you need; those are the two bugs mentioned in Nicholas' patch (that MARC link above). Segher
Re: [PATCH v2 5/5] powerpc: Remove -mno-sched-epilog
On Sat, Sep 15, 2018 at 06:43:05AM +1000, Nicholas Piggin wrote: > On Fri, 14 Sep 2018 11:03:38 -0700 > Nick Desaulniers wrote: > > > On Thu, Sep 13, 2018 at 9:07 PM Joel Stanley wrote: > > > Last time this was proposed there was an issue reported: > > > > > > > > > https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-September/121214.html > > > > > > > Heh, did PASemi sell boxes? Interesting, I'll have to read up on my history. > > > > On Thu, Sep 13, 2018 at 10:06 PM Nicholas Piggin wrote: > > > I don't think we can remove it completely because up to at least 4.6 > > > maybe 4.8 has problems. > > > > > > I have a few patches lying around I started looking at this... I'll > > > send them. > > > > Yeah, it's too bad the link above doesn't mention gcc version. > > > > The gcc bugreport mentions fixing the bug in > > 7563dc64585324f443f5ac107eb6d89ee813a2d2, not sure how to check what > > release version of gcc that is? (Do they tag releases?) > > I'm not sure, that's not in my gcc tree AFAIKS. This is a git hash in the kernel tree. > > Nick, do you have a test case or more context about this still being > > an issue in gcc 4.8? (maybe I should wait for your patch series?) > > Sorry I forgot to cc you. This has links to some of the sched > epilog bugs. > > https://marc.info/?l=linuxppc-embedded=153690223909654=2 PR44199 was backported to 4.4 and PR52828 is fixed in 4.8. Segher
Re: [PATCH v2 5/5] powerpc: Remove -mno-sched-epilog
On Fri, 14 Sep 2018 11:03:38 -0700 Nick Desaulniers wrote: > On Thu, Sep 13, 2018 at 9:07 PM Joel Stanley wrote: > > Last time this was proposed there was an issue reported: > > > > https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-September/121214.html > > > > Heh, did PASemi sell boxes? Interesting, I'll have to read up on my history. > > On Thu, Sep 13, 2018 at 10:06 PM Nicholas Piggin wrote: > > I don't think we can remove it completely because up to at least 4.6 > > maybe 4.8 has problems. > > > > I have a few patches lying around I started looking at this... I'll > > send them. > > Yeah, it's too bad the link above doesn't mention gcc version. > > The gcc bugreport mentions fixing the bug in > 7563dc64585324f443f5ac107eb6d89ee813a2d2, not sure how to check what > release version of gcc that is? (Do they tag releases?) I'm not sure, that's not in my gcc tree AFAIKS. > > Nick, do you have a test case or more context about this still being > an issue in gcc 4.8? (maybe I should wait for your patch series?) Sorry I forgot to cc you. This has links to some of the sched epilog bugs. https://marc.info/?l=linuxppc-embedded=153690223909654=2 Thanks, Nick
Re: [PATCH v2 5/5] powerpc: Remove -mno-sched-epilog
On Fri, 14 Sep 2018 13:36:49 +0930 Joel Stanley wrote: > This effectively reverts 7563dc645853 ("powerpc: Work around gcc's > -fno-omit-frame-pointer bug"), a workaround for a bug in GCC 4.1.3 when > building 2.6.26 kernel. > > The flag is not supported by clang, but reading the history of the > bug[1] suggests it is no longer required by supported GCC versions, with > GCC 4.6 now being the minimum. > > [1] https://bugzilla.kernel.org/show_bug.cgi?id=11414 > Signed-off-by: Joel Stanley > --- > Last time this was proposed there was an issue reported: > > https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-September/121214.html > > If some machines still have an issue, we could instead wrap this in a > flag check. I don't think we can remove it completely because up to at least 4.6 maybe 4.8 has problems. I have a few patches lying around I started looking at this... I'll send them. Thanks, Nick
[PATCH v2 5/5] powerpc: Remove -mno-sched-epilog
This effectively reverts 7563dc645853 ("powerpc: Work around gcc's -fno-omit-frame-pointer bug"), a workaround for a bug in GCC 4.1.3 when building 2.6.26 kernel. The flag is not supported by clang, but reading the history of the bug[1] suggests it is no longer required by supported GCC versions, with GCC 4.6 now being the minimum. [1] https://bugzilla.kernel.org/show_bug.cgi?id=11414 Signed-off-by: Joel Stanley --- Last time this was proposed there was an issue reported: https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-September/121214.html If some machines still have an issue, we could instead wrap this in a flag check. --- arch/powerpc/Makefile| 5 - arch/powerpc/kernel/Makefile | 8 arch/powerpc/kernel/trace/Makefile | 2 +- arch/powerpc/platforms/powermac/Makefile | 2 +- arch/powerpc/xmon/Makefile | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index a70639482053..ef8eca40ffef 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -229,11 +229,6 @@ ifdef CONFIG_6xx KBUILD_CFLAGS += -mcpu=powerpc endif -# Work around a gcc code-gen bug with -fno-omit-frame-pointer. -ifdef CONFIG_FUNCTION_TRACER -KBUILD_CFLAGS += -mno-sched-epilog -endif - cpu-as-$(CONFIG_4xx) += -Wa,-m405 cpu-as-$(CONFIG_ALTIVEC) += $(call as-option,-Wa$(comma)-maltivec) cpu-as-$(CONFIG_E200) += -Wa,-me200 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 3b66f2c19c84..1e64cfe22a83 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@ -22,10 +22,10 @@ CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) ifdef CONFIG_FUNCTION_TRACER # Do not trace early boot code -CFLAGS_REMOVE_cputable.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) -CFLAGS_REMOVE_prom_init.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) -CFLAGS_REMOVE_btext.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) -CFLAGS_REMOVE_prom.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_cputable.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_prom_init.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_btext.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_prom.o = $(CC_FLAGS_FTRACE) endif obj-y := cputable.o ptrace.o syscalls.o \ diff --git a/arch/powerpc/kernel/trace/Makefile b/arch/powerpc/kernel/trace/Makefile index d22d8bafb643..d868ba42032f 100644 --- a/arch/powerpc/kernel/trace/Makefile +++ b/arch/powerpc/kernel/trace/Makefile @@ -7,7 +7,7 @@ subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror ifdef CONFIG_FUNCTION_TRACER # do not trace tracer code -CFLAGS_REMOVE_ftrace.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) endif obj32-$(CONFIG_FUNCTION_TRACER)+= ftrace_32.o diff --git a/arch/powerpc/platforms/powermac/Makefile b/arch/powerpc/platforms/powermac/Makefile index f2839eed0f89..561a67d65e4d 100644 --- a/arch/powerpc/platforms/powermac/Makefile +++ b/arch/powerpc/platforms/powermac/Makefile @@ -3,7 +3,7 @@ CFLAGS_bootx_init.o += -fPIC ifdef CONFIG_FUNCTION_TRACER # Do not trace early boot code -CFLAGS_REMOVE_bootx_init.o = -mno-sched-epilog $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_bootx_init.o = $(CC_FLAGS_FTRACE) endif obj-y += pic.o setup.o time.o feature.o pci.o \ diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile index 1bc3abb237cd..93cc1f1b8b61 100644 --- a/arch/powerpc/xmon/Makefile +++ b/arch/powerpc/xmon/Makefile @@ -8,7 +8,7 @@ UBSAN_SANITIZE := n # Disable ftrace for the entire directory ORIG_CFLAGS := $(KBUILD_CFLAGS) -KBUILD_CFLAGS = $(subst -mno-sched-epilog,,$(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))) +KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC) -- 2.17.1