perf stat: Use 'struct outstate' in evlist__print_counters()
authorNamhyung Kim <namhyung@kernel.org>
Wed, 23 Nov 2022 18:02:01 +0000 (10:02 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 24 Nov 2022 12:38:53 +0000 (09:38 -0300)
This is a preparation for the later cleanup.  No functional changes
intended.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
Link: https://lore.kernel.org/r/20221123180208.2068936-9-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/stat-display.c

index d2894a5..70aebf3 100644 (file)
@@ -1372,13 +1372,16 @@ void evlist__print_counters(struct evlist *evlist, struct perf_stat_config *conf
        bool metric_only = config->metric_only;
        int interval = config->interval;
        struct evsel *counter;
-       char buf[64], *prefix = NULL;
+       char buf[64];
+       struct outstate os = {
+               .fh = config->output,
+       };
 
        if (config->iostat_run)
                evlist->selected = evlist__first(evlist);
 
        if (interval) {
-               prefix = buf;
+               os.prefix = buf;
                prepare_interval(config, buf, sizeof(buf), ts);
        }
 
@@ -1390,35 +1393,35 @@ void evlist__print_counters(struct evlist *evlist, struct perf_stat_config *conf
        case AGGR_SOCKET:
        case AGGR_NODE:
                if (config->cgroup_list)
-                       print_aggr_cgroup(config, evlist, prefix);
+                       print_aggr_cgroup(config, evlist, os.prefix);
                else
-                       print_aggr(config, evlist, prefix);
+                       print_aggr(config, evlist, os.prefix);
                break;
        case AGGR_THREAD:
        case AGGR_GLOBAL:
                if (config->iostat_run) {
-                       iostat_print_counters(evlist, config, ts, prefix = buf,
+                       iostat_print_counters(evlist, config, ts, buf,
                                              print_counter);
                } else if (config->cgroup_list) {
-                       print_cgroup_counter(config, evlist, prefix);
+                       print_cgroup_counter(config, evlist, os.prefix);
                } else {
-                       print_metric_begin(config, evlist, prefix,
+                       print_metric_begin(config, evlist, os.prefix,
                                           /*aggr_idx=*/0, /*cgrp=*/NULL);
                        evlist__for_each_entry(evlist, counter) {
-                               print_counter(config, counter, prefix);
+                               print_counter(config, counter, os.prefix);
                        }
                        print_metric_end(config);
                }
                break;
        case AGGR_NONE:
                if (metric_only)
-                       print_no_aggr_metric(config, evlist, prefix);
+                       print_no_aggr_metric(config, evlist, os.prefix);
                else {
                        evlist__for_each_entry(evlist, counter) {
                                if (counter->percore)
-                                       print_percore(config, counter, prefix);
+                                       print_percore(config, counter, os.prefix);
                                else
-                                       print_counter(config, counter, prefix);
+                                       print_counter(config, counter, os.prefix);
                        }
                }
                break;