Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14c8dde1 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

perf annotate: Replace symbol__alloc_hists() with symbol__hists()

Its a bit shorter, so ditch the old symbol__alloc_hists() function.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-m7tienxk7dijh5ln62yln1m9@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 0693f758
Loading
Loading
Loading
Loading
+1 −7
Original line number Original line Diff line number Diff line
@@ -123,14 +123,9 @@ static int perf_top__parse_source(struct perf_top *top, struct hist_entry *he)
	}
	}


	notes = symbol__annotation(sym);
	notes = symbol__annotation(sym);
	if (notes->src != NULL) {
		pthread_mutex_lock(&notes->lock);
		goto out_assign;
	}

	pthread_mutex_lock(&notes->lock);
	pthread_mutex_lock(&notes->lock);


	if (symbol__alloc_hist(sym) < 0) {
	if (!symbol__hists(sym, top->evlist->nr_entries)) {
		pthread_mutex_unlock(&notes->lock);
		pthread_mutex_unlock(&notes->lock);
		pr_err("Not enough memory for annotating '%s' symbol!\n",
		pr_err("Not enough memory for annotating '%s' symbol!\n",
		       sym->name);
		       sym->name);
@@ -140,7 +135,6 @@ static int perf_top__parse_source(struct perf_top *top, struct hist_entry *he)


	err = symbol__annotate(sym, map, evsel, 0, NULL);
	err = symbol__annotate(sym, map, evsel, 0, NULL);
	if (err == 0) {
	if (err == 0) {
out_assign:
		top->sym_filter_entry = he;
		top->sym_filter_entry = he;
	} else {
	} else {
		char msg[BUFSIZ];
		char msg[BUFSIZ];
+1 −1
Original line number Original line Diff line number Diff line
@@ -410,7 +410,7 @@ static bool annotate_browser__callq(struct annotate_browser *browser,
	notes = symbol__annotation(dl->ops.target.sym);
	notes = symbol__annotation(dl->ops.target.sym);
	pthread_mutex_lock(&notes->lock);
	pthread_mutex_lock(&notes->lock);


	if (notes->src == NULL && symbol__alloc_hist(dl->ops.target.sym) < 0) {
	if (!symbol__hists(dl->ops.target.sym, evsel->evlist->nr_entries)) {
		pthread_mutex_unlock(&notes->lock);
		pthread_mutex_unlock(&notes->lock);
		ui__warning("Not enough memory for annotating '%s' symbol!\n",
		ui__warning("Not enough memory for annotating '%s' symbol!\n",
			    dl->ops.target.sym->name);
			    dl->ops.target.sym->name);
+2 −19
Original line number Original line Diff line number Diff line
@@ -689,7 +689,7 @@ static struct annotated_source *annotated_source__new(void)
	return src;
	return src;
}
}


static void annotated_source__delete(struct annotated_source *src)
static __maybe_unused void annotated_source__delete(struct annotated_source *src)
{
{
	if (src == NULL)
	if (src == NULL)
		return;
		return;
@@ -729,23 +729,6 @@ static int annotated_source__alloc_histograms(struct annotated_source *src,
	return src->histograms ? 0 : -1;
	return src->histograms ? 0 : -1;
}
}


int symbol__alloc_hist(struct symbol *sym)
{
	size_t size = symbol__size(sym);
	struct annotation *notes = symbol__annotation(sym);

	notes->src = annotated_source__new();
	if (notes->src == NULL)
		return -1;

	if (annotated_source__alloc_histograms(notes->src, size, symbol_conf.nr_events) < 0) {
		annotated_source__delete(notes->src);
		notes->src = NULL;
		return -1;
	}
	return 0;
}

/* The cycles histogram is lazily allocated. */
/* The cycles histogram is lazily allocated. */
static int symbol__alloc_hist_cycles(struct symbol *sym)
static int symbol__alloc_hist_cycles(struct symbol *sym)
{
{
@@ -868,7 +851,7 @@ static struct cyc_hist *symbol__cycles_hist(struct symbol *sym)
	return notes->src->cycles_hist;
	return notes->src->cycles_hist;
}
}


static struct annotated_source *symbol__hists(struct symbol *sym, int nr_hists)
struct annotated_source *symbol__hists(struct symbol *sym, int nr_hists)
{
{
	struct annotation *notes = symbol__annotation(sym);
	struct annotation *notes = symbol__annotation(sym);


+1 −1
Original line number Original line Diff line number Diff line
@@ -292,7 +292,7 @@ int addr_map_symbol__account_cycles(struct addr_map_symbol *ams,
int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *sample,
int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *sample,
				 struct perf_evsel *evsel, u64 addr);
				 struct perf_evsel *evsel, u64 addr);


int symbol__alloc_hist(struct symbol *sym);
struct annotated_source *symbol__hists(struct symbol *sym, int nr_hists);
void symbol__annotate_zero_histograms(struct symbol *sym);
void symbol__annotate_zero_histograms(struct symbol *sym);


int symbol__annotate(struct symbol *sym, struct map *map,
int symbol__annotate(struct symbol *sym, struct map *map,