diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-03-15 10:46:58 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-03-15 11:08:42 -0400 |
commit | b0a9ab62ab96e258a0ddd81d7fe2719c3db36006 (patch) | |
tree | f86b57423ac24262533a11fae4c5dc72f7b912bd /tools/perf/util/symbol.h | |
parent | bedbfdea31daf3880745001d56450c683959ee7e (diff) |
perf top: Properly notify the user that vmlinux is missing
Before this patch this message would very briefly appear on the
screen and then the screen would get updates only on the top,
for number of interrupts received, etc, but no annotation would
be performed:
[root@doppio linux-2.6-tip]# perf top -s n_tty_write > /tmp/bla
objdump: '[kernel.kallsyms]': No such file
Now this is what the user gets:
[root@doppio linux-2.6-tip]# perf top -s n_tty_write
Can't annotate n_tty_write: No vmlinux file was found in the
path: [0] vmlinux
[1] /boot/vmlinux
[2] /boot/vmlinux-2.6.33-rc5
[3] /lib/modules/2.6.33-rc5/build/vmlinux
[4] /usr/lib/debug/lib/modules/2.6.33-rc5/vmlinux
[root@doppio linux-2.6-tip]#
This bug was introduced when we added automatic search for
vmlinux, before that time the user had to specify a vmlinux
file.
Reported-by: David S. Miller <davem@davemloft.net>
Reported-by: Ingo Molnar <mingo@elte.hu>
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>
Cc: <stable@kernel.org>
LKML-Reference: <1268664418-28328-2-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/symbol.h')
-rw-r--r-- | tools/perf/util/symbol.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index 280dadd32a08..d983bbaf99c5 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h | |||
@@ -149,6 +149,19 @@ size_t dsos__fprintf_buildid(FILE *fp, bool with_hits); | |||
149 | 149 | ||
150 | size_t dso__fprintf_buildid(struct dso *self, FILE *fp); | 150 | size_t dso__fprintf_buildid(struct dso *self, FILE *fp); |
151 | size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp); | 151 | size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp); |
152 | |||
153 | enum dso_origin { | ||
154 | DSO__ORIG_KERNEL = 0, | ||
155 | DSO__ORIG_JAVA_JIT, | ||
156 | DSO__ORIG_BUILD_ID_CACHE, | ||
157 | DSO__ORIG_FEDORA, | ||
158 | DSO__ORIG_UBUNTU, | ||
159 | DSO__ORIG_BUILDID, | ||
160 | DSO__ORIG_DSO, | ||
161 | DSO__ORIG_KMODULE, | ||
162 | DSO__ORIG_NOT_FOUND, | ||
163 | }; | ||
164 | |||
152 | char dso__symtab_origin(const struct dso *self); | 165 | char dso__symtab_origin(const struct dso *self); |
153 | void dso__set_long_name(struct dso *self, char *name); | 166 | void dso__set_long_name(struct dso *self, char *name); |
154 | void dso__set_build_id(struct dso *self, void *build_id); | 167 | void dso__set_build_id(struct dso *self, void *build_id); |
@@ -168,4 +181,6 @@ int kallsyms__parse(const char *filename, void *arg, | |||
168 | int symbol__init(void); | 181 | int symbol__init(void); |
169 | bool symbol_type__is_a(char symbol_type, enum map_type map_type); | 182 | bool symbol_type__is_a(char symbol_type, enum map_type map_type); |
170 | 183 | ||
184 | size_t vmlinux_path__fprintf(FILE *fp); | ||
185 | |||
171 | #endif /* __PERF_SYMBOL */ | 186 | #endif /* __PERF_SYMBOL */ |