aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-03-24 16:40:18 -0300
committerIngo Molnar <mingo@elte.hu>2010-03-26 08:52:57 +0100
commitb3c9ac0846c654dea4df095999ee202e8b4cb253 (patch)
tree4845ae36123beba5bc9959be7c67cc0ce4bc5a11 /tools/perf/util/session.c
parent59fd53062f71011a68d03f4cd0ba93d822ac3249 (diff)
downloadkernel_samsung_smdk4412-b3c9ac0846c654dea4df095999ee202e8b4cb253.zip
kernel_samsung_smdk4412-b3c9ac0846c654dea4df095999ee202e8b4cb253.tar.gz
kernel_samsung_smdk4412-b3c9ac0846c654dea4df095999ee202e8b4cb253.tar.bz2
perf callchains: Store the map together with the symbol
We need this to know where a symbol in a callchain came from, for various reasons, among them precise annotation from a TUI/GUI tool. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1269459619-982-5-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r--tools/perf/util/session.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index eed1cb8..2cef373 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -117,13 +117,13 @@ static bool symbol__match_parent_regex(struct symbol *sym)
return 0;
}
-struct symbol **perf_session__resolve_callchain(struct perf_session *self,
- struct thread *thread,
- struct ip_callchain *chain,
- struct symbol **parent)
+struct map_symbol *perf_session__resolve_callchain(struct perf_session *self,
+ struct thread *thread,
+ struct ip_callchain *chain,
+ struct symbol **parent)
{
u8 cpumode = PERF_RECORD_MISC_USER;
- struct symbol **syms = NULL;
+ struct map_symbol *syms = NULL;
unsigned int i;
if (symbol_conf.use_callchain) {
@@ -160,7 +160,8 @@ struct symbol **perf_session__resolve_callchain(struct perf_session *self,
*parent = al.sym;
if (!symbol_conf.use_callchain)
break;
- syms[i] = al.sym;
+ syms[i].map = al.map;
+ syms[i].sym = al.sym;
}
}