OSDN Git Service

perf stat: Move 'no_merge' data to 'struct perf_stat_config'
authorJiri Olsa <jolsa@kernel.org>
Thu, 30 Aug 2018 06:32:48 +0000 (08:32 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 30 Aug 2018 18:52:24 +0000 (15:52 -0300)
Move the static variable 'no_merge' to 'struct perf_stat_config', so
that it can be passed around and used outside 'perf stat' command.

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-40-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c
tools/perf/util/stat.h

index 8ca8501..c4df076 100644 (file)
@@ -158,7 +158,6 @@ static const char           *post_cmd                       = NULL;
 static bool                    sync_run                        = false;
 static bool                    forever                         = false;
 static bool                    force_metric_only               = false;
-static bool                    no_merge                        = false;
 static bool                    walltime_run_table              = false;
 static struct timespec         ref_time;
 static bool                    append_file;
@@ -1173,7 +1172,7 @@ static bool collect_data(struct perf_stat_config *config, struct perf_evsel *cou
        if (counter->merged_stat)
                return false;
        cb(config, counter, data, true);
-       if (no_merge)
+       if (config->no_merge)
                uniquify_event_name(counter);
        else if (counter->auto_merge_stats)
                collect_all_aliases(config, counter, cb, data);
@@ -1902,7 +1901,7 @@ static const struct option stat_options[] = {
                    "list of cpus to monitor in system-wide"),
        OPT_SET_UINT('A', "no-aggr", &stat_config.aggr_mode,
                    "disable CPU count aggregation", AGGR_NONE),
-       OPT_BOOLEAN(0, "no-merge", &no_merge, "Do not merge identical named events"),
+       OPT_BOOLEAN(0, "no-merge", &stat_config.no_merge, "Do not merge identical named events"),
        OPT_STRING('x', "field-separator", &stat_config.csv_sep, "separator",
                   "print counts with custom separator"),
        OPT_CALLBACK('G', "cgroup", &evsel_list, "name",
index 8436722..0758107 100644 (file)
@@ -104,6 +104,7 @@ struct perf_stat_config {
        bool                     null_run;
        bool                     ru_display;
        bool                     big_num;
+       bool                     no_merge;
        FILE                    *output;
        unsigned int             interval;
        unsigned int             timeout;