mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
perf annotate: Pass hist_entry to annotate functions
It's a prepartion to support code annotation and data type annotation at the same time. Data type annotation needs more information in the hist_entry so it needs to be passed deeper. Also rename a function with the same name in the builtin-annotate.c to hist_entry__stdio_annotate since it matches better to the command line option. And change the condition inside to be simpler. Reviewed-by: Ian Rogers <irogers@google.com> Link: https://lore.kernel.org/r/20250310224925.799005-5-namhyung@kernel.org Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
9aa3cbbffb
commit
fe8da6692a
|
|
@ -321,14 +321,14 @@ static int process_feature_event(struct perf_session *session,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int hist_entry__tty_annotate(struct hist_entry *he,
|
||||
static int hist_entry__stdio_annotate(struct hist_entry *he,
|
||||
struct evsel *evsel,
|
||||
struct perf_annotate *ann)
|
||||
{
|
||||
if (!ann->use_stdio2)
|
||||
return symbol__tty_annotate(&he->ms, evsel);
|
||||
if (ann->use_stdio2)
|
||||
return hist_entry__tty_annotate2(he, evsel);
|
||||
|
||||
return symbol__tty_annotate2(&he->ms, evsel);
|
||||
return hist_entry__tty_annotate(he, evsel);
|
||||
}
|
||||
|
||||
static void print_annotate_data_stat(struct annotated_data_stat *s)
|
||||
|
|
@ -541,7 +541,7 @@ static void hists__find_annotations(struct hists *hists,
|
|||
if (next != NULL)
|
||||
nd = next;
|
||||
} else {
|
||||
hist_entry__tty_annotate(he, evsel, ann);
|
||||
hist_entry__stdio_annotate(he, evsel, ann);
|
||||
nd = rb_next(nd);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ static void perf_top__show_details(struct perf_top *top)
|
|||
printf("Showing %s for %s\n", evsel__name(top->sym_evsel), symbol->name);
|
||||
printf(" Events Pcnt (>=%d%%)\n", annotate_opts.min_pcnt);
|
||||
|
||||
more = symbol__annotate_printf(&he->ms, top->sym_evsel);
|
||||
more = hist_entry__annotate_printf(he, top->sym_evsel);
|
||||
|
||||
if (top->evlist->enabled) {
|
||||
if (top->zero)
|
||||
|
|
|
|||
|
|
@ -1174,8 +1174,9 @@ static int annotated_source__addr_fmt_width(struct list_head *lines, u64 start)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int symbol__annotate_printf(struct map_symbol *ms, struct evsel *evsel)
|
||||
int hist_entry__annotate_printf(struct hist_entry *he, struct evsel *evsel)
|
||||
{
|
||||
struct map_symbol *ms = &he->ms;
|
||||
struct map *map = ms->map;
|
||||
struct symbol *sym = ms->sym;
|
||||
struct dso *dso = map__dso(map);
|
||||
|
|
@ -1600,8 +1601,9 @@ static void symbol__calc_lines(struct map_symbol *ms, struct rb_root *root)
|
|||
annotation__calc_lines(notes, ms, root);
|
||||
}
|
||||
|
||||
int symbol__tty_annotate2(struct map_symbol *ms, struct evsel *evsel)
|
||||
int hist_entry__tty_annotate2(struct hist_entry *he, struct evsel *evsel)
|
||||
{
|
||||
struct map_symbol *ms = &he->ms;
|
||||
struct dso *dso = map__dso(ms->map);
|
||||
struct symbol *sym = ms->sym;
|
||||
struct rb_root source_line = RB_ROOT;
|
||||
|
|
@ -1635,8 +1637,9 @@ int symbol__tty_annotate2(struct map_symbol *ms, struct evsel *evsel)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int symbol__tty_annotate(struct map_symbol *ms, struct evsel *evsel)
|
||||
int hist_entry__tty_annotate(struct hist_entry *he, struct evsel *evsel)
|
||||
{
|
||||
struct map_symbol *ms = &he->ms;
|
||||
struct dso *dso = map__dso(ms->map);
|
||||
struct symbol *sym = ms->sym;
|
||||
struct rb_root source_line = RB_ROOT;
|
||||
|
|
@ -1660,7 +1663,7 @@ int symbol__tty_annotate(struct map_symbol *ms, struct evsel *evsel)
|
|||
print_summary(&source_line, dso__long_name(dso));
|
||||
}
|
||||
|
||||
symbol__annotate_printf(ms, evsel);
|
||||
hist_entry__annotate_printf(he, evsel);
|
||||
|
||||
annotated_source__purge(symbol__annotation(sym)->src);
|
||||
|
||||
|
|
|
|||
|
|
@ -456,7 +456,6 @@ enum symbol_disassemble_errno {
|
|||
|
||||
int symbol__strerror_disassemble(struct map_symbol *ms, int errnum, char *buf, size_t buflen);
|
||||
|
||||
int symbol__annotate_printf(struct map_symbol *ms, struct evsel *evsel);
|
||||
void symbol__annotate_zero_histogram(struct symbol *sym, struct evsel *evsel);
|
||||
void symbol__annotate_decay_histogram(struct symbol *sym, struct evsel *evsel);
|
||||
void annotated_source__purge(struct annotated_source *as);
|
||||
|
|
@ -465,9 +464,9 @@ int map_symbol__annotation_dump(struct map_symbol *ms, struct evsel *evsel);
|
|||
|
||||
bool ui__has_annotation(void);
|
||||
|
||||
int symbol__tty_annotate(struct map_symbol *ms, struct evsel *evsel);
|
||||
|
||||
int symbol__tty_annotate2(struct map_symbol *ms, struct evsel *evsel);
|
||||
int hist_entry__annotate_printf(struct hist_entry *he, struct evsel *evsel);
|
||||
int hist_entry__tty_annotate(struct hist_entry *he, struct evsel *evsel);
|
||||
int hist_entry__tty_annotate2(struct hist_entry *he, struct evsel *evsel);
|
||||
|
||||
#ifdef HAVE_SLANG_SUPPORT
|
||||
int symbol__tui_annotate(struct map_symbol *ms, struct evsel *evsel,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user