forked from luck/tmp_suning_uos_patched
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: 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 <a.p.zijlstra@chello.nl> Link: http://lore.kernel.org/lkml/20190913132355.21634-24-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
fee92b4442
commit
8cd36f3ef4
|
@ -235,7 +235,7 @@ static int write_stat_round_event(u64 tm, u64 type)
|
||||||
#define WRITE_STAT_ROUND_EVENT(time, interval) \
|
#define WRITE_STAT_ROUND_EVENT(time, interval) \
|
||||||
write_stat_round_event(time, PERF_STAT_ROUND_TYPE__ ## 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
|
static int
|
||||||
perf_evsel__write_stat_event(struct evsel *counter, u32 cpu, u32 thread,
|
perf_evsel__write_stat_event(struct evsel *counter, u32 cpu, u32 thread,
|
||||||
|
|
|
@ -17,6 +17,7 @@ struct perf_evsel {
|
||||||
struct perf_cpu_map *own_cpus;
|
struct perf_cpu_map *own_cpus;
|
||||||
struct perf_thread_map *threads;
|
struct perf_thread_map *threads;
|
||||||
struct xyarray *fd;
|
struct xyarray *fd;
|
||||||
|
struct xyarray *sample_id;
|
||||||
|
|
||||||
/* parse modifier helper */
|
/* parse modifier helper */
|
||||||
int nr_members;
|
int nr_members;
|
||||||
|
|
|
@ -50,7 +50,7 @@ int sigqueue(pid_t pid, int sig, const union sigval value);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FD(e, x, y) (*(int *)xyarray__entry(e->core.fd, x, y))
|
#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,
|
void evlist__init(struct evlist *evlist, struct perf_cpu_map *cpus,
|
||||||
struct perf_thread_map *threads)
|
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) {
|
evlist__for_each_entry(evlist, evsel) {
|
||||||
if ((evsel->core.attr.read_format & PERF_FORMAT_ID) &&
|
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)
|
perf_evsel__alloc_id(evsel, perf_cpu_map__nr(cpus), threads->nr) < 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1235,14 +1235,14 @@ int perf_evsel__alloc_id(struct evsel *evsel, int ncpus, int nthreads)
|
||||||
if (evsel->core.system_wide)
|
if (evsel->core.system_wide)
|
||||||
nthreads = 1;
|
nthreads = 1;
|
||||||
|
|
||||||
evsel->sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id));
|
evsel->core.sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id));
|
||||||
if (evsel->sample_id == NULL)
|
if (evsel->core.sample_id == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
evsel->id = zalloc(ncpus * nthreads * sizeof(u64));
|
evsel->id = zalloc(ncpus * nthreads * sizeof(u64));
|
||||||
if (evsel->id == NULL) {
|
if (evsel->id == NULL) {
|
||||||
xyarray__delete(evsel->sample_id);
|
xyarray__delete(evsel->core.sample_id);
|
||||||
evsel->sample_id = NULL;
|
evsel->core.sample_id = NULL;
|
||||||
return -ENOMEM;
|
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)
|
static void perf_evsel__free_id(struct evsel *evsel)
|
||||||
{
|
{
|
||||||
xyarray__delete(evsel->sample_id);
|
xyarray__delete(evsel->core.sample_id);
|
||||||
evsel->sample_id = NULL;
|
evsel->core.sample_id = NULL;
|
||||||
zfree(&evsel->id);
|
zfree(&evsel->id);
|
||||||
evsel->ids = 0;
|
evsel->ids = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,6 @@ enum perf_tool_event {
|
||||||
|
|
||||||
struct bpf_object;
|
struct bpf_object;
|
||||||
struct perf_counts;
|
struct perf_counts;
|
||||||
struct xyarray;
|
|
||||||
|
|
||||||
/** struct evsel - event selector
|
/** struct evsel - event selector
|
||||||
*
|
*
|
||||||
|
@ -117,7 +116,6 @@ struct evsel {
|
||||||
struct perf_evsel core;
|
struct perf_evsel core;
|
||||||
struct evlist *evlist;
|
struct evlist *evlist;
|
||||||
char *filter;
|
char *filter;
|
||||||
struct xyarray *sample_id;
|
|
||||||
u64 *id;
|
u64 *id;
|
||||||
struct perf_counts *counts;
|
struct perf_counts *counts;
|
||||||
struct perf_counts *prev_raw_counts;
|
struct perf_counts *prev_raw_counts;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user