Commit 9a711ef3 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

libperf evsel: Factor perf_evsel__exit out of perf_evsel__delete



This allows the perf_evsel__exit to be called when the struct
perf_evsel is embedded inside another struct, such as struct evsel in
perf.

Reviewed-by: default avatarThomas Falcon <thomas.falcon@intel.com>
Signed-off-by: default avatarIan Rogers <irogers@google.com>
Tested-by: default avatarJames Clark <james.clark@linaro.org>
Link: https://lore.kernel.org/r/20250719030517.1990983-8-irogers@google.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 6d765f5f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr)
	return evsel;
}

void perf_evsel__delete(struct perf_evsel *evsel)
void perf_evsel__exit(struct perf_evsel *evsel)
{
	assert(evsel->fd == NULL);  /* If not fds were not closed. */
	assert(evsel->mmap == NULL); /* If not munmap wasn't called. */
@@ -48,6 +48,11 @@ void perf_evsel__delete(struct perf_evsel *evsel)
	perf_cpu_map__put(evsel->cpus);
	perf_cpu_map__put(evsel->pmu_cpus);
	perf_thread_map__put(evsel->threads);
}

void perf_evsel__delete(struct perf_evsel *evsel)
{
	perf_evsel__exit(evsel);
	free(evsel);
}

+1 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ struct perf_evsel {

void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr,
		      int idx);
void perf_evsel__exit(struct perf_evsel *evsel);
int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads);
void perf_evsel__close_fd(struct perf_evsel *evsel);
void perf_evsel__free_fd(struct perf_evsel *evsel);