]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
perf annotate: Pass hist_entry to annotate functions
authorNamhyung Kim <namhyung@kernel.org>
Mon, 10 Mar 2025 22:49:22 +0000 (15:49 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 13 Mar 2025 07:19:51 +0000 (00:19 -0700)
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>
tools/perf/builtin-annotate.c
tools/perf/builtin-top.c
tools/perf/util/annotate.c
tools/perf/util/annotate.h

index 836ae0122dabd0eae970f8dce38f87a88ccfe29b..966950c38306d6ea4bc3b790a3a4f30b99cff9e7 100644 (file)
@@ -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 @@ find_next:
                        if (next != NULL)
                                nd = next;
                } else {
-                       hist_entry__tty_annotate(he, evsel, ann);
+                       hist_entry__stdio_annotate(he, evsel, ann);
                        nd = rb_next(nd);
                }
        }
index 2c41d3aea46b204bf7174e6fe1f0ffe093510898..1061f4eebc3f64146f18c01e88e8c01708cdf441 100644 (file)
@@ -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)
index 469fcc945126f4f756368dbad651ecc73ca66ff0..029e47a521caf1af5c00e4c55b7f9628a3dbd360 100644 (file)
@@ -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);
 
index 30a344afd91a5865e912c7d92679d3778005b1c5..4eda409bfe0ea8598d16a4414acd78dfd0f0c3b4 100644 (file)
@@ -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,