[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <e46e02f48567299b1176040961fec883e181b6ce.1621577151.git.naveen.n.rao@linux.vnet.ibm.com>
Date: Fri, 21 May 2021 12:18:39 +0530
From: "Naveen N. Rao" <naveen.n.rao@...ux.vnet.ibm.com>
To: Steven Rostedt <rostedt@...dmis.org>,
Michael Ellerman <mpe@...erman.id.au>,
Michal Suchanek <msuchanek@...e.de>,
Torsten Duwe <duwe@...e.de>
Cc: <linuxppc-dev@...ts.ozlabs.org>, <linux-kernel@...r.kernel.org>
Subject: [RFC PATCH 4/6] powerpc/perf: Include traced function in the callchain
With -mprofile-kernel and ppc32, the function tracer is invoked before a
function sets up its own stackframe. This results in the traced function
not appearing in stack traces. Fix this by checking for ftrace entry and
including the traced function in the perf callchain.
Signed-off-by: Naveen N. Rao <naveen.n.rao@...ux.vnet.ibm.com>
---
arch/powerpc/perf/callchain.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/powerpc/perf/callchain.c b/arch/powerpc/perf/callchain.c
index 6c028ee513c0d7..ed4dd4ab6621f6 100644
--- a/arch/powerpc/perf/callchain.c
+++ b/arch/powerpc/perf/callchain.c
@@ -93,6 +93,11 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
}
perf_callchain_store(entry, next_ip);
+ if (level && next_ip) {
+ next_ip = ftrace_get_traced_func_if_no_stackframe(next_ip, fp);
+ if (next_ip)
+ perf_callchain_store(entry, next_ip);
+ }
if (!valid_next_sp(next_sp, sp))
return;
sp = next_sp;
--
2.30.2
Powered by blists - more mailing lists