Commit 8cd36f3e authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

libperf: Move 'sample_id' from 'struct evsel' to 'struct perf_evsel'



Move 'sample_id' array from 'struct evsel' to libperf's 'struct perf_evsel'.

Committer notes:

Removed the 'struct xyarray' from util/evsel.h, not needed anymore
there.

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-24-jolsa@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent fee92b44
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ static int write_stat_round_event(u64 tm, u64 type)
#define WRITE_STAT_ROUND_EVENT(time, interval) \
	write_stat_round_event(time, PERF_STAT_ROUND_TYPE__ ## interval)

#define SID(e, x, y) xyarray__entry(e->sample_id, x, y)
#define SID(e, x, y) xyarray__entry(e->core.sample_id, x, y)

static int
perf_evsel__write_stat_event(struct evsel *counter, u32 cpu, u32 thread,
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ struct perf_evsel {
	struct perf_cpu_map	*own_cpus;
	struct perf_thread_map	*threads;
	struct xyarray		*fd;
	struct xyarray		*sample_id;

	/* parse modifier helper */
	int			 nr_members;
+2 −2
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ int sigqueue(pid_t pid, int sig, const union sigval value);
#endif

#define FD(e, x, y) (*(int *)xyarray__entry(e->core.fd, x, y))
#define SID(e, x, y) xyarray__entry(e->sample_id, x, y)
#define SID(e, x, y) xyarray__entry(e->core.sample_id, x, y)

void evlist__init(struct evlist *evlist, struct perf_cpu_map *cpus,
		  struct perf_thread_map *threads)
@@ -1021,7 +1021,7 @@ int evlist__mmap_ex(struct evlist *evlist, unsigned int pages,

	evlist__for_each_entry(evlist, evsel) {
		if ((evsel->core.attr.read_format & PERF_FORMAT_ID) &&
		    evsel->sample_id == NULL &&
		    evsel->core.sample_id == NULL &&
		    perf_evsel__alloc_id(evsel, perf_cpu_map__nr(cpus), threads->nr) < 0)
			return -ENOMEM;
	}
+6 −6
Original line number Diff line number Diff line
@@ -1235,14 +1235,14 @@ int perf_evsel__alloc_id(struct evsel *evsel, int ncpus, int nthreads)
	if (evsel->core.system_wide)
		nthreads = 1;

	evsel->sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id));
	if (evsel->sample_id == NULL)
	evsel->core.sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id));
	if (evsel->core.sample_id == NULL)
		return -ENOMEM;

	evsel->id = zalloc(ncpus * nthreads * sizeof(u64));
	if (evsel->id == NULL) {
		xyarray__delete(evsel->sample_id);
		evsel->sample_id = NULL;
		xyarray__delete(evsel->core.sample_id);
		evsel->core.sample_id = NULL;
		return -ENOMEM;
	}

@@ -1251,8 +1251,8 @@ int perf_evsel__alloc_id(struct evsel *evsel, int ncpus, int nthreads)

static void perf_evsel__free_id(struct evsel *evsel)
{
	xyarray__delete(evsel->sample_id);
	evsel->sample_id = NULL;
	xyarray__delete(evsel->core.sample_id);
	evsel->core.sample_id = NULL;
	zfree(&evsel->id);
	evsel->ids = 0;
}
+0 −2
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ enum perf_tool_event {

struct bpf_object;
struct perf_counts;
struct xyarray;

/** struct evsel - event selector
 *
@@ -117,7 +116,6 @@ struct evsel {
	struct perf_evsel	core;
	struct evlist	*evlist;
	char			*filter;
	struct xyarray		*sample_id;
	u64			*id;
	struct perf_counts	*counts;
	struct perf_counts	*prev_raw_counts;