Messages in this thread | | | Subject | Re: [PATCH 02/13 v4] perf tools: Use allocator for perf_cpu_map | From | James Clark <> | Date | Tue, 17 Nov 2020 16:50:21 +0200 |
| |
On 15/11/2020 23:17, Jiri Olsa wrote: > On Fri, Nov 13, 2020 at 07:26:43PM +0200, James Clark wrote: >> Use the existing allocator for perf_cpu_map to avoid use >> of raw malloc. This could cause an issue in later commits >> where the size of perf_cpu_map is changed. >> >> No functional changes. >> >> Signed-off-by: James Clark <james.clark@arm.com> >> Cc: Peter Zijlstra <peterz@infradead.org> >> Cc: Ingo Molnar <mingo@redhat.com> >> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> >> Cc: Mark Rutland <mark.rutland@arm.com> >> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> >> Cc: Jiri Olsa <jolsa@redhat.com> >> Cc: Namhyung Kim <namhyung@kernel.org> >> Cc: Thomas Richter <tmricht@linux.ibm.com> >> Cc: John Garry <john.garry@huawei.com> >> --- >> tools/perf/util/cpumap.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c >> index dc5c5e6fc502..fd7d0a77a9e6 100644 >> --- a/tools/perf/util/cpumap.c >> +++ b/tools/perf/util/cpumap.c >> @@ -132,15 +132,16 @@ int cpu_map__build_map(struct perf_cpu_map *cpus, struct perf_cpu_map **res, >> int (*f)(struct perf_cpu_map *map, int cpu, void *data), >> void *data) >> { >> - struct perf_cpu_map *c; >> int nr = cpus->nr; >> + struct perf_cpu_map *c = perf_cpu_map__empty_new(nr); >> int cpu, s1, s2; >> >> - /* allocate as much as possible */ >> - c = calloc(1, sizeof(*c) + nr * sizeof(int)); >> if (!c) >> return -1; >> >> + /* Reset size as it may only be partially filled */ >> + c->nr = 0; >> + >> for (cpu = 0; cpu < nr; cpu++) { >> s1 = f(cpus, cpu, data); >> for (s2 = 0; s2 < c->nr; s2++) { > > also remove refcount_set call down here, > it's already in set in perf_cpu_map__empty_new
Oops yeah, good catch. Removed in V5
James > > thanks, > jirka > >> -- >> 2.28.0 >> >
| |