Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 547740f7 authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

libperf: Add perf_mmap struct



Add the perf_mmap struct to libperf.

The definition is added into:

  include/internal/mmap.h

which is not to be included by users, but shared within perf and
libperf.

Committer notes:

Remove unnecessary includes from tools/perf/lib/include/internal/mmap.h,
those will be readded as they become necessary, later in the series.

Signed-off-by: default avatarJiri 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 <a.p.zijlstra@chello.nl>
Link: http://lore.kernel.org/lkml/20190913132355.21634-11-jolsa@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent e0fcfb08
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ int test__perf_time_to_tsc(struct test *test __maybe_unused, int subtest __maybe

	CHECK__(evlist__mmap(evlist, UINT_MAX));

	pc = evlist->mmap[0].base;
	pc = evlist->mmap[0].core.base;
	ret = perf_read_tsc_conversion(pc, &tc);
	if (ret) {
		if (ret == -EOPNOTSUPP) {
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ static int intel_bts_info_fill(struct auxtrace_record *itr,
	if (!session->evlist->nr_mmaps)
		return -EINVAL;

	pc = session->evlist->mmap[0].base;
	pc = session->evlist->mmap[0].core.base;
	if (pc) {
		err = perf_read_tsc_conversion(pc, &tc);
		if (err) {
+1 −1
Original line number Diff line number Diff line
@@ -355,7 +355,7 @@ static int intel_pt_info_fill(struct auxtrace_record *itr,
	if (!session->evlist->nr_mmaps)
		return -EINVAL;

	pc = session->evlist->mmap[0].base;
	pc = session->evlist->mmap[0].core.base;
	if (pc) {
		err = perf_read_tsc_conversion(pc, &tc);
		if (err) {
+7 −7
Original line number Diff line number Diff line
@@ -261,7 +261,7 @@ static int record__aio_pushfn(struct mmap *map, void *to, void *buf, size_t size
	struct record_aio *aio = to;

	/*
	 * map->base data pointed by buf is copied into free map->aio.data[] buffer
	 * map->core.base data pointed by buf is copied into free map->aio.data[] buffer
	 * to release space in the kernel buffer as fast as possible, calling
	 * perf_mmap__consume() from perf_mmap__push() function.
	 *
@@ -360,7 +360,7 @@ static void record__aio_mmap_read_sync(struct record *rec)
	for (i = 0; i < evlist->nr_mmaps; i++) {
		struct mmap *map = &maps[i];

		if (map->base)
		if (map->core.base)
			record__aio_sync(map, true);
	}
}
@@ -970,7 +970,7 @@ static int record__mmap_read_evlist(struct record *rec, struct evlist *evlist,
		u64 flush = 0;
		struct mmap *map = &maps[i];

		if (map->base) {
		if (map->core.base) {
			record__adjust_affinity(rec, map);
			if (synch) {
				flush = map->flush;
@@ -1198,10 +1198,10 @@ static const struct perf_event_mmap_page *
perf_evlist__pick_pc(struct evlist *evlist)
{
	if (evlist) {
		if (evlist->mmap && evlist->mmap[0].base)
			return evlist->mmap[0].base;
		if (evlist->overwrite_mmap && evlist->overwrite_mmap[0].base)
			return evlist->overwrite_mmap[0].base;
		if (evlist->mmap && evlist->mmap[0].core.base)
			return evlist->mmap[0].core.base;
		if (evlist->overwrite_mmap && evlist->overwrite_mmap[0].core.base)
			return evlist->overwrite_mmap[0].core.base;
	}
	return NULL;
}
+14 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LIBPERF_INTERNAL_MMAP_H
#define __LIBPERF_INTERNAL_MMAP_H

/**
 * struct perf_mmap - perf's ring buffer mmap details
 *
 * @refcnt - e.g. code using PERF_EVENT_IOC_SET_OUTPUT to share this
 */
struct perf_mmap {
	void		*base;
};

#endif /* __LIBPERF_INTERNAL_MMAP_H */
Loading