perf annotate: Use the sym_priv_size area for the histogram

We have this sym_priv_size mechanism for attaching private areas
to struct symbol entries but annotate wasn't using it, adding
private areas to struct symbol in addition to a ->priv pointer.

Scrap all that and use the sym_priv_size mechanism.

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: <1256055940-19511-1-git-send-email-acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Arnaldo Carvalho de Melo 2009-10-20 14:25:40 -02:00 committed by Ingo Molnar
parent ed52ce2e3c
commit e42049926e
7 changed files with 132 additions and 83 deletions

View file

@ -2,6 +2,7 @@
#define __PERF_SYMBOL 1
#include <linux/types.h>
#include <stdbool.h>
#include "types.h"
#include <linux/list.h>
#include <linux/rbtree.h>
@ -35,9 +36,6 @@ struct symbol {
struct rb_node rb_node;
u64 start;
u64 end;
u64 hist_sum;
u64 *hist;
void *priv;
char name[0];
};
@ -54,10 +52,6 @@ struct dso {
char name[0];
};
extern const char *sym_hist_filter;
typedef int (*symbol_filter_t)(struct map *map, struct symbol *sym);
struct dso *dso__new(const char *name, unsigned int sym_priv_size);
void dso__delete(struct dso *self);
@ -70,15 +64,16 @@ struct symbol *dso__find_symbol(struct dso *self, u64 ip);
int dsos__load_kernel(const char *vmlinux, unsigned int sym_priv_size,
symbol_filter_t filter, int verbose, int modules);
int dso__load(struct dso *self, struct map *map, symbol_filter_t filter,
int verbose);
struct dso *dsos__findnew(const char *name);
struct dso *dsos__findnew(const char *name, unsigned int sym_priv_size,
bool *is_new);
int dso__load(struct dso *self, struct map *map,
symbol_filter_t filter, int v);
void dsos__fprintf(FILE *fp);
size_t dso__fprintf(struct dso *self, FILE *fp);
char dso__symtab_origin(const struct dso *self);
int load_kernel(void);
int load_kernel(unsigned int sym_priv_size, symbol_filter_t filter);
void symbol__init(void);