Lines Matching refs:evsel
3 #include <perf/evsel.h>
9 #include <internal/evsel.h>
37 struct perf_evsel *evsel)
39 if (evsel->system_wide) {
40 /* System wide: set the cpu map of the evsel to all online CPUs. */
41 perf_cpu_map__put(evsel->cpus);
42 evsel->cpus = perf_cpu_map__new(NULL);
43 } else if (evlist->has_user_cpus && evsel->is_pmu_core) {
48 perf_cpu_map__put(evsel->cpus);
49 evsel->cpus = perf_cpu_map__intersect(evlist->user_requested_cpus, evsel->own_cpus);
50 } else if (!evsel->own_cpus || evlist->has_user_cpus ||
51 (!evsel->requires_cpu && perf_cpu_map__has_any_cpu(evlist->user_requested_cpus))) {
59 perf_cpu_map__put(evsel->cpus);
60 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus);
61 } else if (evsel->cpus != evsel->own_cpus) {
64 * the evsel's. Reset it back to the PMU cpu map.
66 perf_cpu_map__put(evsel->cpus);
67 evsel->cpus = perf_cpu_map__get(evsel->own_cpus);
70 if (evsel->system_wide) {
71 perf_thread_map__put(evsel->threads);
72 evsel->threads = perf_thread_map__new_dummy();
74 perf_thread_map__put(evsel->threads);
75 evsel->threads = perf_thread_map__get(evlist->threads);
78 evlist->all_cpus = perf_cpu_map__merge(evlist->all_cpus, evsel->cpus);
83 struct perf_evsel *evsel;
87 perf_evlist__for_each_evsel(evlist, evsel)
88 __perf_evlist__propagate_maps(evlist, evsel);
92 struct perf_evsel *evsel)
94 evsel->idx = evlist->nr_entries;
95 list_add_tail(&evsel->node, &evlist->entries);
99 __perf_evlist__propagate_maps(evlist, evsel);
103 struct perf_evsel *evsel)
105 list_del_init(&evsel->node);
200 struct perf_evsel *evsel;
203 perf_evlist__for_each_entry(evlist, evsel) {
204 err = perf_evsel__open(evsel, evsel->cpus, evsel->threads);
218 struct perf_evsel *evsel;
220 perf_evlist__for_each_entry_reverse(evlist, evsel)
221 perf_evsel__close(evsel);
226 struct perf_evsel *evsel;
228 perf_evlist__for_each_entry(evlist, evsel)
229 perf_evsel__enable(evsel);
234 struct perf_evsel *evsel;
236 perf_evlist__for_each_entry(evlist, evsel)
237 perf_evsel__disable(evsel);
250 struct perf_evsel *evsel,
254 struct perf_sample_id *sid = SID(evsel, cpu, thread);
257 sid->evsel = evsel;
271 struct perf_evsel *evsel,
274 perf_evlist__id_hash(evlist, evsel, cpu, thread, id);
275 evsel->id[evsel->ids++] = id;
279 struct perf_evsel *evsel,
303 if (!(evsel->attr.read_format & PERF_FORMAT_ID) ||
307 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_ENABLED)
309 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_RUNNING)
315 perf_evlist__id_add(evlist, evsel, cpu, thread, id);
324 struct perf_evsel *evsel;
326 perf_evlist__for_each_entry(evlist, evsel) {
327 if (evsel->system_wide)
400 static void perf_evsel__set_sid_idx(struct perf_evsel *evsel, int idx, int cpu, int thread)
402 struct perf_sample_id *sid = SID(evsel, cpu, thread);
405 sid->cpu = perf_cpu_map__cpu(evsel->cpus, cpu);
406 sid->tid = perf_thread_map__pid(evsel->threads, thread);
454 struct perf_evsel *evsel;
457 perf_evlist__for_each_entry(evlist, evsel) {
458 bool overwrite = evsel->attr.write_backward;
463 if (evsel->system_wide && thread)
466 cpu = perf_cpu_map__idx(evsel->cpus, evlist_cpu);
482 fd = FD(evsel, cpu, thread);
503 ops->idx(evlist, evsel, mp, idx);
525 flgs = evsel->system_wide ? fdarray_flag__nonfilterable : fdarray_flag__default;
531 if (evsel->attr.read_format & PERF_FORMAT_ID) {
532 if (perf_evlist__id_add_fd(evlist, evsel, cpu, thread,
535 perf_evsel__set_sid_idx(evsel, idx, cpu, thread);
637 struct perf_evsel *evsel;
646 perf_evlist__for_each_entry(evlist, evsel) {
647 if ((evsel->attr.read_format & PERF_FORMAT_ID) &&
648 evsel->sample_id == NULL &&
649 perf_evsel__alloc_id(evsel, evsel->fd->max_x, evsel->fd->max_y) < 0)
705 struct perf_evsel *evsel;
708 __perf_evlist__for_each_entry(list, evsel) {
709 evsel->leader = leader;
727 struct perf_evsel *evsel;
730 perf_evlist__for_each_evsel(evlist, evsel) {
736 if (evsel->leader == evsel && evsel->nr_members > 1)