[PATCH v5 12/14] perf: Dont adjust symbols on name lookup

From: Srikar Dronamraju
Date: Mon Jun 14 2010 - 04:32:15 EST


perf_adjust_symbol_name.patch

From: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>

Adjusting symbols is not needed if we are searching by name even
if the symbols correspond to user space objects.
Infact if we adjust and search symbols by name, we get incorrect
results.

Signed-off-by: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
---

tools/perf/util/symbol.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)


diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index b63e571..2d53dfc 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -992,12 +992,14 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
nr_syms = shdr.sh_size / shdr.sh_entsize;

memset(&sym, 0, sizeof(sym));
- if (self->kernel == DSO_TYPE_USER) {
+ if (self->kernel != DSO_TYPE_USER || symbol_conf.sort_by_name)
+ self->adjust_symbols = 0;
+ else {
self->adjust_symbols = (ehdr.e_type == ET_EXEC ||
elf_section_by_name(elf, &ehdr, &shdr,
".gnu.prelink_undo",
NULL) != NULL);
- } else self->adjust_symbols = 0;
+ }

elf_symtab__for_each_symbol(syms, nr_syms, idx, sym) {
struct symbol *f;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/