summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2009-11-22 14:59:22 -0200
committerIngo Molnar <mingo@elte.hu>2009-11-22 18:54:24 +0100
commit50e5095afa8c2be0f35e5c0e21d5f7912340e8f2 (patch)
treee7cbb2c9ab76d4bbaec7af36c849865f9cc34c6b
parent87f8ea4cd3680ef7f4da4391aed97abb25eae333 (diff)
downloadop-kernel-dev-50e5095afa8c2be0f35e5c0e21d5f7912340e8f2.zip
op-kernel-dev-50e5095afa8c2be0f35e5c0e21d5f7912340e8f2.tar.gz
perf report: Do map lookups in resolve_callchain()
Bug introduced in 439d473b4777de510e1322168ac6f2f377ecd5bc, making the initial map be used for all IPs, so that symbols outside this initial map would either be erroneously resolved or not resolve at all. Reported-by: Ingo Molnar <mingo@elte.hu> 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: <1258909162-28496-1-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--tools/perf/builtin-report.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 0d39e80..7e690f7 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -467,7 +467,7 @@ static int call__match(struct symbol *sym)
return 0;
}
-static struct symbol **resolve_callchain(struct thread *thread, struct map *map,
+static struct symbol **resolve_callchain(struct thread *thread,
struct ip_callchain *chain,
struct symbol **parent)
{
@@ -496,10 +496,10 @@ static struct symbol **resolve_callchain(struct thread *thread, struct map *map,
case PERF_CONTEXT_HV:
break;
case PERF_CONTEXT_KERNEL:
- sym = kernel_maps__find_symbol(ip, &map, NULL);
+ sym = kernel_maps__find_symbol(ip, NULL, NULL);
break;
default:
- sym = resolve_symbol(thread, &map, &ip);
+ sym = resolve_symbol(thread, NULL, &ip);
break;
}
@@ -529,7 +529,7 @@ hist_entry__add(struct thread *thread, struct map *map,
struct hist_entry *he;
if ((sort__has_parent || callchain) && chain)
- syms = resolve_callchain(thread, map, chain, &parent);
+ syms = resolve_callchain(thread, chain, &parent);
he = __hist_entry__add(thread, map, sym, parent,
ip, count, level, &hit);
OpenPOWER on IntegriCloud