diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-02-03 21:52:02 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-02-04 11:33:26 +0300 |
commit | 8d92c02ab07602786eaa6d4e5b519395730b3fd3 (patch) | |
tree | 3615a65a57f7e1de03af33440f550cdac22a38ce /tools/perf/util/map.c | |
parent | 6275ce2d5f44ae4f8575c24724525cbb2a3a141b (diff) | |
download | linux-8d92c02ab07602786eaa6d4e5b519395730b3fd3.tar.xz |
perf symbols: Ditch vdso global variable
We can check using strcmp, most DSOs don't start with '[' so the
test is cheap enough and we had to test it there anyway since
when reading perf.data files we weren't calling the routine that
created this global variable and thus weren't setting it as
"loaded", which was causing a bogus:
Failed to open [vdso], continuing without symbols
Message as the first line of 'perf report'.
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: <1265223128-11786-3-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/map.c')
-rw-r--r-- | tools/perf/util/map.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 36ff0bf0315d..f6626cc3df2e 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -68,8 +68,13 @@ struct map *map__new(struct mmap_event *event, enum map_type type, map__init(self, type, event->start, event->start + event->len, event->pgoff, dso); - if (self->dso == vdso || anon) + if (anon) { +set_identity: self->map_ip = self->unmap_ip = identity__map_ip; + } else if (strcmp(filename, "[vdso]") == 0) { + dso__set_loaded(dso, self->type); + goto set_identity; + } } return self; out_delete: |