]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
libperf evsel: Factor perf_evsel__exit out of perf_evsel__delete
authorIan Rogers <irogers@google.com>
Sat, 19 Jul 2025 03:05:09 +0000 (20:05 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 24 Jul 2025 20:41:35 +0000 (13:41 -0700)
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: Thomas Falcon <thomas.falcon@intel.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: James Clark <james.clark@linaro.org>
Link: https://lore.kernel.org/r/20250719030517.1990983-8-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/lib/perf/evsel.c
tools/lib/perf/include/internal/evsel.h

index 127abe7df63d544287448ec07637953613ba7452..13a307fc75ae865b757c968d90967611ba1deac3 100644 (file)
@@ -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);
 }
 
index b97dc8c928825040a0605b8adfb1f9a66f235e5a..fefe64ba5e265a927ddc67620653b39a172d539e 100644 (file)
@@ -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);