perf tools: Simplify the symbol priv area mechanism
Before we were storing this in the DSO, but in fact this is a
property of the 'symbol' class, not something that will vary
among DSOs, so move it to a global variable and initialize it
using the existing symbol__init routine.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <1256927305-4628-2-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index ee87640..2aea913 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -789,7 +789,7 @@
strstr(name, "_text_end"))
return 1;
- syme = dso__sym_priv(map->dso, sym);
+ syme = symbol__priv(sym);
syme->map = map;
pthread_mutex_init(&syme->source_lock, NULL);
if (!sym_filter_entry && sym_filter && !strcmp(name, sym_filter))
@@ -807,8 +807,7 @@
static int parse_symbols(void)
{
- if (dsos__load_kernel(vmlinux_name, sizeof(struct sym_entry),
- symbol_filter, 1) <= 0)
+ if (dsos__load_kernel(vmlinux_name, symbol_filter, 1) <= 0)
return -1;
if (dump_symtab)
@@ -859,7 +858,7 @@
return;
}
- syme = dso__sym_priv(map->dso, sym);
+ syme = symbol__priv(sym);
if (!syme->skip) {
syme->count[counter]++;
@@ -878,8 +877,7 @@
struct thread *thread = threads__findnew(self->mmap.pid);
if (thread != NULL) {
- struct map *map = map__new(&self->mmap, NULL, 0,
- sizeof(struct sym_entry));
+ struct map *map = map__new(&self->mmap, NULL, 0);
if (map != NULL)
thread__insert_map(thread, map);
}
@@ -1176,7 +1174,7 @@
{
int counter;
- symbol__init();
+ symbol__init(sizeof(struct sym_entry));
page_size = sysconf(_SC_PAGE_SIZE);