While the stack tracer worked fine with ppc64 ELFv1 ABI, it was never ported/enabled to run properly with ppc64 ELFv2 ABI, -mprofile-kernel in particular. The primary issue is that the call to ftrace happens before a function sets up its own stackframe. Due to this, the traced function never shows up in the stack trace. This produces confusing results, especially with the stack trace filter and is evident with the selftest failure. This is also an issue on ppc32.
The first two commits add support to the stack tracer for powerpc. This support utilizes the powerpc ABI to produce reliable stack traces, as well as to determine stackframe sizes. Patches 3, 4 and 6 add support for decoding the traced function name in various stack traces and to show the same. Patch 5 makes this change for livepatching and I am a bit unsure of this change. More details in patch 5. - Naveen Naveen N. Rao (6): trace/stack: Move code to save the stack trace into a separate function powerpc/trace: Add support for stack tracer powerpc: Indicate traced function name in show_stack() powerpc/perf: Include traced function in the callchain powerpc/stacktrace: Include ftraced function in arch_stack_walk_reliable() powerpc/stacktrace: Include ftraced function in arch_stack_walk() arch/powerpc/include/asm/ftrace.h | 18 ++++++ arch/powerpc/kernel/process.c | 3 + arch/powerpc/kernel/stacktrace.c | 8 +++ arch/powerpc/kernel/trace/ftrace.c | 70 +++++++++++++++++++++ arch/powerpc/perf/callchain.c | 5 ++ include/linux/ftrace.h | 8 +++ kernel/trace/trace_stack.c | 98 ++++++++++++++++-------------- 7 files changed, 164 insertions(+), 46 deletions(-) base-commit: 258eb1f3aaa9face35e613c229c1337263491ea0 -- 2.30.2