Skip to contentSkip to conversation

Patch "perf ui/stdio: Always reset output width for hierarchy" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Oct 29, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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 9a6ad25b5a2026ba1399abc879ec623957867e79 Mon 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_sym

Move the code into hists__fprintf() so that it can be called always. Also it'd be better to put similar code together.

Cc Andi Kleen <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Peter Zijlstra <[email protected]>
Fixes 1b2dbbf41a0f ("perf hists: Use own hpp_list for hierarchy mode")
---
 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(struct
 				 struct 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 *hist
 
 	hists__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