diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2013-08-07 07:38:46 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-08-07 16:35:31 -0400 |
commit | 5b7ba82a75915e739709d0ace4bb559cb280db09 (patch) | |
tree | cc42fe77866affa6b83dd0945e260427f88761d8 /tools/perf/tests/code-reading.c | |
parent | b55ae0a976f2927ea8f15a85c43bbe6d25a68a41 (diff) |
perf symbols: Load kernel maps before using
In order to use kernel maps to read object code, those maps must be
adjusted to map to the dso file offset. Because lazy-initialization is
used, that is not done until symbols are loaded. However the maps are
first used by thread__find_addr_map() before symbols are loaded. So
this patch changes thread__find_addr() to "load" kernel maps before
using them.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1375875537-4509-3-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests/code-reading.c')
-rw-r--r-- | tools/perf/tests/code-reading.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c index 28bee6285f5d..0c7b052cead2 100644 --- a/tools/perf/tests/code-reading.c +++ b/tools/perf/tests/code-reading.c | |||
@@ -138,7 +138,7 @@ static int read_object_code(u64 addr, size_t len, u8 cpumode, | |||
138 | pr_debug("Reading object code for memory address: %#"PRIx64"\n", addr); | 138 | pr_debug("Reading object code for memory address: %#"PRIx64"\n", addr); |
139 | 139 | ||
140 | thread__find_addr_map(thread, machine, cpumode, MAP__FUNCTION, addr, | 140 | thread__find_addr_map(thread, machine, cpumode, MAP__FUNCTION, addr, |
141 | &al); | 141 | &al, NULL); |
142 | if (!al.map || !al.map->dso) { | 142 | if (!al.map || !al.map->dso) { |
143 | pr_debug("thread__find_addr_map failed\n"); | 143 | pr_debug("thread__find_addr_map failed\n"); |
144 | return -1; | 144 | return -1; |