Re: [PATCH 13/25] perf stat: Move perf_evsel__(alloc|free|reset)_stat_priv into evsel object

Arnaldo Carvalho de Melo
2015-06-10T18:49:40Z

Em Wed, Jun 10, 2015 at 08:10:46PM +0200, Jiri Olsa escreveu:
> Moving perf_evsel__(alloc|free|reset)_stat_priv into evsel object,
> so it could be used outside stat object in following patches.

> +++ b/tools/perf/util/evsel.c

> +void perf_evsel__reset_stat_priv(struct perf_evsel *evsel)
> +{
> + int i;
> + struct perf_stat *ps = evsel->priv;
> +
> + for (i = 0; i < 3; i++)
> + init_stats(&ps->res_stats[i]);
> +
> + perf_stat_evsel_id_init(evsel);
> +}

Please move this to some 'stat' specific place, so that evsel.c has
nothing that is tool specific, like references to 'struct perf_stat'.

- Arnaldo

> +int perf_evsel__alloc_stat_priv(struct perf_evsel *evsel)
> +{
> + evsel->priv = zalloc(sizeof(struct perf_stat));
> + if (evsel->priv == NULL)
> + return -ENOMEM;
> + perf_evsel__reset_stat_priv(evsel);
> + return 0;
> +}
> +
> +void perf_evsel__free_stat_priv(struct perf_evsel *evsel)
> +{
> + zfree(&evsel->priv);
> +}
> +
> struct perf_counts *perf_counts__alloc(int ncpus, int nthreads)
> {
> struct perf_counts *counts = zalloc(sizeof(*counts));
> diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
> index 0d495bd161c3..051175098f0b 100644
> --- a/tools/perf/util/evsel.h
> +++ b/tools/perf/util/evsel.h
> @@ -192,6 +192,11 @@ int perf_evsel__group_desc(struct perf_evsel *evsel, char *buf, size_t size);
>
> int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads);
> int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads);
> +
> +void perf_evsel__reset_stat_priv(struct perf_evsel *evsel);
> +int perf_evsel__alloc_stat_priv(struct perf_evsel *evsel);
> +void perf_evsel__free_stat_priv(struct perf_evsel *evsel);
> +
> void perf_evsel__reset_counts(struct perf_evsel *evsel);
> void perf_evsel__free_counts(struct perf_evsel *evsel);
> void perf_evsel__close_fd(struct perf_evsel *evsel, int ncpus, int nthreads);
> --
> 1.9.3