[PATCH 39/68] perf c2c report: Setup number of header lines for hists

From: Arnaldo Carvalho de Melo
Date: Tue Oct 11 2016 - 13:58:41 EST


From: Jiri Olsa <jolsa@xxxxxxxxxx>

Allow to setup number of header lines for c2c hists objects.

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-4ilsf0ulubrd4y96g7tnpwzk@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/builtin-c2c.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
index 0f898d3ff84c..44a85679a704 100644
--- a/tools/perf/builtin-c2c.c
+++ b/tools/perf/builtin-c2c.c
@@ -100,11 +100,13 @@ static struct hist_entry_ops c2c_entry_ops = {
};

static int c2c_hists__init(struct c2c_hists *hists,
- const char *sort);
+ const char *sort,
+ int nr_header_lines);

static struct c2c_hists*
he__get_c2c_hists(struct hist_entry *he,
- const char *sort)
+ const char *sort,
+ int nr_header_lines)
{
struct c2c_hist_entry *c2c_he;
struct c2c_hists *hists;
@@ -118,7 +120,7 @@ he__get_c2c_hists(struct hist_entry *he,
if (!hists)
return NULL;

- ret = c2c_hists__init(hists, sort);
+ ret = c2c_hists__init(hists, sort, nr_header_lines);
if (ret) {
free(hists);
return NULL;
@@ -214,7 +216,7 @@ static int process_sample_event(struct perf_tool *tool __maybe_unused,
if (!mi_dup)
goto free_mi;

- c2c_hists = he__get_c2c_hists(he, "offset");
+ c2c_hists = he__get_c2c_hists(he, "offset", 2);
if (!c2c_hists)
goto free_mi_dup;

@@ -1591,7 +1593,8 @@ static int hpp_list__parse(struct perf_hpp_list *hpp_list,
}

static int c2c_hists__init(struct c2c_hists *hists,
- const char *sort)
+ const char *sort,
+ int nr_header_lines)
{
__hists__init(&hists->hists, &hists->list);

@@ -1602,6 +1605,9 @@ static int c2c_hists__init(struct c2c_hists *hists,
*/
perf_hpp_list__init(&hists->list);

+ /* Overload number of header lines.*/
+ hists->list.nr_header_lines = nr_header_lines;
+
return hpp_list__parse(&hists->list, NULL, sort);
}

@@ -1730,7 +1736,7 @@ static int perf_c2c__report(int argc, const char **argv)

file.path = input_name;

- err = c2c_hists__init(&c2c.hists, "dcacheline");
+ err = c2c_hists__init(&c2c.hists, "dcacheline", 2);
if (err) {
pr_debug("Failed to initialize hists\n");
goto out;
--
2.7.4