perf c2c report: Setup number of header lines for hists
authorJiri Olsa <jolsa@kernel.org>
Tue, 24 May 2016 08:12:31 +0000 (10:12 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 19 Oct 2016 16:18:31 +0000 (13:18 -0300)
Allow to setup number of header lines for c2c hists objects.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-4ilsf0ulubrd4y96g7tnpwzk@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-c2c.c

index 0f898d3..44a8567 100644 (file)
@@ -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;