Message ID | 20230609034501.407971-1-naveen@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | d24da1f85530a5b47590c0febd1395dd8fc73124 |
Headers | show |
Series | powerpc/ftrace: Disable ftrace on ppc32 if using clang | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
On Thu, Jun 8, 2023 at 8:47 PM Naveen N Rao <naveen@kernel.org> wrote: > > Ftrace on ppc32 expects a three instruction sequence at the beginning of > each function when specifying -pg: > mflr r0 > 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 <naveen@kernel.org> 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 <ndesaulniers@google.com> > --- > 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_DESCRIPTORS if 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_ARCH if PPC_BOOK3S_64 && SMP > > base-commit: bd517a8442b6c6646a136421cd4c1b95bf4ce32b > -- > 2.40.1 >
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: > mflr r0 > 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
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_DESCRIPTORS if 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_ARCH if PPC_BOOK3S_64 && SMP
Ftrace on ppc32 expects a three instruction sequence at the beginning of each function when specifying -pg: mflr r0 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 <naveen@kernel.org> --- arch/powerpc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: bd517a8442b6c6646a136421cd4c1b95bf4ce32b