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()
55 if (perf_cpu_map__is_empty(evsel->cpus)) { in __perf_evlist__propagate_maps()
56 struct perf_evsel *next = perf_evlist__next(evlist, evsel); in __perf_evlist__propagate_maps()
58 perf_evlist__remove(evlist, evsel); in __perf_evlist__propagate_maps()
64 } else if (!evsel->own_cpus || evlist->has_user_cpus || in __perf_evlist__propagate_maps()
65 (!evsel->requires_cpu && perf_cpu_map__has_any_cpu(evlist->user_requested_cpus))) { in __perf_evlist__propagate_maps()
73 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
74 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps()
75 } else if (evsel->cpus != evsel->own_cpus) { in __perf_evlist__propagate_maps()
80 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
81 evsel->cpus = perf_cpu_map__get(evsel->own_cpus); in __perf_evlist__propagate_maps()
84 if (evsel->system_wide) { in __perf_evlist__propagate_maps()
85 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
86 evsel->threads = perf_thread_map__new_dummy(); in __perf_evlist__propagate_maps()
88 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
89 evsel->threads = perf_thread_map__get(evlist->threads); in __perf_evlist__propagate_maps()
92 perf_cpu_map__merge(&evlist->all_cpus, evsel->cpus); in __perf_evlist__propagate_maps()
97 struct perf_evsel *evsel, *n; in perf_evlist__propagate_maps() local
101 list_for_each_entry_safe(evsel, n, &evlist->entries, node) in perf_evlist__propagate_maps()
102 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__propagate_maps()
106 struct perf_evsel *evsel) in perf_evlist__add() argument
108 evsel->idx = evlist->nr_entries; in perf_evlist__add()
109 list_add_tail(&evsel->node, &evlist->entries); in perf_evlist__add()
113 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__add()
117 struct perf_evsel *evsel) in perf_evlist__remove() argument
119 list_del_init(&evsel->node); in perf_evlist__remove()
214 struct perf_evsel *evsel; in perf_evlist__open() local
217 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__open()
218 err = perf_evsel__open(evsel, evsel->cpus, evsel->threads); in perf_evlist__open()
232 struct perf_evsel *evsel; in perf_evlist__close() local
234 perf_evlist__for_each_entry_reverse(evlist, evsel) in perf_evlist__close()
235 perf_evsel__close(evsel); in perf_evlist__close()
240 struct perf_evsel *evsel; in perf_evlist__enable() local
242 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__enable()
243 perf_evsel__enable(evsel); in perf_evlist__enable()
248 struct perf_evsel *evsel; in perf_evlist__disable() local
250 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__disable()
251 perf_evsel__disable(evsel); in perf_evlist__disable()
264 struct perf_evsel *evsel, in perf_evlist__id_hash() argument
268 struct perf_sample_id *sid = SID(evsel, cpu_map_idx, thread); in perf_evlist__id_hash()
271 sid->evsel = evsel; in perf_evlist__id_hash()
285 struct perf_evsel *evsel, in perf_evlist__id_add() argument
288 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add()
291 perf_evlist__id_hash(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add()
292 evsel->id[evsel->ids++] = id; in perf_evlist__id_add()
296 struct perf_evsel *evsel, in perf_evlist__id_add_fd() argument
304 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add_fd()
323 if (!(evsel->attr.read_format & PERF_FORMAT_ID) || in perf_evlist__id_add_fd()
327 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) in perf_evlist__id_add_fd()
329 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) in perf_evlist__id_add_fd()
335 perf_evlist__id_add(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add_fd()
344 struct perf_evsel *evsel; in perf_evlist__alloc_pollfd() local
346 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__alloc_pollfd()
347 if (evsel->system_wide) in perf_evlist__alloc_pollfd()
420 static void perf_evsel__set_sid_idx(struct perf_evsel *evsel, int idx, int cpu, int thread) in perf_evsel__set_sid_idx() argument
422 struct perf_sample_id *sid = SID(evsel, cpu, thread); in perf_evsel__set_sid_idx()
425 sid->cpu = perf_cpu_map__cpu(evsel->cpus, cpu); in perf_evsel__set_sid_idx()
426 sid->tid = perf_thread_map__pid(evsel->threads, thread); in perf_evsel__set_sid_idx()
474 struct perf_evsel *evsel; in mmap_per_evsel() local
477 perf_evlist__for_each_entry(evlist, evsel) { in mmap_per_evsel()
478 bool overwrite = evsel->attr.write_backward; in mmap_per_evsel()
483 if (evsel->system_wide && thread) in mmap_per_evsel()
486 cpu = perf_cpu_map__idx(evsel->cpus, evlist_cpu); in mmap_per_evsel()
502 fd = FD(evsel, cpu, thread); in mmap_per_evsel()
523 ops->idx(evlist, evsel, mp, idx); in mmap_per_evsel()
545 flgs = evsel->system_wide ? fdarray_flag__nonfilterable : fdarray_flag__default; in mmap_per_evsel()
551 if (evsel->attr.read_format & PERF_FORMAT_ID) { in mmap_per_evsel()
552 if (perf_evlist__id_add_fd(evlist, evsel, cpu, thread, in mmap_per_evsel()
555 perf_evsel__set_sid_idx(evsel, idx, cpu, thread); in mmap_per_evsel()
657 struct perf_evsel *evsel; in perf_evlist__mmap_ops() local
666 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__mmap_ops()
667 if ((evsel->attr.read_format & PERF_FORMAT_ID) && in perf_evlist__mmap_ops()
668 evsel->sample_id == NULL && in perf_evlist__mmap_ops()
669 perf_evsel__alloc_id(evsel, evsel->fd->max_x, evsel->fd->max_y) < 0) in perf_evlist__mmap_ops()
725 struct perf_evsel *evsel; in __perf_evlist__set_leader() local
728 __perf_evlist__for_each_entry(list, evsel) { in __perf_evlist__set_leader()
729 evsel->leader = leader; in __perf_evlist__set_leader()
747 struct perf_evsel *evsel; in perf_evlist__nr_groups() local
750 perf_evlist__for_each_evsel(evlist, evsel) { in perf_evlist__nr_groups()
756 if (evsel->leader == evsel && evsel->nr_members > 1) in perf_evlist__nr_groups()
762 void perf_evlist__go_system_wide(struct perf_evlist *evlist, struct perf_evsel *evsel) in perf_evlist__go_system_wide() argument
764 if (!evsel->system_wide) { in perf_evlist__go_system_wide()
765 evsel->system_wide = true; in perf_evlist__go_system_wide()
767 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__go_system_wide()