summaryrefslogtreecommitdiff
path: root/tools/perf/util
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2026-04-08 14:32:02 -0300
committerNamhyung Kim <namhyung@kernel.org>2026-04-08 19:21:05 -0700
commitfbfb858552fb9a4c869e22f3303c7c7365367509 (patch)
treecaf49df7796f3a93992cac54a29c0a6d4a96f051 /tools/perf/util
parent7507abd16a05e8b191ed7bed69e075b23111c401 (diff)
downloadlwn-fbfb858552fb9a4c869e22f3303c7c7365367509.tar.gz
lwn-fbfb858552fb9a4c869e22f3303c7c7365367509.zip
perf tools: Use calloc() where applicable
Instead of using zalloc(nr_entries * sizeof_entry) that is what calloc() does. In some places where linux/zalloc.h isn't needed, remove it, add when needed and was getting it indirectly. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/annotate-arch/annotate-x86.c1
-rw-r--r--tools/perf/util/bpf-event.c2
-rw-r--r--tools/perf/util/bpf_counter_cgroup.c1
-rw-r--r--tools/perf/util/data-convert-bt.c2
-rw-r--r--tools/perf/util/data.c2
-rw-r--r--tools/perf/util/db-export.c1
-rw-r--r--tools/perf/util/disasm.c1
-rw-r--r--tools/perf/util/event.c1
-rw-r--r--tools/perf/util/evlist.c3
-rw-r--r--tools/perf/util/header.c18
-rw-r--r--tools/perf/util/hist.c2
-rw-r--r--tools/perf/util/mem2node.c2
-rw-r--r--tools/perf/util/pmus.c2
-rw-r--r--tools/perf/util/powerpc-vpadtl.c1
-rw-r--r--tools/perf/util/probe-event.c17
-rw-r--r--tools/perf/util/probe-file.c2
-rw-r--r--tools/perf/util/probe-finder.c8
-rw-r--r--tools/perf/util/session.c2
-rw-r--r--tools/perf/util/srcline.c1
-rw-r--r--tools/perf/util/stat-shadow.c1
-rw-r--r--tools/perf/util/unwind-libunwind-local.c1
-rw-r--r--tools/perf/util/values.c8
22 files changed, 38 insertions, 41 deletions
diff --git a/tools/perf/util/annotate-arch/annotate-x86.c b/tools/perf/util/annotate-arch/annotate-x86.c
index c77aabd48eba..7e6136536393 100644
--- a/tools/perf/util/annotate-arch/annotate-x86.c
+++ b/tools/perf/util/annotate-arch/annotate-x86.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include <string.h>
#include <linux/compiler.h>
+#include <linux/zalloc.h>
#include <assert.h>
#include <inttypes.h>
#include "../annotate-data.h"
diff --git a/tools/perf/util/bpf-event.c b/tools/perf/util/bpf-event.c
index 67e7786bb878..a27945c279ef 100644
--- a/tools/perf/util/bpf-event.c
+++ b/tools/perf/util/bpf-event.c
@@ -349,7 +349,7 @@ static struct bpf_metadata *bpf_metadata_alloc(__u32 nr_prog_tags,
if (!metadata)
return NULL;
- metadata->prog_names = zalloc(nr_prog_tags * sizeof(char *));
+ metadata->prog_names = calloc(nr_prog_tags, sizeof(char *));
if (!metadata->prog_names) {
bpf_metadata_free(metadata);
return NULL;
diff --git a/tools/perf/util/bpf_counter_cgroup.c b/tools/perf/util/bpf_counter_cgroup.c
index 5572ceccf860..519fee3dc3d0 100644
--- a/tools/perf/util/bpf_counter_cgroup.c
+++ b/tools/perf/util/bpf_counter_cgroup.c
@@ -11,7 +11,6 @@
#include <sys/time.h>
#include <sys/resource.h>
#include <linux/err.h>
-#include <linux/zalloc.h>
#include <linux/perf_event.h>
#include <api/fs/fs.h>
#include <bpf/bpf.h>
diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c
index bece77cbc493..3b8f2df823a9 100644
--- a/tools/perf/util/data-convert-bt.c
+++ b/tools/perf/util/data-convert-bt.c
@@ -1379,7 +1379,7 @@ static int setup_streams(struct ctf_writer *cw, struct perf_session *session)
*/
ncpus = env->nr_cpus_avail ?: MAX_CPUS;
- stream = zalloc(sizeof(*stream) * ncpus);
+ stream = calloc(ncpus, sizeof(*stream));
if (!stream) {
pr_err("Failed to allocate streams.\n");
return -ENOMEM;
diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
index 90df41da1a32..14fa83dae71a 100644
--- a/tools/perf/util/data.c
+++ b/tools/perf/util/data.c
@@ -43,7 +43,7 @@ int perf_data__create_dir(struct perf_data *data, int nr)
if (WARN_ON(!data->is_dir))
return -EINVAL;
- files = zalloc(nr * sizeof(*files));
+ files = calloc(nr, sizeof(*files));
if (!files)
return -ENOMEM;
diff --git a/tools/perf/util/db-export.c b/tools/perf/util/db-export.c
index ae9a9065aab7..cc2bb1af4243 100644
--- a/tools/perf/util/db-export.c
+++ b/tools/perf/util/db-export.c
@@ -19,7 +19,6 @@
#include "callchain.h"
#include "call-path.h"
#include "db-export.h"
-#include <linux/zalloc.h>
int db_export__init(struct db_export *dbe)
{
diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
index 40fcaed5d0b1..4f5bd9153552 100644
--- a/tools/perf/util/disasm.c
+++ b/tools/perf/util/disasm.c
@@ -13,6 +13,7 @@
#include <unistd.h>
#include <linux/string.h>
+#include <linux/zalloc.h>
#include <subcmd/run-command.h>
#include "annotate.h"
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index bc045fddf7d5..66f4843bb235 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -12,7 +12,6 @@
#include <unistd.h>
#include <uapi/linux/mman.h> /* To get things like MAP_HUGETLB even on older libc headers */
#include <linux/perf_event.h>
-#include <linux/zalloc.h>
#include "cpumap.h"
#include "dso.h"
#include "event.h"
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index f46e1d40bad7..ee971d15b3c6 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -825,9 +825,8 @@ static struct mmap *evlist__alloc_mmap(struct evlist *evlist,
bool overwrite)
{
int i;
- struct mmap *map;
+ struct mmap *map = calloc(evlist->core.nr_mmaps, sizeof(struct mmap));
- map = zalloc(evlist->core.nr_mmaps * sizeof(struct mmap));
if (!map)
return NULL;
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 4925e33778b9..c6efddb70aee 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2816,7 +2816,7 @@ static int process_cmdline(struct feat_fd *ff, void *data __maybe_unused)
if (!cmdline)
return -1;
- argv = zalloc(sizeof(char *) * (nr + 1));
+ argv = calloc(nr + 1, sizeof(char *));
if (!argv)
goto error;
@@ -2970,7 +2970,7 @@ static int process_numa_topology(struct feat_fd *ff, void *data __maybe_unused)
if (do_read_u32(ff, &nr))
return -1;
- nodes = zalloc(sizeof(*nodes) * nr);
+ nodes = calloc(nr, sizeof(*nodes));
if (!nodes)
return -ENOMEM;
@@ -3168,7 +3168,7 @@ static int process_cache(struct feat_fd *ff, void *data __maybe_unused)
if (do_read_u32(ff, &cnt))
return -1;
- caches = zalloc(sizeof(*caches) * cnt);
+ caches = calloc(cnt, sizeof(*caches));
if (!caches)
return -1;
@@ -3260,7 +3260,7 @@ static int process_mem_topology(struct feat_fd *ff,
if (do_read_u64(ff, &nr))
return -1;
- nodes = zalloc(sizeof(*nodes) * nr);
+ nodes = calloc(nr, sizeof(*nodes));
if (!nodes)
return -1;
@@ -3350,7 +3350,7 @@ static int process_hybrid_topology(struct feat_fd *ff,
if (do_read_u32(ff, &nr))
return -1;
- nodes = zalloc(sizeof(*nodes) * nr);
+ nodes = calloc(nr, sizeof(*nodes));
if (!nodes)
return -ENOMEM;
@@ -3565,7 +3565,7 @@ static int __process_pmu_caps(struct feat_fd *ff, int *nr_caps,
if (!nr_pmu_caps)
return 0;
- *caps = zalloc(sizeof(char *) * nr_pmu_caps);
+ *caps = calloc(nr_pmu_caps, sizeof(char *));
if (!*caps)
return -1;
@@ -3642,7 +3642,7 @@ static int process_pmu_caps(struct feat_fd *ff, void *data __maybe_unused)
return 0;
}
- pmu_caps = zalloc(sizeof(*pmu_caps) * nr_pmu);
+ pmu_caps = calloc(nr_pmu, sizeof(*pmu_caps));
if (!pmu_caps)
return -ENOMEM;
@@ -3695,7 +3695,7 @@ static int process_cpu_domain_info(struct feat_fd *ff, void *data __maybe_unused
nra = env->nr_cpus_avail;
nr = env->nr_cpus_online;
- cd_map = zalloc(sizeof(*cd_map) * nra);
+ cd_map = calloc(nra, sizeof(*cd_map));
if (!cd_map)
return -1;
@@ -3733,7 +3733,7 @@ static int process_cpu_domain_info(struct feat_fd *ff, void *data __maybe_unused
cd_map[cpu]->nr_domains = nr_domains;
- cd_map[cpu]->domains = zalloc(sizeof(*d_info) * max_sched_domains);
+ cd_map[cpu]->domains = calloc(max_sched_domains, sizeof(*d_info));
if (!cd_map[cpu]->domains)
return -1;
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index fc737a0a8e4d..747fdc455c80 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -1151,7 +1151,7 @@ iter_prepare_cumulative_entry(struct hist_entry_iter *iter,
* cumulated only one time to prevent entries more than 100%
* overhead.
*/
- he_cache = malloc(sizeof(*he_cache) * (cursor->nr + 1));
+ he_cache = calloc(cursor->nr + 1, sizeof(*he_cache));
if (he_cache == NULL)
return -ENOMEM;
diff --git a/tools/perf/util/mem2node.c b/tools/perf/util/mem2node.c
index 03a7d7b27737..51a2292cbf7e 100644
--- a/tools/perf/util/mem2node.c
+++ b/tools/perf/util/mem2node.c
@@ -59,7 +59,7 @@ int mem2node__init(struct mem2node *map, struct perf_env *env)
max += bitmap_weight(n->set, n->size);
}
- entries = zalloc(sizeof(*entries) * max);
+ entries = calloc(max, sizeof(*entries));
if (!entries)
return -ENOMEM;
diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
index 98be2eb8f1f0..9a2023ceeefd 100644
--- a/tools/perf/util/pmus.c
+++ b/tools/perf/util/pmus.c
@@ -621,7 +621,7 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
while ((pmu = scan_fn(pmu)) != NULL)
len += perf_pmu__num_events(pmu);
- aliases = zalloc(sizeof(struct sevent) * len);
+ aliases = calloc(len, sizeof(struct sevent));
if (!aliases) {
pr_err("FATAL: not enough memory to print PMU events\n");
return;
diff --git a/tools/perf/util/powerpc-vpadtl.c b/tools/perf/util/powerpc-vpadtl.c
index 993ab16614c7..710f3093f3f9 100644
--- a/tools/perf/util/powerpc-vpadtl.c
+++ b/tools/perf/util/powerpc-vpadtl.c
@@ -4,6 +4,7 @@
*/
#include <linux/string.h>
+#include <linux/zalloc.h>
#include <errno.h>
#include <inttypes.h>
#include "color.h"
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 710e4620923e..f37a783ea772 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -1850,7 +1850,7 @@ int parse_perf_probe_command(const char *cmd, struct perf_probe_event *pev)
/* Copy arguments and ensure return probe has no C argument */
pev->nargs = argc - 1;
- pev->args = zalloc(sizeof(struct perf_probe_arg) * pev->nargs);
+ pev->args = calloc(pev->nargs, sizeof(struct perf_probe_arg));
if (pev->args == NULL) {
ret = -ENOMEM;
goto out;
@@ -2000,7 +2000,7 @@ int parse_probe_trace_command(const char *cmd, struct probe_trace_event *tev)
}
tev->nargs = argc - 2;
- tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
+ tev->args = calloc(tev->nargs, sizeof(struct probe_trace_arg));
if (tev->args == NULL) {
ret = -ENOMEM;
goto out;
@@ -2373,7 +2373,7 @@ static int convert_to_perf_probe_event(struct probe_trace_event *tev,
/* Convert trace_arg to probe_arg */
pev->nargs = tev->nargs;
- pev->args = zalloc(sizeof(struct perf_probe_arg) * pev->nargs);
+ pev->args = calloc(pev->nargs, sizeof(struct perf_probe_arg));
if (pev->args == NULL)
return -ENOMEM;
for (i = 0; i < tev->nargs && ret >= 0; i++) {
@@ -2480,7 +2480,7 @@ int perf_probe_event__copy(struct perf_probe_event *dst,
if (perf_probe_point__copy(&dst->point, &src->point) < 0)
goto out_err;
- dst->args = zalloc(sizeof(struct perf_probe_arg) * src->nargs);
+ dst->args = calloc(src->nargs, sizeof(struct perf_probe_arg));
if (!dst->args)
goto out_err;
dst->nargs = src->nargs;
@@ -3179,7 +3179,7 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
}
/* Setup result trace-probe-events */
- *tevs = zalloc(sizeof(*tev) * num_matched_functions);
+ *tevs = calloc(num_matched_functions, sizeof(*tev));
if (!*tevs) {
ret = -ENOMEM;
goto out;
@@ -3251,8 +3251,7 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
tev->uprobes = pev->uprobes;
tev->nargs = pev->nargs;
if (tev->nargs) {
- tev->args = zalloc(sizeof(struct probe_trace_arg) *
- tev->nargs);
+ tev->args = calloc(tev->nargs, sizeof(struct probe_trace_arg));
if (tev->args == NULL)
goto nomem_out;
}
@@ -3363,7 +3362,7 @@ static int try_to_find_absolute_address(struct perf_probe_event *pev,
}
tev->nargs = pev->nargs;
- tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
+ tev->args = calloc(tev->nargs, sizeof(struct probe_trace_arg));
if (!tev->args)
goto errout;
@@ -3549,7 +3548,7 @@ static int find_probe_trace_events_from_cache(struct perf_probe_event *pev,
goto out;
}
- *tevs = zalloc(ret * sizeof(*tev));
+ *tevs = calloc(ret, sizeof(*tev));
if (!*tevs) {
ret = -ENOMEM;
goto out;
diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
index f78c3bc3d601..4032572cbf55 100644
--- a/tools/perf/util/probe-file.c
+++ b/tools/perf/util/probe-file.c
@@ -414,7 +414,7 @@ int probe_cache_entry__get_event(struct probe_cache_entry *entry,
if (ret > probe_conf.max_probes)
return -E2BIG;
- *tevs = zalloc(ret * sizeof(*tev));
+ *tevs = calloc(ret, sizeof(*tev));
if (!*tevs)
return -ENOMEM;
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 5ffd97ee4898..64328abeef8b 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -1305,7 +1305,7 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
tev->point.offset);
/* Expand special probe argument if exist */
- args = zalloc(sizeof(struct perf_probe_arg) * MAX_PROBE_ARGS);
+ args = calloc(MAX_PROBE_ARGS, sizeof(struct perf_probe_arg));
if (args == NULL) {
ret = -ENOMEM;
goto end;
@@ -1316,7 +1316,7 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
goto end;
tev->nargs = ret;
- tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
+ tev->args = calloc(tev->nargs, sizeof(struct probe_trace_arg));
if (tev->args == NULL) {
ret = -ENOMEM;
goto end;
@@ -1393,7 +1393,7 @@ int debuginfo__find_trace_events(struct debuginfo *dbg,
int ret, i;
/* Allocate result tevs array */
- *tevs = zalloc(sizeof(struct probe_trace_event) * tf.max_tevs);
+ *tevs = calloc(tf.max_tevs, sizeof(struct probe_trace_event));
if (*tevs == NULL)
return -ENOMEM;
@@ -1566,7 +1566,7 @@ int debuginfo__find_available_vars_at(struct debuginfo *dbg,
int ret;
/* Allocate result vls array */
- *vls = zalloc(sizeof(struct variable_list) * af.max_vls);
+ *vls = calloc(af.max_vls, sizeof(struct variable_list));
if (*vls == NULL)
return -ENOMEM;
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 7588cca110d2..312ea05e2113 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -2559,7 +2559,7 @@ static int __perf_session__process_dir_events(struct perf_session *session)
nr_readers++;
}
- rd = zalloc(nr_readers * sizeof(struct reader));
+ rd = calloc(nr_readers, sizeof(struct reader));
if (!rd)
return -ENOMEM;
diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
index 9be42f398440..b58710624ead 100644
--- a/tools/perf/util/srcline.c
+++ b/tools/perf/util/srcline.c
@@ -12,6 +12,7 @@
#include <inttypes.h>
#include <string.h>
#include <linux/string.h>
+#include <linux/zalloc.h>
bool srcline_full_filename;
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 59d2cd4f2188..bc2d44df7baf 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -13,7 +13,6 @@
#include "metricgroup.h"
#include "cgroup.h"
#include "units.h"
-#include <linux/zalloc.h>
#include "iostat.h"
#include "util/hashmap.h"
#include "tool_pmu.h"
diff --git a/tools/perf/util/unwind-libunwind-local.c b/tools/perf/util/unwind-libunwind-local.c
index 5b39ce21e333..87d496e9dfa6 100644
--- a/tools/perf/util/unwind-libunwind-local.c
+++ b/tools/perf/util/unwind-libunwind-local.c
@@ -25,7 +25,6 @@
#include <unistd.h>
#include <sys/mman.h>
#include <linux/list.h>
-#include <linux/zalloc.h>
#ifndef REMOTE_UNWIND_LIBUNWIND
#include <libunwind.h>
#include <libunwind-ptrace.h>
diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c
index ec72d29f3d58..6eaddfcf833e 100644
--- a/tools/perf/util/values.c
+++ b/tools/perf/util/values.c
@@ -13,9 +13,9 @@
int perf_read_values_init(struct perf_read_values *values)
{
values->threads_max = 16;
- values->pid = malloc(values->threads_max * sizeof(*values->pid));
- values->tid = malloc(values->threads_max * sizeof(*values->tid));
- values->value = zalloc(values->threads_max * sizeof(*values->value));
+ values->pid = calloc(values->threads_max, sizeof(*values->pid));
+ values->tid = calloc(values->threads_max, sizeof(*values->tid));
+ values->value = calloc(values->threads_max, sizeof(*values->value));
if (!values->pid || !values->tid || !values->value) {
pr_debug("failed to allocate read_values threads arrays");
goto out_free_pid;
@@ -96,7 +96,7 @@ static int perf_read_values__findnew_thread(struct perf_read_values *values,
i = values->threads;
- values->value[i] = zalloc(values->counters_max * sizeof(**values->value));
+ values->value[i] = calloc(values->counters_max, sizeof(**values->value));
if (!values->value[i]) {
pr_debug("failed to allocate read_values counters array");
return -ENOMEM;