]> git.itanic.dy.fi Git - linux-stable/commitdiff
perf annotate: Move some source code related fields from 'struct annotation' to ...
authorNamhyung Kim <namhyung@kernel.org>
Fri, 3 Nov 2023 19:19:06 +0000 (12:19 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 9 Nov 2023 16:49:33 +0000 (13:49 -0300)
Some fields in the 'struct annotation' are only used with 'struct
annotated_source' so better to be moved there in order to reduce memory
consumption for other symbols.

Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20231103191907.54531-5-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/browsers/annotate.c
tools/perf/util/annotate.c
tools/perf/util/annotate.h

index d2470f87344d0edb4cc0f86ca14b69683ffeaf87..1b42db70c998742c0d5b1690e17e7b78b8dd13f1 100644 (file)
@@ -384,7 +384,7 @@ static bool annotate_browser__toggle_source(struct annotate_browser *browser)
                if (al->idx_asm < offset)
                        offset = al->idx;
 
-               browser->b.nr_entries = notes->nr_entries;
+               browser->b.nr_entries = notes->src->nr_entries;
                notes->options->hide_src_code = false;
                browser->b.seek(&browser->b, -offset, SEEK_CUR);
                browser->b.top_idx = al->idx - offset;
@@ -402,7 +402,7 @@ static bool annotate_browser__toggle_source(struct annotate_browser *browser)
                if (al->idx_asm < offset)
                        offset = al->idx_asm;
 
-               browser->b.nr_entries = notes->nr_asm_entries;
+               browser->b.nr_entries = notes->src->nr_asm_entries;
                notes->options->hide_src_code = true;
                browser->b.seek(&browser->b, -offset, SEEK_CUR);
                browser->b.top_idx = al->idx_asm - offset;
@@ -435,7 +435,7 @@ static void ui_browser__init_asm_mode(struct ui_browser *browser)
 {
        struct annotation *notes = browser__annotation(browser);
        ui_browser__reset_index(browser);
-       browser->nr_entries = notes->nr_asm_entries;
+       browser->nr_entries = notes->src->nr_asm_entries;
 }
 
 static int sym_title(struct symbol *sym, struct map *map, char *title,
@@ -860,7 +860,7 @@ static int annotate_browser__run(struct annotate_browser *browser,
                                           browser->b.height,
                                           browser->b.index,
                                           browser->b.top_idx,
-                                          notes->nr_asm_entries);
+                                          notes->src->nr_asm_entries);
                }
                        continue;
                case K_ENTER:
@@ -991,8 +991,8 @@ int symbol__tui_annotate(struct map_symbol *ms, struct evsel *evsel,
 
        ui_helpline__push("Press ESC to exit");
 
-       browser.b.width = notes->max_line_len;
-       browser.b.nr_entries = notes->nr_entries;
+       browser.b.width = notes->src->max_line_len;
+       browser.b.nr_entries = notes->src->nr_entries;
        browser.b.entries = &notes->src->source,
        browser.b.width += 18; /* Percentage */
 
index 077a297f4dadc8d63def9fc8af3cfb09a7775df5..23e68b1abc2fa9b5813e0f82ebabfd377720a3dc 100644 (file)
@@ -2825,19 +2825,20 @@ void annotation__mark_jump_targets(struct annotation *notes, struct symbol *sym)
 void annotation__set_offsets(struct annotation *notes, s64 size)
 {
        struct annotation_line *al;
+       struct annotated_source *src = notes->src;
 
-       notes->max_line_len = 0;
-       notes->nr_entries = 0;
-       notes->nr_asm_entries = 0;
+       src->max_line_len = 0;
+       src->nr_entries = 0;
+       src->nr_asm_entries = 0;
 
-       list_for_each_entry(al, &notes->src->source, node) {
+       list_for_each_entry(al, &src->source, node) {
                size_t line_len = strlen(al->line);
 
-               if (notes->max_line_len < line_len)
-                       notes->max_line_len = line_len;
-               al->idx = notes->nr_entries++;
+               if (src->max_line_len < line_len)
+                       src->max_line_len = line_len;
+               al->idx = src->nr_entries++;
                if (al->offset != -1) {
-                       al->idx_asm = notes->nr_asm_entries++;
+                       al->idx_asm = src->nr_asm_entries++;
                        /*
                         * FIXME: short term bandaid to cope with assembly
                         * routines that comes with labels in the same column
index 8497130989538f09c5e853143ba17d3b40a7c420..9eb7b6d3fe958f86b11bcf13dcee55f0ed0bc02f 100644 (file)
@@ -268,10 +268,13 @@ struct cyc_hist {
  * returns.
  */
 struct annotated_source {
-       struct list_head   source;
-       int                nr_histograms;
-       size_t             sizeof_sym_hist;
-       struct sym_hist    *histograms;
+       struct list_head        source;
+       size_t                  sizeof_sym_hist;
+       struct sym_hist         *histograms;
+       int                     nr_histograms;
+       int                     nr_entries;
+       int                     nr_asm_entries;
+       u16                     max_line_len;
 };
 
 struct annotated_branch {
@@ -289,9 +292,6 @@ struct LOCKABLE annotation {
        struct annotation_line  **offsets;
        int                     nr_events;
        int                     max_jump_sources;
-       int                     nr_entries;
-       int                     nr_asm_entries;
-       u16                     max_line_len;
        struct {
                u8              addr;
                u8              jumps;