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

Commit 05d3f1a1 authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Move symbol__calc_percent() call to outside symbol__disassemble()



We need to call symbol__calc_percent() periodicaly for top, so it's no
longer convenient to keep it in symbol__disassemble().

Let's separate the symbol__disassemble() to allocate and init
the symbol annotation structs and symbol__calc_percent() to
compute the lines percentages based on symbol hists data.

Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-gtnp8t4tb00q6lag07psn5nq@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 9e4e0a9d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1126,6 +1126,8 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map,
		goto out_free_offsets;
	}

	symbol__calc_percent(sym, evsel);

	ui_helpline__push("Press ESC to exit");

	notes = symbol__annotation(sym);
+2 −0
Original line number Diff line number Diff line
@@ -177,6 +177,8 @@ static int symbol__gtk_annotate(struct symbol *sym, struct map *map,
		return -1;
	}

	symbol__calc_percent(sym, evsel);

	if (perf_gtk__is_active_context(pgctx)) {
		window = pgctx->main_window;
		notebook = pgctx->notebook;
+3 −6
Original line number Diff line number Diff line
@@ -1653,12 +1653,7 @@ int symbol__annotate(struct symbol *sym, struct map *map,
		}
	}

	err = symbol__disassemble(sym, &args);
	if (!err)
		symbol__calc_percent(sym, evsel);

	return err;

	return symbol__disassemble(sym, &args);
}

static void insert_source_line(struct rb_root *root, struct annotation_line *al)
@@ -2005,6 +2000,8 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map,
	if (symbol__annotate(sym, map, evsel, 0, NULL, NULL) < 0)
		return -1;

	symbol__calc_percent(sym, evsel);

	if (print_lines) {
		srcline_full_filename = full_paths;
		symbol__calc_lines(sym, map, &source_line);