Lines Matching refs:evsel
37 struct perf_evsel *evsel) in __perf_evlist__propagate_maps() argument
39 if (evsel->system_wide) { in __perf_evlist__propagate_maps()
41 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
42 evsel->cpus = perf_cpu_map__new_online_cpus(); in __perf_evlist__propagate_maps()
43 } else if (evlist->has_user_cpus && evsel->is_pmu_core) { in __perf_evlist__propagate_maps()
48 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
49 evsel->cpus = perf_cpu_map__intersect(evlist->user_requested_cpus, evsel->own_cpus); in __perf_evlist__propagate_maps()
50 } else if (!evsel->own_cpus || evlist->has_user_cpus || in __perf_evlist__propagate_maps()
51 (!evsel->requires_cpu && perf_cpu_map__has_any_cpu(evlist->user_requested_cpus))) { in __perf_evlist__propagate_maps()
59 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
60 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps()
61 } else if (evsel->cpus != evsel->own_cpus) { in __perf_evlist__propagate_maps()
66 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
67 evsel->cpus = perf_cpu_map__get(evsel->own_cpus); in __perf_evlist__propagate_maps()
70 if (evsel->system_wide) { in __perf_evlist__propagate_maps()
71 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
72 evsel->threads = perf_thread_map__new_dummy(); in __perf_evlist__propagate_maps()
74 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
75 evsel->threads = perf_thread_map__get(evlist->threads); in __perf_evlist__propagate_maps()
78 evlist->all_cpus = perf_cpu_map__merge(evlist->all_cpus, evsel->cpus); in __perf_evlist__propagate_maps()
83 struct perf_evsel *evsel; in perf_evlist__propagate_maps() local
87 perf_evlist__for_each_evsel(evlist, evsel) in perf_evlist__propagate_maps()
88 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__propagate_maps()
92 struct perf_evsel *evsel) in perf_evlist__add() argument
94 evsel->idx = evlist->nr_entries; in perf_evlist__add()
95 list_add_tail(&evsel->node, &evlist->entries); in perf_evlist__add()
99 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__add()
103 struct perf_evsel *evsel) in perf_evlist__remove() argument
105 list_del_init(&evsel->node); in perf_evlist__remove()
200 struct perf_evsel *evsel; in perf_evlist__open() local
203 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__open()
204 err = perf_evsel__open(evsel, evsel->cpus, evsel->threads); in perf_evlist__open()
218 struct perf_evsel *evsel; in perf_evlist__close() local
220 perf_evlist__for_each_entry_reverse(evlist, evsel) in perf_evlist__close()
221 perf_evsel__close(evsel); in perf_evlist__close()
226 struct perf_evsel *evsel; in perf_evlist__enable() local
228 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__enable()
229 perf_evsel__enable(evsel); in perf_evlist__enable()
234 struct perf_evsel *evsel; in perf_evlist__disable() local
236 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__disable()
237 perf_evsel__disable(evsel); in perf_evlist__disable()
250 struct perf_evsel *evsel, in perf_evlist__id_hash() argument
254 struct perf_sample_id *sid = SID(evsel, cpu_map_idx, thread); in perf_evlist__id_hash()
257 sid->evsel = evsel; in perf_evlist__id_hash()
271 struct perf_evsel *evsel, in perf_evlist__id_add() argument
274 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add()
277 perf_evlist__id_hash(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add()
278 evsel->id[evsel->ids++] = id; in perf_evlist__id_add()
282 struct perf_evsel *evsel, in perf_evlist__id_add_fd() argument
290 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add_fd()
309 if (!(evsel->attr.read_format & PERF_FORMAT_ID) || in perf_evlist__id_add_fd()
313 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) in perf_evlist__id_add_fd()
315 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) in perf_evlist__id_add_fd()
321 perf_evlist__id_add(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add_fd()
330 struct perf_evsel *evsel; in perf_evlist__alloc_pollfd() local
332 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__alloc_pollfd()
333 if (evsel->system_wide) in perf_evlist__alloc_pollfd()
406 static void perf_evsel__set_sid_idx(struct perf_evsel *evsel, int idx, int cpu, int thread) in perf_evsel__set_sid_idx() argument
408 struct perf_sample_id *sid = SID(evsel, cpu, thread); in perf_evsel__set_sid_idx()
411 sid->cpu = perf_cpu_map__cpu(evsel->cpus, cpu); in perf_evsel__set_sid_idx()
412 sid->tid = perf_thread_map__pid(evsel->threads, thread); in perf_evsel__set_sid_idx()
460 struct perf_evsel *evsel; in mmap_per_evsel() local
463 perf_evlist__for_each_entry(evlist, evsel) { in mmap_per_evsel()
464 bool overwrite = evsel->attr.write_backward; in mmap_per_evsel()
469 if (evsel->system_wide && thread) in mmap_per_evsel()
472 cpu = perf_cpu_map__idx(evsel->cpus, evlist_cpu); in mmap_per_evsel()
488 fd = FD(evsel, cpu, thread); in mmap_per_evsel()
509 ops->idx(evlist, evsel, mp, idx); in mmap_per_evsel()
531 flgs = evsel->system_wide ? fdarray_flag__nonfilterable : fdarray_flag__default; in mmap_per_evsel()
537 if (evsel->attr.read_format & PERF_FORMAT_ID) { in mmap_per_evsel()
538 if (perf_evlist__id_add_fd(evlist, evsel, cpu, thread, in mmap_per_evsel()
541 perf_evsel__set_sid_idx(evsel, idx, cpu, thread); in mmap_per_evsel()
643 struct perf_evsel *evsel; in perf_evlist__mmap_ops() local
652 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__mmap_ops()
653 if ((evsel->attr.read_format & PERF_FORMAT_ID) && in perf_evlist__mmap_ops()
654 evsel->sample_id == NULL && in perf_evlist__mmap_ops()
655 perf_evsel__alloc_id(evsel, evsel->fd->max_x, evsel->fd->max_y) < 0) in perf_evlist__mmap_ops()
711 struct perf_evsel *evsel; in __perf_evlist__set_leader() local
714 __perf_evlist__for_each_entry(list, evsel) { in __perf_evlist__set_leader()
715 evsel->leader = leader; in __perf_evlist__set_leader()
733 struct perf_evsel *evsel; in perf_evlist__nr_groups() local
736 perf_evlist__for_each_evsel(evlist, evsel) { in perf_evlist__nr_groups()
742 if (evsel->leader == evsel && evsel->nr_members > 1) in perf_evlist__nr_groups()
748 void perf_evlist__go_system_wide(struct perf_evlist *evlist, struct perf_evsel *evsel) in perf_evlist__go_system_wide() argument
750 if (!evsel->system_wide) { in perf_evlist__go_system_wide()
751 evsel->system_wide = true; in perf_evlist__go_system_wide()
753 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__go_system_wide()