Re: [PATCH] powerpc/ftrace: Disable ftrace on ppc32 if using clang
On Fri, 09 Jun 2023 09:15:01 +0530, Naveen N Rao wrote: > Ftrace on ppc32 expects a three instruction sequence at the beginning of > each function when specifying -pg: > mflrr0 > stw r0,4(r1) > bl _mcount > > This is the case with all supported versions of gcc. Clang however emits > a branch to _mcount after the function prologue, similar to the pre > -mprofile-kernel ABI on ppc64. This is not supported. > > [...] Applied to powerpc/next. [1/1] powerpc/ftrace: Disable ftrace on ppc32 if using clang https://git.kernel.org/powerpc/c/d24da1f85530a5b47590c0febd1395dd8fc73124 cheers
Re: [PATCH] powerpc/ftrace: Disable ftrace on ppc32 if using clang
On Thu, Jun 8, 2023 at 8:47 PM Naveen N Rao wrote: > > Ftrace on ppc32 expects a three instruction sequence at the beginning of > each function when specifying -pg: > mflrr0 > stw r0,4(r1) > bl _mcount > > This is the case with all supported versions of gcc. Clang however emits > a branch to _mcount after the function prologue, similar to the pre > -mprofile-kernel ABI on ppc64. This is not supported. > > Disable ftrace on ppc32 if using clang for now. This can be re-enabled > later if clang picks up support for -fpatchable-function-entry on ppc32. > > Signed-off-by: Naveen N Rao Thanks for the patch! I've filed the below bug, a link to whom I'd like to see retained in the commit message. In the future, please file bugs against the compiler vendors first, then include the relevant link. Link: https://github.com/llvm/llvm-project/issues/63220 Acked-by: Nick Desaulniers > --- > arch/powerpc/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index bff5820b7cda14..d85e3cf4016d90 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -236,7 +236,7 @@ config PPC > select HAVE_FUNCTION_DESCRIPTORSif PPC64_ELF_ABI_V1 > select HAVE_FUNCTION_ERROR_INJECTION > select HAVE_FUNCTION_GRAPH_TRACER > - select HAVE_FUNCTION_TRACER > + select HAVE_FUNCTION_TRACER if PPC64 || (PPC32 && > CC_IS_GCC) > select HAVE_GCC_PLUGINS if GCC_VERSION >= 50200 # > plugin support on gcc <= 5.1 is buggy on PPC > select HAVE_GENERIC_VDSO > select HAVE_HARDLOCKUP_DETECTOR_ARCHif PPC_BOOK3S_64 && SMP > > base-commit: bd517a8442b6c6646a136421cd4c1b95bf4ce32b > -- > 2.40.1 > -- Thanks, ~Nick Desaulniers
[PATCH] powerpc/ftrace: Disable ftrace on ppc32 if using clang
Ftrace on ppc32 expects a three instruction sequence at the beginning of each function when specifying -pg: mflrr0 stw r0,4(r1) bl _mcount This is the case with all supported versions of gcc. Clang however emits a branch to _mcount after the function prologue, similar to the pre -mprofile-kernel ABI on ppc64. This is not supported. Disable ftrace on ppc32 if using clang for now. This can be re-enabled later if clang picks up support for -fpatchable-function-entry on ppc32. Signed-off-by: Naveen N Rao --- arch/powerpc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index bff5820b7cda14..d85e3cf4016d90 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -236,7 +236,7 @@ config PPC select HAVE_FUNCTION_DESCRIPTORSif PPC64_ELF_ABI_V1 select HAVE_FUNCTION_ERROR_INJECTION select HAVE_FUNCTION_GRAPH_TRACER - select HAVE_FUNCTION_TRACER + select HAVE_FUNCTION_TRACER if PPC64 || (PPC32 && CC_IS_GCC) select HAVE_GCC_PLUGINS if GCC_VERSION >= 50200 # plugin support on gcc <= 5.1 is buggy on PPC select HAVE_GENERIC_VDSO select HAVE_HARDLOCKUP_DETECTOR_ARCHif PPC_BOOK3S_64 && SMP base-commit: bd517a8442b6c6646a136421cd4c1b95bf4ce32b -- 2.40.1