* [PATCH] perf uretprobe ppc64le: Fix probe location
@ 2016-10-04 10:27 Ravi Bangoria
2016-10-06 22:40 ` [tip:perf/urgent] " tip-bot for Ravi Bangoria
0 siblings, 1 reply; 2+ messages in thread
From: Ravi Bangoria @ 2016-10-04 10:27 UTC (permalink / raw)
To: linux-kernel, acme
Cc: peterz, mingo, alexander.shishkin, naveen.n.rao, bsingharora,
mhiramat, Ravi Bangoria
Perf uretprobe probes on GEP(Glabal Entry Point) which fails to record
all function calls via LEP(Local Entry Point). Fix that by probing on LEP.
Objdump:
00000000100005f0 <doit>:
100005f0: 02 10 40 3c lis r2,4098
100005f4: 00 7f 42 38 addi r2,r2,32512
100005f8: a6 02 08 7c mflr r0
100005fc: 10 00 01 f8 std r0,16(r1)
10000600: f8 ff e1 fb std r31,-8(r1)
Before applying patch:
$ cat /sys/kernel/debug/tracing/uprobe_events
r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f0
After applying patch:
$ cat /sys/kernel/debug/tracing/uprobe_events
r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f8
This is not the case with kretprobe because kernel itself finds LEP
and probes on it.
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
---
tools/perf/arch/powerpc/util/sym-handling.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/arch/powerpc/util/sym-handling.c b/tools/perf/arch/powerpc/util/sym-handling.c
index ed9d5d1..1030a6e 100644
--- a/tools/perf/arch/powerpc/util/sym-handling.c
+++ b/tools/perf/arch/powerpc/util/sym-handling.c
@@ -82,7 +82,8 @@ void arch__fix_tev_from_maps(struct perf_probe_event *pev,
*
* In addition, we shouldn't specify an offset for kretprobes.
*/
- if (pev->point.offset || pev->point.retprobe || !map || !sym)
+ if (pev->point.offset || (!pev->uprobes && pev->point.retprobe) ||
+ !map || !sym)
return;
lep_offset = PPC64_LOCAL_ENTRY_OFFSET(sym->arch_sym);
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [tip:perf/urgent] perf uretprobe ppc64le: Fix probe location
2016-10-04 10:27 [PATCH] perf uretprobe ppc64le: Fix probe location Ravi Bangoria
@ 2016-10-06 22:40 ` tip-bot for Ravi Bangoria
0 siblings, 0 replies; 2+ messages in thread
From: tip-bot for Ravi Bangoria @ 2016-10-06 22:40 UTC (permalink / raw)
To: linux-tip-commits
Cc: tglx, peterz, naveen.n.rao, alexander.shishkin, linux-kernel,
hpa, mhiramat, acme, bsingharora, mingo, ravi.bangoria
Commit-ID: a1d9972e59e15538458c030affbfc298c32a47f8
Gitweb: http://git.kernel.org/tip/a1d9972e59e15538458c030affbfc298c32a47f8
Author: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
AuthorDate: Tue, 4 Oct 2016 15:57:45 +0530
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 5 Oct 2016 08:14:22 -0300
perf uretprobe ppc64le: Fix probe location
Perf uretprobe probes on GEP(Global Entry Point) which fails to record
all function calls via LEP(Local Entry Point). Fix that by probing on LEP.
Objdump:
00000000100005f0 <doit>:
100005f0: 02 10 40 3c lis r2,4098
100005f4: 00 7f 42 38 addi r2,r2,32512
100005f8: a6 02 08 7c mflr r0
100005fc: 10 00 01 f8 std r0,16(r1)
10000600: f8 ff e1 fb std r31,-8(r1)
Before applying patch:
$ cat /sys/kernel/debug/tracing/uprobe_events
r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f0
After applying patch:
$ cat /sys/kernel/debug/tracing/uprobe_events
r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f8
This is not the case with kretprobes because the kernel itself finds LEP
and probes on it.
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1475576865-6562-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/arch/powerpc/util/sym-handling.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/arch/powerpc/util/sym-handling.c b/tools/perf/arch/powerpc/util/sym-handling.c
index ed9d5d1..1030a6e 100644
--- a/tools/perf/arch/powerpc/util/sym-handling.c
+++ b/tools/perf/arch/powerpc/util/sym-handling.c
@@ -82,7 +82,8 @@ void arch__fix_tev_from_maps(struct perf_probe_event *pev,
*
* In addition, we shouldn't specify an offset for kretprobes.
*/
- if (pev->point.offset || pev->point.retprobe || !map || !sym)
+ if (pev->point.offset || (!pev->uprobes && pev->point.retprobe) ||
+ !map || !sym)
return;
lep_offset = PPC64_LOCAL_ENTRY_OFFSET(sym->arch_sym);
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-10-06 22:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-04 10:27 [PATCH] perf uretprobe ppc64le: Fix probe location Ravi Bangoria
2016-10-06 22:40 ` [tip:perf/urgent] " tip-bot for Ravi Bangoria
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.