diff options
Diffstat (limited to 'tools/perf/util/map.c')
| -rw-r--r-- | tools/perf/util/map.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 7d37159c1e99..b442ee49452b 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "map.h" | 9 | #include "map.h" |
| 10 | #include "thread.h" | 10 | #include "thread.h" |
| 11 | #include "strlist.h" | 11 | #include "strlist.h" |
| 12 | #include "vdso.h" | ||
| 12 | 13 | ||
| 13 | const char *map_type__name[MAP__NR_TYPES] = { | 14 | const char *map_type__name[MAP__NR_TYPES] = { |
| 14 | [MAP__FUNCTION] = "Functions", | 15 | [MAP__FUNCTION] = "Functions", |
| @@ -23,7 +24,6 @@ static inline int is_anon_memory(const char *filename) | |||
| 23 | static inline int is_no_dso_memory(const char *filename) | 24 | static inline int is_no_dso_memory(const char *filename) |
| 24 | { | 25 | { |
| 25 | return !strcmp(filename, "[stack]") || | 26 | return !strcmp(filename, "[stack]") || |
| 26 | !strcmp(filename, "[vdso]") || | ||
| 27 | !strcmp(filename, "[heap]"); | 27 | !strcmp(filename, "[heap]"); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| @@ -52,9 +52,10 @@ struct map *map__new(struct list_head *dsos__list, u64 start, u64 len, | |||
| 52 | if (self != NULL) { | 52 | if (self != NULL) { |
| 53 | char newfilename[PATH_MAX]; | 53 | char newfilename[PATH_MAX]; |
| 54 | struct dso *dso; | 54 | struct dso *dso; |
| 55 | int anon, no_dso; | 55 | int anon, no_dso, vdso; |
| 56 | 56 | ||
| 57 | anon = is_anon_memory(filename); | 57 | anon = is_anon_memory(filename); |
| 58 | vdso = is_vdso_map(filename); | ||
| 58 | no_dso = is_no_dso_memory(filename); | 59 | no_dso = is_no_dso_memory(filename); |
| 59 | 60 | ||
| 60 | if (anon) { | 61 | if (anon) { |
| @@ -62,7 +63,12 @@ struct map *map__new(struct list_head *dsos__list, u64 start, u64 len, | |||
| 62 | filename = newfilename; | 63 | filename = newfilename; |
| 63 | } | 64 | } |
| 64 | 65 | ||
| 65 | dso = __dsos__findnew(dsos__list, filename); | 66 | if (vdso) { |
| 67 | pgoff = 0; | ||
| 68 | dso = vdso__dso_findnew(dsos__list); | ||
| 69 | } else | ||
| 70 | dso = __dsos__findnew(dsos__list, filename); | ||
| 71 | |||
| 66 | if (dso == NULL) | 72 | if (dso == NULL) |
| 67 | goto out_delete; | 73 | goto out_delete; |
| 68 | 74 | ||
