[PATCH 1/1] perf symbols: Fix up map end too on modular kernels with no modules installed
From: Arnaldo Carvalho de Melo
Date: Sat Feb 20 2010 - 16:53:29 EST
From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
In 2161db9 we stopped failing when not finding modules when asked too,
but then the kernel maps (just one, for vmlinux) wasn't having its ->end
field correctly set up, so symbols were not being found for the vmlinux
map because its range was 0-0.
Reported-by: Ingo Molnar <mingo@xxxxxxx>
Cc: FrÃdÃric Weisbecker <fweisbec@xxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/util/event.c | 6 ++++++
tools/perf/util/symbol.c | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 5a99e61..705ec63 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -379,6 +379,12 @@ int event__process_mmap(event_t *self, struct perf_session *session)
session->vmlinux_maps[MAP__FUNCTION]->start = self->mmap.start;
session->vmlinux_maps[MAP__FUNCTION]->end = self->mmap.start + self->mmap.len;
+ /*
+ * Be a bit paranoid here, some perf.data file came with
+ * a zero sized synthesized MMAP event for the kernel.
+ */
+ if (session->vmlinux_maps[MAP__FUNCTION]->end == 0)
+ session->vmlinux_maps[MAP__FUNCTION]->end = ~0UL;
perf_session__set_kallsyms_ref_reloc_sym(session, symbol_name,
self->mmap.pgoff);
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 6882e9f..ee9c37e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1937,7 +1937,7 @@ int map_groups__create_kernel_maps(struct map_groups *self,
return -1;
if (symbol_conf.use_modules && map_groups__create_modules(self) < 0)
- return 0;
+ pr_debug("Problems creating module maps, continuing anyway...\n");
/*
* Now that we have all the maps created, just set the ->end of them:
*/
--
1.6.2.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/