perf stat: Reset aggr stats for each run
authorNamhyung Kim <namhyung@kernel.org>
Fri, 16 Jun 2023 07:32:10 +0000 (00:32 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 16 Jun 2023 13:15:43 +0000 (10:15 -0300)
When it runs multiple times with -r option, it missed to reset the
aggregation counters and the values were added up.  The aggregation
count has the values to be printed in the end.  It should reset the
counters at the beginning of each run.  But the current code does that
only when -I/--interval-print option is given.

Fixes: 91f85f98da7ab8c3 ("perf stat: Display event stats using aggr counts")
Reported-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20230616073211.1057936-1-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c

index 3f4e76f..7029e7a 100644 (file)
@@ -725,6 +725,8 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx)
                        all_counters_use_bpf = false;
        }
 
+       evlist__reset_aggr_stats(evsel_list);
+
        evlist__for_each_cpu(evlist_cpu_itr, evsel_list, affinity) {
                counter = evlist_cpu_itr.evsel;