aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2016-10-24 12:21:10 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-10-25 08:52:49 -0400
commit8a06b0be6507f97f3aa92ca814335b8b65fd3de2 (patch)
tree47687c508de5da4e1bf78a1e20bc1210fd1b1052 /tools
parent60758d6668b3e2fa8e5fd143d24d0425203d007e (diff)
perf hist browser: Fix hierarchy column counts
The perf report/top on TUI supports horizontal scrolling using LEFT and RIGHT keys. But it calculate the number of columns incorrectly when hierarchy mode is enabled so that keep pressing RIGHT key can make the output disappeared. In the hierarchy mode, all sort keys are collapsed into a single column, so it needs to be applied when calculating column numbers. Reported-and-Tested-by: Markus Trippelsdorf <markus@trippelsdorf.de> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20161024162110.17918-1-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/ui/browsers/hists.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index ddc4c3e59cc1..84f5dd2fb59c 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -2076,8 +2076,21 @@ void hist_browser__init(struct hist_browser *browser,
2076 browser->b.use_navkeypressed = true; 2076 browser->b.use_navkeypressed = true;
2077 browser->show_headers = symbol_conf.show_hist_headers; 2077 browser->show_headers = symbol_conf.show_hist_headers;
2078 2078
2079 hists__for_each_format(hists, fmt) 2079 if (symbol_conf.report_hierarchy) {
2080 struct perf_hpp_list_node *fmt_node;
2081
2082 /* count overhead columns (in the first node) */
2083 fmt_node = list_first_entry(&hists->hpp_formats,
2084 struct perf_hpp_list_node, list);
2085 perf_hpp_list__for_each_format(&fmt_node->hpp, fmt)
2086 ++browser->b.columns;
2087
2088 /* add a single column for whole hierarchy sort keys*/
2080 ++browser->b.columns; 2089 ++browser->b.columns;
2090 } else {
2091 hists__for_each_format(hists, fmt)
2092 ++browser->b.columns;
2093 }
2081 2094
2082 hists__reset_column_width(hists); 2095 hists__reset_column_width(hists);
2083} 2096}