diff options
author | Jiri Olsa <jolsa@kernel.org> | 2015-06-14 08:19:27 (GMT) |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-06-16 13:34:41 (GMT) |
commit | 9df38e82e2a103cf42177c164a4de9d58052ac3a (patch) | |
tree | d261b24b6eedf63d9cb8c343870d77b09b90f276 /tools/perf/builtin-stat.c | |
parent | a9a3a4d92d8f2fb68f4b99d98505bebc70518599 (diff) | |
download | linux-9df38e82e2a103cf42177c164a4de9d58052ac3a.tar.xz |
perf stat: Introduce perf_counts__(new|delete|reset) functions
Move 'struct perf_counts' allocation|free|reset code into separate
functions.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1434269985-521-13-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-stat.c')
-rw-r--r-- | tools/perf/builtin-stat.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index b24ecee..fcf99bd 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -178,24 +178,19 @@ static void perf_evsel__free_stat_priv(struct perf_evsel *evsel) static int perf_evsel__alloc_prev_raw_counts(struct perf_evsel *evsel) { - void *addr; - size_t sz; + struct perf_counts *counts; - sz = sizeof(*evsel->counts) + - (perf_evsel__nr_cpus(evsel) * sizeof(struct perf_counts_values)); + counts = perf_counts__new(perf_evsel__nr_cpus(evsel)); + if (counts) + evsel->prev_raw_counts = counts; - addr = zalloc(sz); - if (!addr) - return -ENOMEM; - - evsel->prev_raw_counts = addr; - - return 0; + return counts ? 0 : -ENOMEM; } static void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel) { - zfree(&evsel->prev_raw_counts); + perf_counts__delete(evsel->prev_raw_counts); + evsel->prev_raw_counts = NULL; } static void perf_evlist__free_stats(struct perf_evlist *evlist) |