libperf: Adopt perf_mmap__unmap() function from tools/perf
Move perf_mmap__unmap() from tools/perf to libperf, to internal header internal/mmap.h. It will be used in the following patches. And rename the existing perf's function to mmap__munmap(). Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20191007125344.14268-7-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
e75710f063
commit
59d7ea620b
|
@ -39,6 +39,7 @@ size_t perf_mmap__mmap_len(struct perf_mmap *map);
|
|||
void perf_mmap__init(struct perf_mmap *map, bool overwrite);
|
||||
int perf_mmap__mmap(struct perf_mmap *map, struct perf_mmap_param *mp,
|
||||
int fd, int cpu);
|
||||
void perf_mmap__munmap(struct perf_mmap *map);
|
||||
void perf_mmap__get(struct perf_mmap *map);
|
||||
|
||||
#endif /* __LIBPERF_INTERNAL_MMAP_H */
|
||||
|
|
|
@ -32,6 +32,16 @@ int perf_mmap__mmap(struct perf_mmap *map, struct perf_mmap_param *mp,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void perf_mmap__munmap(struct perf_mmap *map)
|
||||
{
|
||||
if (map && map->base != NULL) {
|
||||
munmap(map->base, perf_mmap__mmap_len(map));
|
||||
map->base = NULL;
|
||||
map->fd = -1;
|
||||
refcount_set(&map->refcnt, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void perf_mmap__get(struct perf_mmap *map)
|
||||
{
|
||||
refcount_inc(&map->refcnt);
|
||||
|
|
|
@ -601,11 +601,11 @@ static void evlist__munmap_nofree(struct evlist *evlist)
|
|||
|
||||
if (evlist->mmap)
|
||||
for (i = 0; i < evlist->core.nr_mmaps; i++)
|
||||
perf_mmap__munmap(&evlist->mmap[i]);
|
||||
mmap__munmap(&evlist->mmap[i]);
|
||||
|
||||
if (evlist->overwrite_mmap)
|
||||
for (i = 0; i < evlist->core.nr_mmaps; i++)
|
||||
perf_mmap__munmap(&evlist->overwrite_mmap[i]);
|
||||
mmap__munmap(&evlist->overwrite_mmap[i]);
|
||||
}
|
||||
|
||||
void evlist__munmap(struct evlist *evlist)
|
||||
|
|
|
@ -115,7 +115,7 @@ void perf_mmap__put(struct mmap *map)
|
|||
BUG_ON(map->core.base && refcount_read(&map->core.refcnt) == 0);
|
||||
|
||||
if (refcount_dec_and_test(&map->core.refcnt))
|
||||
perf_mmap__munmap(map);
|
||||
mmap__munmap(map);
|
||||
}
|
||||
|
||||
void perf_mmap__consume(struct mmap *map)
|
||||
|
@ -306,19 +306,14 @@ static void perf_mmap__aio_munmap(struct mmap *map __maybe_unused)
|
|||
}
|
||||
#endif
|
||||
|
||||
void perf_mmap__munmap(struct mmap *map)
|
||||
void mmap__munmap(struct mmap *map)
|
||||
{
|
||||
perf_mmap__munmap(&map->core);
|
||||
perf_mmap__aio_munmap(map);
|
||||
if (map->data != NULL) {
|
||||
munmap(map->data, mmap__mmap_len(map));
|
||||
map->data = NULL;
|
||||
}
|
||||
if (map->core.base != NULL) {
|
||||
munmap(map->core.base, mmap__mmap_len(map));
|
||||
map->core.base = NULL;
|
||||
map->core.fd = -1;
|
||||
refcount_set(&map->core.refcnt, 0);
|
||||
}
|
||||
auxtrace_mmap__munmap(&map->auxtrace_mmap);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ struct mmap_params {
|
|||
};
|
||||
|
||||
int mmap__mmap(struct mmap *map, struct mmap_params *mp, int fd, int cpu);
|
||||
void perf_mmap__munmap(struct mmap *map);
|
||||
void mmap__munmap(struct mmap *map);
|
||||
|
||||
void perf_mmap__put(struct mmap *map);
|
||||
|
||||
|
|
Loading…
Reference in New Issue