Lines Matching refs:evsel

37 					  struct perf_evsel *evsel)  in __perf_evlist__propagate_maps()  argument
39 if (perf_cpu_map__is_empty(evsel->cpus)) { in __perf_evlist__propagate_maps()
40 if (perf_cpu_map__is_empty(evsel->pmu_cpus)) { in __perf_evlist__propagate_maps()
45 evsel->pmu_cpus = perf_cpu_map__new_online_cpus(); in __perf_evlist__propagate_maps()
47 if (evlist->has_user_cpus && !evsel->system_wide) { in __perf_evlist__propagate_maps()
52 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps()
58 evsel->cpus = perf_cpu_map__get(evsel->pmu_cpus); in __perf_evlist__propagate_maps()
65 if (evsel->requires_cpu && perf_cpu_map__has_any_cpu(evsel->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->pmu_cpus); in __perf_evlist__propagate_maps()
74 if (evlist->has_user_cpus && !evsel->system_wide) { in __perf_evlist__propagate_maps()
76 if (!perf_cpu_map__equal(evsel->cpus, evlist->user_requested_cpus)) { in __perf_evlist__propagate_maps()
77 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
78 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps()
83 if (!perf_cpu_map__has_any_cpu(evsel->cpus) && in __perf_evlist__propagate_maps()
84 !perf_cpu_map__is_subset(evsel->pmu_cpus, evsel->cpus)) { in __perf_evlist__propagate_maps()
85 struct perf_cpu_map *tmp = perf_cpu_map__intersect(evsel->pmu_cpus, evsel->cpus); in __perf_evlist__propagate_maps()
87 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
88 evsel->cpus = tmp; in __perf_evlist__propagate_maps()
96 if (!evsel->system_wide && in __perf_evlist__propagate_maps()
97 !evsel->requires_cpu && in __perf_evlist__propagate_maps()
98 perf_cpu_map__equal(evsel->cpus, evsel->pmu_cpus) && in __perf_evlist__propagate_maps()
100 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps()
101 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps()
105 assert(!evsel->requires_cpu || !perf_cpu_map__has_any_cpu(evsel->cpus)); in __perf_evlist__propagate_maps()
111 if (perf_cpu_map__is_empty(evsel->cpus)) { in __perf_evlist__propagate_maps()
112 struct perf_evsel *next = perf_evlist__next(evlist, evsel); in __perf_evlist__propagate_maps()
114 perf_evlist__remove(evlist, evsel); in __perf_evlist__propagate_maps()
123 if (evsel->system_wide) { in __perf_evlist__propagate_maps()
124 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
125 evsel->threads = perf_thread_map__new_dummy(); in __perf_evlist__propagate_maps()
127 perf_thread_map__put(evsel->threads); in __perf_evlist__propagate_maps()
128 evsel->threads = perf_thread_map__get(evlist->threads); in __perf_evlist__propagate_maps()
131 perf_cpu_map__merge(&evlist->all_cpus, evsel->cpus); in __perf_evlist__propagate_maps()
136 struct perf_evsel *evsel, *n; in perf_evlist__propagate_maps() local
144 list_for_each_entry_safe(evsel, n, &evlist->entries, node) in perf_evlist__propagate_maps()
145 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__propagate_maps()
149 struct perf_evsel *evsel) in perf_evlist__add() argument
151 evsel->idx = evlist->nr_entries; in perf_evlist__add()
152 list_add_tail(&evsel->node, &evlist->entries); in perf_evlist__add()
156 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__add()
160 struct perf_evsel *evsel) in perf_evlist__remove() argument
162 list_del_init(&evsel->node); in perf_evlist__remove()
257 struct perf_evsel *evsel; in perf_evlist__open() local
260 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__open()
261 err = perf_evsel__open(evsel, evsel->cpus, evsel->threads); in perf_evlist__open()
275 struct perf_evsel *evsel; in perf_evlist__close() local
277 perf_evlist__for_each_entry_reverse(evlist, evsel) in perf_evlist__close()
278 perf_evsel__close(evsel); in perf_evlist__close()
283 struct perf_evsel *evsel; in perf_evlist__enable() local
285 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__enable()
286 perf_evsel__enable(evsel); in perf_evlist__enable()
291 struct perf_evsel *evsel; in perf_evlist__disable() local
293 perf_evlist__for_each_entry(evlist, evsel) in perf_evlist__disable()
294 perf_evsel__disable(evsel); in perf_evlist__disable()
307 struct perf_evsel *evsel, in perf_evlist__id_hash() argument
311 struct perf_sample_id *sid = SID(evsel, cpu_map_idx, thread); in perf_evlist__id_hash()
314 sid->evsel = evsel; in perf_evlist__id_hash()
328 struct perf_evsel *evsel, in perf_evlist__id_add() argument
331 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add()
334 perf_evlist__id_hash(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add()
335 evsel->id[evsel->ids++] = id; in perf_evlist__id_add()
339 struct perf_evsel *evsel, in perf_evlist__id_add_fd() argument
347 if (!SID(evsel, cpu_map_idx, thread)) in perf_evlist__id_add_fd()
366 if (!(evsel->attr.read_format & PERF_FORMAT_ID) || in perf_evlist__id_add_fd()
370 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) in perf_evlist__id_add_fd()
372 if (evsel->attr.read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) in perf_evlist__id_add_fd()
378 perf_evlist__id_add(evlist, evsel, cpu_map_idx, thread, id); in perf_evlist__id_add_fd()
387 struct perf_evsel *evsel; in perf_evlist__alloc_pollfd() local
389 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__alloc_pollfd()
390 if (evsel->system_wide) in perf_evlist__alloc_pollfd()
463 static void perf_evsel__set_sid_idx(struct perf_evsel *evsel, int idx, int cpu, int thread) in perf_evsel__set_sid_idx() argument
465 struct perf_sample_id *sid = SID(evsel, cpu, thread); in perf_evsel__set_sid_idx()
468 sid->cpu = perf_cpu_map__cpu(evsel->cpus, cpu); in perf_evsel__set_sid_idx()
469 sid->tid = perf_thread_map__pid(evsel->threads, thread); in perf_evsel__set_sid_idx()
517 struct perf_evsel *evsel; in mmap_per_evsel() local
520 perf_evlist__for_each_entry(evlist, evsel) { in mmap_per_evsel()
521 bool overwrite = evsel->attr.write_backward; in mmap_per_evsel()
526 if (evsel->system_wide && thread) in mmap_per_evsel()
529 cpu = perf_cpu_map__idx(evsel->cpus, evlist_cpu); in mmap_per_evsel()
545 fd = FD(evsel, cpu, thread); in mmap_per_evsel()
566 ops->idx(evlist, evsel, mp, idx); in mmap_per_evsel()
588 flgs = evsel->system_wide ? fdarray_flag__nonfilterable : fdarray_flag__default; in mmap_per_evsel()
594 if (evsel->attr.read_format & PERF_FORMAT_ID) { in mmap_per_evsel()
595 if (perf_evlist__id_add_fd(evlist, evsel, cpu, thread, in mmap_per_evsel()
598 perf_evsel__set_sid_idx(evsel, idx, cpu, thread); in mmap_per_evsel()
700 struct perf_evsel *evsel; in perf_evlist__mmap_ops() local
709 perf_evlist__for_each_entry(evlist, evsel) { in perf_evlist__mmap_ops()
710 if ((evsel->attr.read_format & PERF_FORMAT_ID) && in perf_evlist__mmap_ops()
711 evsel->sample_id == NULL && in perf_evlist__mmap_ops()
712 perf_evsel__alloc_id(evsel, evsel->fd->max_x, evsel->fd->max_y) < 0) in perf_evlist__mmap_ops()
768 struct perf_evsel *evsel; in __perf_evlist__set_leader() local
771 __perf_evlist__for_each_entry(list, evsel) { in __perf_evlist__set_leader()
772 evsel->leader = leader; in __perf_evlist__set_leader()
790 struct perf_evsel *evsel; in perf_evlist__nr_groups() local
793 perf_evlist__for_each_evsel(evlist, evsel) { in perf_evlist__nr_groups()
799 if (evsel->leader == evsel && evsel->nr_members > 1) in perf_evlist__nr_groups()
805 void perf_evlist__go_system_wide(struct perf_evlist *evlist, struct perf_evsel *evsel) in perf_evlist__go_system_wide() argument
807 if (!evsel->system_wide) { in perf_evlist__go_system_wide()
808 evsel->system_wide = true; in perf_evlist__go_system_wide()
810 __perf_evlist__propagate_maps(evlist, evsel); in perf_evlist__go_system_wide()