perf stat: Add 'target' argument to perf_evlist__print_counters()
authorJiri Olsa <jolsa@kernel.org>
Thu, 30 Aug 2018 06:32:33 +0000 (08:32 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 30 Aug 2018 18:52:23 +0000 (15:52 -0300)
Add 'struct target' argument to perf_evlist__print_counters(), so the
function does not depend on the 'perf stat' command object local target
and can be moved out.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180830063252.23729-25-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c

index 24171aa6c41faa2619d4d294ab30611e70788a78..528f85146b59dcbd091b9ef8d4800e69f3581025 100644 (file)
@@ -1590,6 +1590,7 @@ static void print_interval(struct perf_stat_config *config,
 }
 
 static void print_header(struct perf_stat_config *config,
+                        struct target *_target,
                         int argc, const char **argv)
 {
        FILE *output = config->output;
@@ -1600,18 +1601,18 @@ static void print_header(struct perf_stat_config *config,
        if (!config->csv_output) {
                fprintf(output, "\n");
                fprintf(output, " Performance counter stats for ");
-               if (target.system_wide)
+               if (_target->system_wide)
                        fprintf(output, "\'system wide");
-               else if (target.cpu_list)
-                       fprintf(output, "\'CPU(s) %s", target.cpu_list);
-               else if (!target__has_task(&target)) {
+               else if (_target->cpu_list)
+                       fprintf(output, "\'CPU(s) %s", _target->cpu_list);
+               else if (!target__has_task(_target)) {
                        fprintf(output, "\'%s", argv ? argv[0] : "pipe");
                        for (i = 1; argv && (i < argc); i++)
                                fprintf(output, " %s", argv[i]);
-               } else if (target.pid)
-                       fprintf(output, "process id \'%s", target.pid);
+               } else if (_target->pid)
+                       fprintf(output, "process id \'%s", _target->pid);
                else
-                       fprintf(output, "thread id \'%s", target.tid);
+                       fprintf(output, "thread id \'%s", _target->tid);
 
                fprintf(output, "\'");
                if (run_count > 1)
@@ -1716,6 +1717,7 @@ static void print_footer(struct perf_stat_config *config)
 static void
 perf_evlist__print_counters(struct perf_evlist *evlist,
                            struct perf_stat_config *config,
+                           struct target *_target,
                            struct timespec *ts,
                            int argc, const char **argv)
 {
@@ -1727,7 +1729,7 @@ perf_evlist__print_counters(struct perf_evlist *evlist,
        if (interval)
                print_interval(config, prefix = buf, ts);
        else
-               print_header(config, argc, argv);
+               print_header(config, _target, argc, argv);
 
        if (metric_only) {
                static int num_print_iv;
@@ -1789,7 +1791,7 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
        if (STAT_RECORD && perf_stat.data.is_pipe)
                return;
 
-       perf_evlist__print_counters(evsel_list, &stat_config,
+       perf_evlist__print_counters(evsel_list, &stat_config, &target,
                                    ts, argc, argv);
 }