Patch "perf ui/stdio: Always reset output width for hierarchy" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
perf ui/stdio: Always reset output width for hierarchy
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
perf-ui-stdio-always-reset-output-width-for-hierarchy.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
9a6ad25b5a2026ba1399abc879ec623957867e79Mon Sep 17 00:00:00 2001
From: Namhyung Kim <[email protected]>
Date: Tue, 13 Sep 2016 16:45:49 +0900
Subject: perf ui/stdio: Always reset output width for hierarchy
From: Namhyung Kim <[email protected]>
commit 9a6ad25b5a2026ba1399abc879ec623957867e79 upstream.
When the --hierarchy option is used, each entry has its own hpp_list to show the result. But it is not updating the width of each column for perf-top. The perf-report command has no problem since it resets it during header display.
$ sudo perf top --hierarchy --stdio
PerfTop: 160 irqs/sec kernel:38.8% exact: 100.0%
[4000Hz cycles:pp], (all, 12 CPUs)
----------------------------------------------------------------------
52.32% perf
24.74% [.] __symbols__insert
5.62% [.] rb_next
5.14% [.] dso__load_symMove the code into hists__fprintf() so that it can be called always. Also it'd be better to put similar code together.
--- tools/perf/ui/stdio/hist.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
tools/perf/ui/stdio/hist.c +6 -8
@@ -628,14 +628,6 @@ hists__fprintf_hierarchy_headers(structstruct perf_hpp *hpp, FILE *fp) { - struct perf_hpp_list_node *fmt_node; -struct perf_hpp_fmt *fmt; - -list_for_each_entry (fmt_node, &hists->hpp_formats, list) { -perf_hpp_list__for_each_format (&fmt_node->hpp, fmt) -perf_hpp__reset_width (fmt, hists); - } - return print_hierarchy_header(hists, hpp, symbol_conf.field_sep, fp); }
@@ -714,6 +706,7 @@ size_t hists__fprintf(struct hists *hist bool use_callchain) {struct perf_hpp_fmt *fmt; +struct perf_hpp_list_node *node;struct rb_node *nd;size_t ret =0 ;const char *sep = symbol_conf.field_sep;
@@ -726,6 +719,11 @@ size_t hists__fprintf(struct hists *histhists__for_each_format (hists, fmt)perf_hpp__reset_width (fmt, hists); +/* hierarchy entries have their own hpp list */ +list_for_each_entry (node, &hists->hpp_formats, list) { +perf_hpp_list__for_each_format (&node->hpp, fmt) +perf_hpp__reset_width (fmt, hists); + }if (symbol_conf.col_width_list_str)perf_hpp__set_user_width (symbol_conf.col_width_list_str);
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/perf-ui-stdio-always-reset-output-width-for-hierarchy.patch queue-4.8/perf-ui-tui-reset-output-width-for-hierarchy.patch queue-4.8/perf-hists-browser-fix-event-group-display.patch queue-4.8/perf-symbols-check-symbol_conf.allow_aliases-for-kallsyms-loading-too.patch queue-4.8/perf-symbols-fixup-symbol-sizes-before-picking-best-ones.patch