perf report: Show the symtab origin (DSO, build-id, kernel, etc)
PATCH 1/1 perf report: Show the symtab origin (DSO, build-id, kernel, etc)
Used with perf report --verbose:
[acme@doppio linux-2.6-tip]$ perf report -v | head -16
5.17% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x00000000005d8eee f [.] imgContainer::DrawFrameTo(gfxIImageFrame*, gfxIImageFrame*, nsRect&)
2.56% firefox /lib64/libpthread-2.10.1.so 0x0000000000008e02 d [.] __pthread_mutex_lock_internal
1.94% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x0000000000d0af8f f [.] SearchTable
1.75% firefox [kernel] 0xffffffffff60013b k [.] vread_hpet
1.63% firefox /lib64/libpthread-2.10.1.so 0x000000000000a404 d [.] __pthread_mutex_unlock
1.47% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000482ea f [.] js_Interpret
1.42% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x000000000003eda3 f [.] JS_CallTracer
1.24% firefox [kernel] 0xffffffff8102ca4a k [k] read_hpet
1.16% firefox [kernel] 0xffffffff810f3dd4 k [k] fget_light
1.11% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000567ff f [.] js_TraceObject
0.98% firefox /usr/lib64/firefox-3.5.2/firefox 0x000000000000dd23 b [.] arena_ralloc[acme@doppio linux-2.6-tip]$
Just after the symbol address. To help in figuring out symbol resolution issues.
--- tools/perf/builtin-report.c | 3 +- tools/perf/util/symbol.c | 57 ++++++++++++++++++++++++++++++++++-------- tools/perf/util/symbol.h | 2 + 3 files changed, 50 insertions(+), 12 deletions(-)
tools/perf/builtin-report.c +2 -1
@@ -698,7 +698,8 @@ sort__sym_print(FILE *fp, struct hist_entry *self, unsigned int width __used)size_t ret =0 ;if (verbose) - ret +=repsep_fprintf (fp,"%#018llx " , (u64 )self->ip); + ret +=repsep_fprintf (fp,"%#018llx %c " , (u64 )self->ip, +dso__symtab_origin (self->dso)); ret +=repsep_fprintf (fp,"[%c] " , self->level);if (self->sym) {
tools/perf/util/symbol.c +46 -11
117 lines not on this page · raw message
tools/perf/util/symbol.h +2 -0
@@ -26,6 +26,7 @@ struct dso {unsigned int sym_priv_size;unsigned char adjust_symbols;unsigned char slen_calculated; +unsigned char origin;char name[0 ]; };
@@ -49,6 +50,7 @@ int dso__load_modules(struct dso *self, symbol_filter_t filter, int verbose);int dso__load (struct dso *self,symbol_filter_t filter,int verbose);size_t dso__fprintf (struct dso *self,FILE *fp); +char dso__symtab_origin (const struct dso *self);void symbol__init (void );#endif /* _PERF_SYMBOL_ */
Signature · 1 line
1.6.2.5
[tip:perfcounters/urgent] perf report: Help the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
Commit-ID: 3c6900b7313d6b9a42d7b7d0b7a061c53a8e57d6 Gitweb: http://git.kernel.org/tip/3c6900b7313d6b9a42d7b7d0b7a061c53a8e57d6 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 6 Aug 2009 14:43:17 -0300 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 7 Aug 2009 08:40:11 +0200
perf report: Help the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
Used with perf report --verbose:
[acme@doppio linux-2.6-tip]$ perf report -v | head -16
5.17% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x00000000005d8eee f [.] imgContainer::DrawFrameTo(gfxIImageFrame*, gfxIImageFrame*, nsRect&)
2.56% firefox /lib64/libpthread-2.10.1.so 0x0000000000008e02 d [.] __pthread_mutex_lock_internal
1.94% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x0000000000d0af8f f [.] SearchTable
1.75% firefox [kernel] 0xffffffffff60013b k [.] vread_hpet
1.63% firefox /lib64/libpthread-2.10.1.so 0x000000000000a404 d [.] __pthread_mutex_unlock
1.47% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000482ea f [.] js_Interpret
1.42% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x000000000003eda3 f [.] JS_CallTracer
1.24% firefox [kernel] 0xffffffff8102ca4a k [k] read_hpet
1.16% firefox [kernel] 0xffffffff810f3dd4 k [k] fget_light
1.11% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000567ff f [.] js_TraceObject
0.98% firefox /usr/lib64/firefox-3.5.2/firefox 0x000000000000dd23 b [.] arena_ralloc[acme@doppio linux-2.6-tip]$
The new field is just after the symbol address. To help in figuring out symbol resolution bugs.
LKML-Reference: <[email protected]>
--- tools/perf/builtin-report.c | 3 +- tools/perf/util/symbol.c | 57 ++++++++++++++++++++++++++++++++++-------- tools/perf/util/symbol.h | 2 + 3 files changed, 50 insertions(+), 12 deletions(-)
tools/perf/builtin-report.c +2 -1
@@ -700,7 +700,8 @@ sort__sym_print(FILE *fp, struct hist_entry *self, unsigned int width __used)size_t ret =0 ;if (verbose) - ret +=repsep_fprintf (fp,"%#018llx " , (u64 )self->ip); + ret +=repsep_fprintf (fp,"%#018llx %c " , (u64 )self->ip, +dso__symtab_origin (self->dso)); ret +=repsep_fprintf (fp,"[%c] " , self->level);if (self->sym) {
tools/perf/util/symbol.c +46 -11
117 lines not on this page · raw message
tools/perf/util/symbol.h +2 -0
@@ -26,6 +26,7 @@ struct dso {unsigned int sym_priv_size;unsigned char adjust_symbols;unsigned char slen_calculated; +unsigned char origin;char name[0 ]; };
@@ -49,6 +50,7 @@ int dso__load_modules(struct dso *self, symbol_filter_t filter, int verbose);int dso__load (struct dso *self,symbol_filter_t filter,int verbose);size_t dso__fprintf (struct dso *self,FILE *fp); +char dso__symtab_origin (const struct dso *self);void symbol__init (void );#endif /* _PERF_SYMBOL_ */
[tip:perfcounters/urgent] perf report: Help the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
In reply to Arnaldo Carvalho de MeloCommit-ID: eeafb52ac8fa0fddcabe3d6e28c38d5c948d327e Gitweb: http://git.kernel.org/tip/eeafb52ac8fa0fddcabe3d6e28c38d5c948d327e Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 6 Aug 2009 14:43:17 -0300 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 7 Aug 2009 09:37:31 +0200
perf report: Help the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
Used with perf report --verbose:
[acme@doppio linux-2.6-tip]$ perf report -v | head -16
5.17% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x00000000005d8eee f [.] imgContainer::DrawFrameTo(gfxIImageFrame*, gfxIImageFrame*, nsRect&)
2.56% firefox /lib64/libpthread-2.10.1.so 0x0000000000008e02 d [.] __pthread_mutex_lock_internal
1.94% firefox /usr/lib64/xulrunner-1.9.1/libxul.so 0x0000000000d0af8f f [.] SearchTable
1.75% firefox [kernel] 0xffffffffff60013b k [.] vread_hpet
1.63% firefox /lib64/libpthread-2.10.1.so 0x000000000000a404 d [.] __pthread_mutex_unlock
1.47% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000482ea f [.] js_Interpret
1.42% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x000000000003eda3 f [.] JS_CallTracer
1.24% firefox [kernel] 0xffffffff8102ca4a k [k] read_hpet
1.16% firefox [kernel] 0xffffffff810f3dd4 k [k] fget_light
1.11% firefox /usr/lib64/xulrunner-1.9.1/libmozjs.so 0x00000000000567ff f [.] js_TraceObject
0.98% firefox /usr/lib64/firefox-3.5.2/firefox 0x000000000000dd23 b [.] arena_ralloc[acme@doppio linux-2.6-tip]$
The new field is just after the symbol address. To help in figuring out symbol resolution bugs.
LKML-Reference: <[email protected]>
--- tools/perf/builtin-report.c | 3 +- tools/perf/util/symbol.c | 57 ++++++++++++++++++++++++++++++++++-------- tools/perf/util/symbol.h | 2 + 3 files changed, 50 insertions(+), 12 deletions(-)
tools/perf/builtin-report.c +2 -1
@@ -700,7 +700,8 @@ sort__sym_print(FILE *fp, struct hist_entry *self, unsigned int width __used)size_t ret =0 ;if (verbose) - ret +=repsep_fprintf (fp,"%#018llx " , (u64 )self->ip); + ret +=repsep_fprintf (fp,"%#018llx %c " , (u64 )self->ip, +dso__symtab_origin (self->dso)); ret +=repsep_fprintf (fp,"[%c] " , self->level);if (self->sym) {
tools/perf/util/symbol.c +46 -11
117 lines not on this page · raw message
tools/perf/util/symbol.h +2 -0
@@ -26,6 +26,7 @@ struct dso {unsigned int sym_priv_size;unsigned char adjust_symbols;unsigned char slen_calculated; +unsigned char origin;char name[0 ]; };
@@ -49,6 +50,7 @@ int dso__load_modules(struct dso *self, symbol_filter_t filter, int verbose);int dso__load (struct dso *self,symbol_filter_t filter,int verbose);size_t dso__fprintf (struct dso *self,FILE *fp); +char dso__symtab_origin (const struct dso *self);void symbol__init (void );#endif /* _PERF_SYMBOL_ */