diff options
author | Cody P Schafer <cody@linux.vnet.ibm.com> | 2012-08-10 18:22:56 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-08-13 13:26:18 -0400 |
commit | 21ea4539b4d1b26de7f2eb227b5d1a092b32cc19 (patch) | |
tree | 6315685b17a97131492ea80f046f2a5ce041f9ce /tools/perf/util | |
parent | 492746546fe380da768c8496213e26aa91b9b3aa (diff) |
perf symbols: Track symtab_type of vmlinux
Previously, symtab_type would have been left at 0, or KALLSYMS, which is
not quite accurate.
Introduce DSO_BINARY_TYPE__VMLINUX[_GUEST].
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: David Hansen <dave@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matt Hellsley <matthltc@us.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1344637382-22789-11-git-send-email-cody@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r-- | tools/perf/util/symbol.c | 9 | ||||
-rw-r--r-- | tools/perf/util/symbol.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 96dbf28fc941..8f5cabbfc8bd 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -923,6 +923,7 @@ char dso__symtab_origin(const struct dso *dso) | |||
923 | { | 923 | { |
924 | static const char origin[] = { | 924 | static const char origin[] = { |
925 | [DSO_BINARY_TYPE__KALLSYMS] = 'k', | 925 | [DSO_BINARY_TYPE__KALLSYMS] = 'k', |
926 | [DSO_BINARY_TYPE__VMLINUX] = 'v', | ||
926 | [DSO_BINARY_TYPE__JAVA_JIT] = 'j', | 927 | [DSO_BINARY_TYPE__JAVA_JIT] = 'j', |
927 | [DSO_BINARY_TYPE__DEBUGLINK] = 'l', | 928 | [DSO_BINARY_TYPE__DEBUGLINK] = 'l', |
928 | [DSO_BINARY_TYPE__BUILD_ID_CACHE] = 'B', | 929 | [DSO_BINARY_TYPE__BUILD_ID_CACHE] = 'B', |
@@ -933,6 +934,7 @@ char dso__symtab_origin(const struct dso *dso) | |||
933 | [DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE] = 'K', | 934 | [DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE] = 'K', |
934 | [DSO_BINARY_TYPE__GUEST_KALLSYMS] = 'g', | 935 | [DSO_BINARY_TYPE__GUEST_KALLSYMS] = 'g', |
935 | [DSO_BINARY_TYPE__GUEST_KMODULE] = 'G', | 936 | [DSO_BINARY_TYPE__GUEST_KMODULE] = 'G', |
937 | [DSO_BINARY_TYPE__GUEST_VMLINUX] = 'V', | ||
936 | }; | 938 | }; |
937 | 939 | ||
938 | if (dso == NULL || dso->symtab_type == DSO_BINARY_TYPE__NOT_FOUND) | 940 | if (dso == NULL || dso->symtab_type == DSO_BINARY_TYPE__NOT_FOUND) |
@@ -1008,7 +1010,9 @@ int dso__binary_type_file(struct dso *dso, enum dso_binary_type type, | |||
1008 | 1010 | ||
1009 | default: | 1011 | default: |
1010 | case DSO_BINARY_TYPE__KALLSYMS: | 1012 | case DSO_BINARY_TYPE__KALLSYMS: |
1013 | case DSO_BINARY_TYPE__VMLINUX: | ||
1011 | case DSO_BINARY_TYPE__GUEST_KALLSYMS: | 1014 | case DSO_BINARY_TYPE__GUEST_KALLSYMS: |
1015 | case DSO_BINARY_TYPE__GUEST_VMLINUX: | ||
1012 | case DSO_BINARY_TYPE__JAVA_JIT: | 1016 | case DSO_BINARY_TYPE__JAVA_JIT: |
1013 | case DSO_BINARY_TYPE__NOT_FOUND: | 1017 | case DSO_BINARY_TYPE__NOT_FOUND: |
1014 | ret = -1; | 1018 | ret = -1; |
@@ -1364,6 +1368,11 @@ int dso__load_vmlinux(struct dso *dso, struct map *map, | |||
1364 | if (fd < 0) | 1368 | if (fd < 0) |
1365 | return -1; | 1369 | return -1; |
1366 | 1370 | ||
1371 | if (dso->kernel == DSO_TYPE_GUEST_KERNEL) | ||
1372 | dso->symtab_type = DSO_BINARY_TYPE__GUEST_VMLINUX; | ||
1373 | else | ||
1374 | dso->symtab_type = DSO_BINARY_TYPE__VMLINUX; | ||
1375 | |||
1367 | err = dso__load_sym(dso, map, symfs_vmlinux, fd, filter, 0, 0); | 1376 | err = dso__load_sym(dso, map, symfs_vmlinux, fd, filter, 0, 0); |
1368 | close(fd); | 1377 | close(fd); |
1369 | 1378 | ||
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index c9534fe0720d..37f1ea146c16 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h | |||
@@ -158,6 +158,8 @@ struct addr_location { | |||
158 | enum dso_binary_type { | 158 | enum dso_binary_type { |
159 | DSO_BINARY_TYPE__KALLSYMS = 0, | 159 | DSO_BINARY_TYPE__KALLSYMS = 0, |
160 | DSO_BINARY_TYPE__GUEST_KALLSYMS, | 160 | DSO_BINARY_TYPE__GUEST_KALLSYMS, |
161 | DSO_BINARY_TYPE__VMLINUX, | ||
162 | DSO_BINARY_TYPE__GUEST_VMLINUX, | ||
161 | DSO_BINARY_TYPE__JAVA_JIT, | 163 | DSO_BINARY_TYPE__JAVA_JIT, |
162 | DSO_BINARY_TYPE__DEBUGLINK, | 164 | DSO_BINARY_TYPE__DEBUGLINK, |
163 | DSO_BINARY_TYPE__BUILD_ID_CACHE, | 165 | DSO_BINARY_TYPE__BUILD_ID_CACHE, |