perf report/top: Add menu entry for toggling callchain expansion
A message that is not in the archive (sent off-list or not yet received): [email protected]
The following commit has been merged into the perf/core branch of tip:
Commit-ID: d5a599d9890f51cb2cabfa21f8c38bb6f51f4bb2 Gitweb: https://git.kernel.org/tip/d5a599d9890f51cb2cabfa21f8c38bb6f51f4bb2 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 12 Dec 2019 10:58:21 -03:00 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitterDate: Mon, 06 Jan 2020 11:46:10 -03:00
perf report/top: Add menu entry for toggling callchain expansion
Since previously pressing ENTER toggled expansion/collapse of callchain entries and now brings up the same menu used when callchains are not present, add an entry so that users can quickly figure out the change in behaviour.
Its worth mentioning that we also always had 'e'/'c' to expand/collapse all entries in a hist entry and 'E'/'C' for all hist entries.
Suggested-by Linus Torvalds <[email protected]>
Reviewed-by Jiri Olsa <[email protected]>
Cc Adrian Hunter <[email protected]>
Cc Andi Kleen <[email protected]>
Cc Jin Yao <[email protected]>
Cc Kan Liang <[email protected]>
Cc Namhyung Kim <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/ui/browsers/hists.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
tools/perf/ui/browsers/hists.c +21 -0
@@ -2527,6 +2527,26 @@ add_dso_opt(struct hist_browser *browser, struct popup_action *act,return 1 ; } +static int do_toggle_callchain (struct hist_browser *browser,struct popup_action *act__maybe_unused ) +{ +hist_browser__toggle_fold (browser); +return 0 ; +} + +static int add_callchain_toggle_opt (struct hist_browser *browser,struct popup_action *act,char **optstr) +{ +struct hist_entry *he = browser->he_selection; + +if (!he->has_children) +return 0 ; + +if (asprintf (optstr,"Expand/Collapse callchain" ) <0 ) +return 0 ; + + act->fn = do_toggle_callchain; +return 1 ; +} +static int do_browse_map (struct hist_browser *browser__maybe_unused ,struct popup_action *act)
@@ -3137,6 +3157,7 @@ skip_annotation: &options[nr_options], thread); nr_options +=add_dso_opt (browser, &actions[nr_options], &options[nr_options], map); + nr_options +=add_callchain_toggle_opt (browser, &actions[nr_options], &options[nr_options]); nr_options += add_map_opt(browser, &actions[nr_options], &options[nr_options], browser->selection ?