[tip:perf/core] perf c2c report: Recalc width of global sort entries

From: tip-bot for Jiri Olsa
Date: Sat Oct 22 2016 - 04:55:03 EST


Commit-ID: 25aa84e32df06048d2de5c99fdd4a84fe9a3905f
Gitweb: http://git.kernel.org/tip/25aa84e32df06048d2de5c99fdd4a84fe9a3905f
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
AuthorDate: Tue, 7 Jun 2016 19:02:43 +0200
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Fri, 21 Oct 2016 10:31:58 -0300

perf c2c report: Recalc width of global sort entries

Using resort callbacks to compute the columns' width.

Computing only the global ones, c2c entries have fixed width only.

Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Joe Mario <jmario@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-zyayvq2u3dzyf3y7i9jza0lw@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/builtin-c2c.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
index f66a6f3..579c9e9 100644
--- a/tools/perf/builtin-c2c.c
+++ b/tools/perf/builtin-c2c.c
@@ -1728,11 +1728,21 @@ static inline int valid_hitm_or_store(struct hist_entry *he)
return has_hitm || c2c_he->stats.store;
}

+static void calc_width(struct hist_entry *he)
+{
+ struct c2c_hists *c2c_hists;
+
+ c2c_hists = container_of(he->hists, struct c2c_hists, hists);
+ hists__calc_col_len(&c2c_hists->hists, he);
+}
+
static int filter_cb(struct hist_entry *he)
{
if (c2c.show_src && !he->srcline)
he->srcline = hist_entry__get_srcline(he);

+ calc_width(he);
+
if (!valid_hitm_or_store(he))
he->filtered = HIST_FILTER__C2C;

@@ -1748,6 +1758,8 @@ static int resort_cl_cb(struct hist_entry *he)
c2c_he = container_of(he, struct c2c_hist_entry, he);
c2c_hists = c2c_he->hists;

+ calc_width(he);
+
if (display && c2c_hists) {
c2c_hists__reinit(c2c_hists, c2c.cl_output, c2c.cl_resort);