diff options
author | Namhyung Kim <namhyung@kernel.org> | 2016-09-20 01:30:23 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-09-20 15:08:30 -0400 |
commit | 5ff3e7a224d40f9dd73625b91377787034a8b35e (patch) | |
tree | db940207876b8e1cc5b64686bf674ebc9119c91b /tools | |
parent | 5f62d4fd3593bc5bb33c75238cc1d6bf0b34fac9 (diff) |
perf ui/tui: Reset output width for hierarchy
When --hierarchy option is used, each entry has its own hpp_list to show
the result. But it missed to update width of each column.
Before:
- 46.29% 48.12% netctl-auto
+ 31.44% 29.25% [kernel.vmlinux]
+ 8.52% 11.55% libc-2.22.so
+ 5.19% 6.91% bash
+ 10.75% 11.83% wpa_cli
+ 8.25% 2.23% swapper
+ 6.45% 5.40% tr
+ 4.81% 8.09% awk
+ 4.15% 2.85% firefox
+ 3.86% 2.53% sh
After:
- 46.29% 48.12% netctl-auto
+ 31.44% 29.25% [kernel.vmlinux]
+ 8.52% 11.55% libc-2.22.so
+ 5.19% 6.91% bash
+ 10.75% 11.83% wpa_cli
+ 8.25% 2.23% swapper
+ 6.45% 5.40% tr
+ 4.81% 8.09% awk
+ 4.15% 2.85% firefox
+ 3.86% 2.53% sh
Committer note:
Full testing instructions:
1) Record with an event group:
$ perf record -e '{cycles,instructions}' make -j4
2) Use report in hierarchy mode, to get a few expanded trees on
the same screen, use --percent-limit:
$ perf report --hierarchy --percent-limit 0.5
Samples: 103K of event 'anon group { cycles:u, instructions:u }',
Event count (approx.): 57317631725
Overhead Command / Shared Object / Symbol ◆
- 58.89% 55.12% cc1 ▒
- 50.26% 48.10% cc1 ▒
3.61% 5.13% [.] _cpp_lex_token ▒
2.58% 0.78% [.] ht_lookup_with_hash ▒
1.31% 1.30% [.] ggc_internal_alloc ▒
1.08% 2.25% [.] get_combined_adhoc_loc ▒
1.01% 1.95% [.] ira_init ▒
0.96% 1.78% [.] linemap_position_for_column ▒
0.65% 1.01% [.] cpp_get_token_with_location ▒
- 7.52% 6.58% libc-2.23.so ▒
1.70% 1.78% [.] _int_malloc ▒
0.69% 0.75% [.] _int_free ▒
0.67% 0.42% [.] malloc_consolidate ▒
- 0.58% 0.42% ld-2.23.so ▒
no entry >= 0.50% ▒
- 0.52% 0.03% [kernel.vmlinux] ▒
no entry >= 0.50% ▒
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Fixes: 1b2dbbf41a0f ("perf hists: Use own hpp_list for hierarchy mode")
Link: http://lkml.kernel.org/r/20160920053025.13989-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.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index 35e44b1879e3..49db16334814 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c | |||
@@ -2067,6 +2067,7 @@ void hist_browser__init(struct hist_browser *browser, | |||
2067 | struct hists *hists) | 2067 | struct hists *hists) |
2068 | { | 2068 | { |
2069 | struct perf_hpp_fmt *fmt; | 2069 | struct perf_hpp_fmt *fmt; |
2070 | struct perf_hpp_list_node *node; | ||
2070 | 2071 | ||
2071 | browser->hists = hists; | 2072 | browser->hists = hists; |
2072 | browser->b.refresh = hist_browser__refresh; | 2073 | browser->b.refresh = hist_browser__refresh; |
@@ -2079,6 +2080,11 @@ void hist_browser__init(struct hist_browser *browser, | |||
2079 | perf_hpp__reset_width(fmt, hists); | 2080 | perf_hpp__reset_width(fmt, hists); |
2080 | ++browser->b.columns; | 2081 | ++browser->b.columns; |
2081 | } | 2082 | } |
2083 | /* hierarchy entries have their own hpp list */ | ||
2084 | list_for_each_entry(node, &hists->hpp_formats, list) { | ||
2085 | perf_hpp_list__for_each_format(&node->hpp, fmt) | ||
2086 | perf_hpp__reset_width(fmt, hists); | ||
2087 | } | ||
2082 | } | 2088 | } |
2083 | 2089 | ||
2084 | struct hist_browser *hist_browser__new(struct hists *hists) | 2090 | struct hist_browser *hist_browser__new(struct hists *hists) |