Messages in this thread | | | Date | Wed, 28 Sep 2022 15:51:25 +0100 | Subject | Re: [PATCH 5/6] perf stat: Kill unused per-thread runtime stats | From | James Clark <> |
| |
On 26/09/2022 21:07, Namhyung Kim wrote: > Now it's using the global rt_stat, no need to use per-thread stats. Let > get rid of them. > > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > --- > tools/perf/builtin-stat.c | 54 --------------------------------------- > tools/perf/util/stat.h | 2 -- > 2 files changed, 56 deletions(-)
Reviewed-by: James Clark <james.clark@arm.com> > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index e05fe72c1d87..b86ebb25a799 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -292,13 +292,8 @@ static inline void diff_timespec(struct timespec *r, struct timespec *a, > > static void perf_stat__reset_stats(void) > { > - int i; > - > evlist__reset_stats(evsel_list); > perf_stat__reset_shadow_stats(); > - > - for (i = 0; i < stat_config.stats_num; i++) > - perf_stat__reset_shadow_per_stat(&stat_config.stats[i]); > } > > static int process_synthesized_event(struct perf_tool *tool __maybe_unused, > @@ -489,46 +484,6 @@ static void read_counters(struct timespec *rs) > } > } > > -static int runtime_stat_new(struct perf_stat_config *config, int nthreads) > -{ > - int i; > - > - config->stats = calloc(nthreads, sizeof(struct runtime_stat)); > - if (!config->stats) > - return -1; > - > - config->stats_num = nthreads; > - > - for (i = 0; i < nthreads; i++) > - runtime_stat__init(&config->stats[i]); > - > - return 0; > -} > - > -static void runtime_stat_delete(struct perf_stat_config *config) > -{ > - int i; > - > - if (!config->stats) > - return; > - > - for (i = 0; i < config->stats_num; i++) > - runtime_stat__exit(&config->stats[i]); > - > - zfree(&config->stats); > -} > - > -static void runtime_stat_reset(struct perf_stat_config *config) > -{ > - int i; > - > - if (!config->stats) > - return; > - > - for (i = 0; i < config->stats_num; i++) > - perf_stat__reset_shadow_per_stat(&config->stats[i]); > -} > - > static void process_interval(void) > { > struct timespec ts, rs; > @@ -537,7 +492,6 @@ static void process_interval(void) > diff_timespec(&rs, &ts, &ref_time); > > perf_stat__reset_shadow_per_stat(&rt_stat); > - runtime_stat_reset(&stat_config); > read_counters(&rs); > > if (STAT_RECORD) { > @@ -1018,7 +972,6 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx) > > evlist__copy_prev_raw_counts(evsel_list); > evlist__reset_prev_raw_counts(evsel_list); > - runtime_stat_reset(&stat_config); > perf_stat__reset_shadow_per_stat(&rt_stat); > } else { > update_stats(&walltime_nsecs_stats, t1 - t0); > @@ -2514,12 +2467,6 @@ int cmd_stat(int argc, const char **argv) > */ > if (stat_config.aggr_mode == AGGR_THREAD) { > thread_map__read_comms(evsel_list->core.threads); > - if (target.system_wide) { > - if (runtime_stat_new(&stat_config, > - perf_thread_map__nr(evsel_list->core.threads))) { > - goto out; > - } > - } > } > > if (stat_config.aggr_mode == AGGR_NODE) > @@ -2660,7 +2607,6 @@ int cmd_stat(int argc, const char **argv) > evlist__delete(evsel_list); > > metricgroup__rblist_exit(&stat_config.metric_events); > - runtime_stat_delete(&stat_config); > evlist__close_control(stat_config.ctl_fd, stat_config.ctl_fd_ack, &stat_config.ctl_fd_close); > > return status; > diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h > index 3eba38a1a149..43cb3f13d4d6 100644 > --- a/tools/perf/util/stat.h > +++ b/tools/perf/util/stat.h > @@ -153,8 +153,6 @@ struct perf_stat_config { > int run_count; > int print_free_counters_hint; > int print_mixed_hw_group_error; > - struct runtime_stat *stats; > - int stats_num; > const char *csv_sep; > struct stats *walltime_nsecs_stats; > struct rusage ru_data;
| |