Skip to contentSkip to conversation

perf report: Show the symtab origin (DSO, build-id, kernel, etc)

PATCH In review Arnaldo Carvalho de Melo 1 participant 3 messages Aug 6, 2009 – Aug 7, 2009 perf events

lore
Share & tools
lore
#0 lore raw

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
index 8cb58d6..b3a17ea 100644
@@ -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
index 2f92b21..1e003ec 100644
@@ -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
#1 lore raw

[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
index 8420546..a5e2f8d 100644
@@ -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
index 2f92b21..1e003ec 100644
@@ -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_ */
#2 lore raw

[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 Melo
Commit-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
index 8420546..a5e2f8d 100644
@@ -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
index 2f92b21..1e003ec 100644
@@ -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_ */