• Home
  • Raw
  • Download

Lines Matching refs:evlist

59 void evlist__init(struct evlist *evlist, struct perf_cpu_map *cpus,  in evlist__init()  argument
62 perf_evlist__init(&evlist->core); in evlist__init()
63 perf_evlist__set_maps(&evlist->core, cpus, threads); in evlist__init()
64 evlist->workload.pid = -1; in evlist__init()
65 evlist->bkw_mmap_state = BKW_MMAP_NOTREADY; in evlist__init()
66 evlist->ctl_fd.fd = -1; in evlist__init()
67 evlist->ctl_fd.ack = -1; in evlist__init()
68 evlist->ctl_fd.pos = -1; in evlist__init()
71 struct evlist *evlist__new(void) in evlist__new()
73 struct evlist *evlist = zalloc(sizeof(*evlist)); in evlist__new() local
75 if (evlist != NULL) in evlist__new()
76 evlist__init(evlist, NULL, NULL); in evlist__new()
78 return evlist; in evlist__new()
81 struct evlist *perf_evlist__new_default(void) in perf_evlist__new_default()
83 struct evlist *evlist = evlist__new(); in perf_evlist__new_default() local
85 if (evlist && evlist__add_default(evlist)) { in perf_evlist__new_default()
86 evlist__delete(evlist); in perf_evlist__new_default()
87 evlist = NULL; in perf_evlist__new_default()
90 return evlist; in perf_evlist__new_default()
93 struct evlist *perf_evlist__new_dummy(void) in perf_evlist__new_dummy()
95 struct evlist *evlist = evlist__new(); in perf_evlist__new_dummy() local
97 if (evlist && evlist__add_dummy(evlist)) { in perf_evlist__new_dummy()
98 evlist__delete(evlist); in perf_evlist__new_dummy()
99 evlist = NULL; in perf_evlist__new_dummy()
102 return evlist; in perf_evlist__new_dummy()
112 void perf_evlist__set_id_pos(struct evlist *evlist) in perf_evlist__set_id_pos() argument
114 struct evsel *first = evlist__first(evlist); in perf_evlist__set_id_pos()
116 evlist->id_pos = first->id_pos; in perf_evlist__set_id_pos()
117 evlist->is_pos = first->is_pos; in perf_evlist__set_id_pos()
120 static void perf_evlist__update_id_pos(struct evlist *evlist) in perf_evlist__update_id_pos() argument
124 evlist__for_each_entry(evlist, evsel) in perf_evlist__update_id_pos()
127 perf_evlist__set_id_pos(evlist); in perf_evlist__update_id_pos()
130 static void evlist__purge(struct evlist *evlist) in evlist__purge() argument
134 evlist__for_each_entry_safe(evlist, n, pos) { in evlist__purge()
136 pos->evlist = NULL; in evlist__purge()
140 evlist->core.nr_entries = 0; in evlist__purge()
143 void evlist__exit(struct evlist *evlist) in evlist__exit() argument
145 zfree(&evlist->mmap); in evlist__exit()
146 zfree(&evlist->overwrite_mmap); in evlist__exit()
147 perf_evlist__exit(&evlist->core); in evlist__exit()
150 void evlist__delete(struct evlist *evlist) in evlist__delete() argument
152 if (evlist == NULL) in evlist__delete()
155 evlist__munmap(evlist); in evlist__delete()
156 evlist__close(evlist); in evlist__delete()
157 evlist__purge(evlist); in evlist__delete()
158 evlist__exit(evlist); in evlist__delete()
159 free(evlist); in evlist__delete()
162 void evlist__add(struct evlist *evlist, struct evsel *entry) in evlist__add() argument
164 entry->evlist = evlist; in evlist__add()
165 entry->idx = evlist->core.nr_entries; in evlist__add()
168 perf_evlist__add(&evlist->core, &entry->core); in evlist__add()
170 if (evlist->core.nr_entries == 1) in evlist__add()
171 perf_evlist__set_id_pos(evlist); in evlist__add()
174 void evlist__remove(struct evlist *evlist, struct evsel *evsel) in evlist__remove() argument
176 evsel->evlist = NULL; in evlist__remove()
177 perf_evlist__remove(&evlist->core, &evsel->core); in evlist__remove()
180 void perf_evlist__splice_list_tail(struct evlist *evlist, in perf_evlist__splice_list_tail() argument
187 evlist__add(evlist, evsel); in perf_evlist__splice_list_tail()
191 int __evlist__set_tracepoints_handlers(struct evlist *evlist, in __evlist__set_tracepoints_handlers() argument
200 evsel = perf_evlist__find_tracepoint_by_name(evlist, assocs[i].name); in __evlist__set_tracepoints_handlers()
229 void perf_evlist__set_leader(struct evlist *evlist) in perf_evlist__set_leader() argument
231 if (evlist->core.nr_entries) { in perf_evlist__set_leader()
232 evlist->nr_groups = evlist->core.nr_entries > 1 ? 1 : 0; in perf_evlist__set_leader()
233 __perf_evlist__set_leader(&evlist->core.entries); in perf_evlist__set_leader()
237 int __evlist__add_default(struct evlist *evlist, bool precise) in __evlist__add_default() argument
244 evlist__add(evlist, evsel); in __evlist__add_default()
248 int evlist__add_dummy(struct evlist *evlist) in evlist__add_dummy() argument
255 struct evsel *evsel = evsel__new_idx(&attr, evlist->core.nr_entries); in evlist__add_dummy()
260 evlist__add(evlist, evsel); in evlist__add_dummy()
264 static int evlist__add_attrs(struct evlist *evlist, struct perf_event_attr *attrs, size_t nr_attrs) in evlist__add_attrs() argument
271 evsel = evsel__new_idx(attrs + i, evlist->core.nr_entries + i); in evlist__add_attrs()
277 perf_evlist__splice_list_tail(evlist, &head); in evlist__add_attrs()
287 int __evlist__add_default_attrs(struct evlist *evlist, struct perf_event_attr *attrs, size_t nr_att… in __evlist__add_default_attrs() argument
294 return evlist__add_attrs(evlist, attrs, nr_attrs); in __evlist__add_default_attrs()
298 perf_evlist__find_tracepoint_by_id(struct evlist *evlist, int id) in perf_evlist__find_tracepoint_by_id() argument
302 evlist__for_each_entry(evlist, evsel) { in perf_evlist__find_tracepoint_by_id()
312 perf_evlist__find_tracepoint_by_name(struct evlist *evlist, in perf_evlist__find_tracepoint_by_name() argument
317 evlist__for_each_entry(evlist, evsel) { in perf_evlist__find_tracepoint_by_name()
326 int evlist__add_newtp(struct evlist *evlist, const char *sys, const char *name, void *handler) in evlist__add_newtp() argument
334 evlist__add(evlist, evsel); in evlist__add_newtp()
338 static int perf_evlist__nr_threads(struct evlist *evlist, in perf_evlist__nr_threads() argument
344 return perf_thread_map__nr(evlist->core.threads); in perf_evlist__nr_threads()
347 void evlist__cpu_iter_start(struct evlist *evlist) in evlist__cpu_iter_start() argument
357 evlist__for_each_entry(evlist, pos) in evlist__cpu_iter_start()
379 void evlist__disable(struct evlist *evlist) in evlist__disable() argument
391 evlist__for_each_cpu(evlist, i, cpu) { in evlist__disable()
394 evlist__for_each_entry(evlist, pos) { in evlist__disable()
411 evlist__for_each_entry(evlist, pos) { in evlist__disable()
417 evlist->enabled = false; in evlist__disable()
420 void evlist__enable(struct evlist *evlist) in evlist__enable() argument
429 evlist__for_each_cpu(evlist, i, cpu) { in evlist__enable()
432 evlist__for_each_entry(evlist, pos) { in evlist__enable()
441 evlist__for_each_entry(evlist, pos) { in evlist__enable()
447 evlist->enabled = true; in evlist__enable()
450 void perf_evlist__toggle_enable(struct evlist *evlist) in perf_evlist__toggle_enable() argument
452 (evlist->enabled ? evlist__disable : evlist__enable)(evlist); in perf_evlist__toggle_enable()
455 static int perf_evlist__enable_event_cpu(struct evlist *evlist, in perf_evlist__enable_event_cpu() argument
459 int nr_threads = perf_evlist__nr_threads(evlist, evsel); in perf_evlist__enable_event_cpu()
472 static int perf_evlist__enable_event_thread(struct evlist *evlist, in perf_evlist__enable_event_thread() argument
477 int nr_cpus = perf_cpu_map__nr(evlist->core.cpus); in perf_evlist__enable_event_thread()
490 int perf_evlist__enable_event_idx(struct evlist *evlist, in perf_evlist__enable_event_idx() argument
493 bool per_cpu_mmaps = !perf_cpu_map__empty(evlist->core.cpus); in perf_evlist__enable_event_idx()
496 return perf_evlist__enable_event_cpu(evlist, evsel, idx); in perf_evlist__enable_event_idx()
498 return perf_evlist__enable_event_thread(evlist, evsel, idx); in perf_evlist__enable_event_idx()
501 int evlist__add_pollfd(struct evlist *evlist, int fd) in evlist__add_pollfd() argument
503 return perf_evlist__add_pollfd(&evlist->core, fd, NULL, POLLIN, fdarray_flag__default); in evlist__add_pollfd()
506 int evlist__filter_pollfd(struct evlist *evlist, short revents_and_mask) in evlist__filter_pollfd() argument
508 return perf_evlist__filter_pollfd(&evlist->core, revents_and_mask); in evlist__filter_pollfd()
512 int evlist__add_wakeup_eventfd(struct evlist *evlist, int fd) in evlist__add_wakeup_eventfd() argument
514 return perf_evlist__add_pollfd(&evlist->core, fd, NULL, POLLIN, in evlist__add_wakeup_eventfd()
519 int evlist__poll(struct evlist *evlist, int timeout) in evlist__poll() argument
521 return perf_evlist__poll(&evlist->core, timeout); in evlist__poll()
524 struct perf_sample_id *perf_evlist__id2sid(struct evlist *evlist, u64 id) in perf_evlist__id2sid() argument
531 head = &evlist->core.heads[hash]; in perf_evlist__id2sid()
540 struct evsel *perf_evlist__id2evsel(struct evlist *evlist, u64 id) in perf_evlist__id2evsel() argument
544 if (evlist->core.nr_entries == 1 || !id) in perf_evlist__id2evsel()
545 return evlist__first(evlist); in perf_evlist__id2evsel()
547 sid = perf_evlist__id2sid(evlist, id); in perf_evlist__id2evsel()
551 if (!evlist__sample_id_all(evlist)) in perf_evlist__id2evsel()
552 return evlist__first(evlist); in perf_evlist__id2evsel()
557 struct evsel *perf_evlist__id2evsel_strict(struct evlist *evlist, in perf_evlist__id2evsel_strict() argument
565 sid = perf_evlist__id2sid(evlist, id); in perf_evlist__id2evsel_strict()
572 static int perf_evlist__event2id(struct evlist *evlist, in perf_evlist__event2id() argument
581 if (evlist->id_pos >= n) in perf_evlist__event2id()
583 *id = array[evlist->id_pos]; in perf_evlist__event2id()
585 if (evlist->is_pos > n) in perf_evlist__event2id()
587 n -= evlist->is_pos; in perf_evlist__event2id()
593 struct evsel *perf_evlist__event2evsel(struct evlist *evlist, in perf_evlist__event2evsel() argument
596 struct evsel *first = evlist__first(evlist); in perf_evlist__event2evsel()
602 if (evlist->core.nr_entries == 1) in perf_evlist__event2evsel()
609 if (perf_evlist__event2id(evlist, event, &id)) in perf_evlist__event2evsel()
617 head = &evlist->core.heads[hash]; in perf_evlist__event2evsel()
626 static int perf_evlist__set_paused(struct evlist *evlist, bool value) in perf_evlist__set_paused() argument
630 if (!evlist->overwrite_mmap) in perf_evlist__set_paused()
633 for (i = 0; i < evlist->core.nr_mmaps; i++) { in perf_evlist__set_paused()
634 int fd = evlist->overwrite_mmap[i].core.fd; in perf_evlist__set_paused()
646 static int perf_evlist__pause(struct evlist *evlist) in perf_evlist__pause() argument
648 return perf_evlist__set_paused(evlist, true); in perf_evlist__pause()
651 static int perf_evlist__resume(struct evlist *evlist) in perf_evlist__resume() argument
653 return perf_evlist__set_paused(evlist, false); in perf_evlist__resume()
656 static void evlist__munmap_nofree(struct evlist *evlist) in evlist__munmap_nofree() argument
660 if (evlist->mmap) in evlist__munmap_nofree()
661 for (i = 0; i < evlist->core.nr_mmaps; i++) in evlist__munmap_nofree()
662 perf_mmap__munmap(&evlist->mmap[i].core); in evlist__munmap_nofree()
664 if (evlist->overwrite_mmap) in evlist__munmap_nofree()
665 for (i = 0; i < evlist->core.nr_mmaps; i++) in evlist__munmap_nofree()
666 perf_mmap__munmap(&evlist->overwrite_mmap[i].core); in evlist__munmap_nofree()
669 void evlist__munmap(struct evlist *evlist) in evlist__munmap() argument
671 evlist__munmap_nofree(evlist); in evlist__munmap()
672 zfree(&evlist->mmap); in evlist__munmap()
673 zfree(&evlist->overwrite_mmap); in evlist__munmap()
683 static struct mmap *evlist__alloc_mmap(struct evlist *evlist, in evlist__alloc_mmap() argument
689 map = zalloc(evlist->core.nr_mmaps * sizeof(struct mmap)); in evlist__alloc_mmap()
693 for (i = 0; i < evlist->core.nr_mmaps; i++) { in evlist__alloc_mmap()
716 struct evlist *evlist = container_of(_evlist, struct evlist, core); in perf_evlist__mmap_cb_idx() local
719 auxtrace_mmap_params__set_idx(&mp->auxtrace_mp, evlist, idx, per_cpu); in perf_evlist__mmap_cb_idx()
725 struct evlist *evlist = container_of(_evlist, struct evlist, core); in perf_evlist__mmap_cb_get() local
728 maps = overwrite ? evlist->overwrite_mmap : evlist->mmap; in perf_evlist__mmap_cb_get()
731 maps = evlist__alloc_mmap(evlist, overwrite); in perf_evlist__mmap_cb_get()
736 evlist->overwrite_mmap = maps; in perf_evlist__mmap_cb_get()
737 if (evlist->bkw_mmap_state == BKW_MMAP_NOTREADY) in perf_evlist__mmap_cb_get()
738 perf_evlist__toggle_bkw_mmap(evlist, BKW_MMAP_RUNNING); in perf_evlist__mmap_cb_get()
740 evlist->mmap = maps; in perf_evlist__mmap_cb_get()
879 int evlist__mmap_ex(struct evlist *evlist, unsigned int pages, in evlist__mmap_ex() argument
901 evlist->core.mmap_len = evlist__mmap_size(pages); in evlist__mmap_ex()
902 pr_debug("mmap size %zuB\n", evlist->core.mmap_len); in evlist__mmap_ex()
904 auxtrace_mmap_params__init(&mp.auxtrace_mp, evlist->core.mmap_len, in evlist__mmap_ex()
907 return perf_evlist__mmap_ops(&evlist->core, &ops, &mp.core); in evlist__mmap_ex()
910 int evlist__mmap(struct evlist *evlist, unsigned int pages) in evlist__mmap() argument
912 return evlist__mmap_ex(evlist, pages, 0, false, 0, PERF_AFFINITY_SYS, 1, 0); in evlist__mmap()
915 int perf_evlist__create_maps(struct evlist *evlist, struct target *target) in perf_evlist__create_maps() argument
953 evlist->core.has_user_cpus = !!target->cpu_list; in perf_evlist__create_maps()
955 perf_evlist__set_maps(&evlist->core, cpus, threads); in perf_evlist__create_maps()
968 void __perf_evlist__set_sample_bit(struct evlist *evlist, in __perf_evlist__set_sample_bit() argument
973 evlist__for_each_entry(evlist, evsel) in __perf_evlist__set_sample_bit()
977 void __perf_evlist__reset_sample_bit(struct evlist *evlist, in __perf_evlist__reset_sample_bit() argument
982 evlist__for_each_entry(evlist, evsel) in __perf_evlist__reset_sample_bit()
986 int perf_evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel) in perf_evlist__apply_filters() argument
991 evlist__for_each_entry(evlist, evsel) { in perf_evlist__apply_filters()
1009 int perf_evlist__set_tp_filter(struct evlist *evlist, const char *filter) in perf_evlist__set_tp_filter() argument
1017 evlist__for_each_entry(evlist, evsel) { in perf_evlist__set_tp_filter()
1029 int perf_evlist__append_tp_filter(struct evlist *evlist, const char *filter) in perf_evlist__append_tp_filter() argument
1037 evlist__for_each_entry(evlist, evsel) { in perf_evlist__append_tp_filter()
1075 int perf_evlist__set_tp_filter_pids(struct evlist *evlist, size_t npids, pid_t *pids) in perf_evlist__set_tp_filter_pids() argument
1078 int ret = perf_evlist__set_tp_filter(evlist, filter); in perf_evlist__set_tp_filter_pids()
1084 int perf_evlist__set_tp_filter_pid(struct evlist *evlist, pid_t pid) in perf_evlist__set_tp_filter_pid() argument
1086 return perf_evlist__set_tp_filter_pids(evlist, 1, &pid); in perf_evlist__set_tp_filter_pid()
1089 int perf_evlist__append_tp_filter_pids(struct evlist *evlist, size_t npids, pid_t *pids) in perf_evlist__append_tp_filter_pids() argument
1092 int ret = perf_evlist__append_tp_filter(evlist, filter); in perf_evlist__append_tp_filter_pids()
1098 int perf_evlist__append_tp_filter_pid(struct evlist *evlist, pid_t pid) in perf_evlist__append_tp_filter_pid() argument
1100 return perf_evlist__append_tp_filter_pids(evlist, 1, &pid); in perf_evlist__append_tp_filter_pid()
1103 bool evlist__valid_sample_type(struct evlist *evlist) in evlist__valid_sample_type() argument
1107 if (evlist->core.nr_entries == 1) in evlist__valid_sample_type()
1110 if (evlist->id_pos < 0 || evlist->is_pos < 0) in evlist__valid_sample_type()
1113 evlist__for_each_entry(evlist, pos) { in evlist__valid_sample_type()
1114 if (pos->id_pos != evlist->id_pos || in evlist__valid_sample_type()
1115 pos->is_pos != evlist->is_pos) in evlist__valid_sample_type()
1122 u64 __evlist__combined_sample_type(struct evlist *evlist) in __evlist__combined_sample_type() argument
1126 if (evlist->combined_sample_type) in __evlist__combined_sample_type()
1127 return evlist->combined_sample_type; in __evlist__combined_sample_type()
1129 evlist__for_each_entry(evlist, evsel) in __evlist__combined_sample_type()
1130 evlist->combined_sample_type |= evsel->core.attr.sample_type; in __evlist__combined_sample_type()
1132 return evlist->combined_sample_type; in __evlist__combined_sample_type()
1135 u64 evlist__combined_sample_type(struct evlist *evlist) in evlist__combined_sample_type() argument
1137 evlist->combined_sample_type = 0; in evlist__combined_sample_type()
1138 return __evlist__combined_sample_type(evlist); in evlist__combined_sample_type()
1141 u64 evlist__combined_branch_type(struct evlist *evlist) in evlist__combined_branch_type() argument
1146 evlist__for_each_entry(evlist, evsel) in evlist__combined_branch_type()
1151 bool perf_evlist__valid_read_format(struct evlist *evlist) in perf_evlist__valid_read_format() argument
1153 struct evsel *first = evlist__first(evlist), *pos = first; in perf_evlist__valid_read_format()
1157 evlist__for_each_entry(evlist, pos) { in perf_evlist__valid_read_format()
1173 u16 perf_evlist__id_hdr_size(struct evlist *evlist) in perf_evlist__id_hdr_size() argument
1175 struct evsel *first = evlist__first(evlist); in perf_evlist__id_hdr_size()
1206 bool evlist__valid_sample_id_all(struct evlist *evlist) in evlist__valid_sample_id_all() argument
1208 struct evsel *first = evlist__first(evlist), *pos = first; in evlist__valid_sample_id_all()
1210 evlist__for_each_entry_continue(evlist, pos) { in evlist__valid_sample_id_all()
1218 bool evlist__sample_id_all(struct evlist *evlist) in evlist__sample_id_all() argument
1220 struct evsel *first = evlist__first(evlist); in evlist__sample_id_all()
1224 void perf_evlist__set_selected(struct evlist *evlist, in perf_evlist__set_selected() argument
1227 evlist->selected = evsel; in perf_evlist__set_selected()
1230 void evlist__close(struct evlist *evlist) in evlist__close() argument
1240 if (!evlist->core.cpus) { in evlist__close()
1241 evlist__for_each_entry_reverse(evlist, evsel) in evlist__close()
1248 evlist__for_each_cpu(evlist, i, cpu) { in evlist__close()
1251 evlist__for_each_entry_reverse(evlist, evsel) { in evlist__close()
1258 evlist__for_each_entry_reverse(evlist, evsel) { in evlist__close()
1264 static int perf_evlist__create_syswide_maps(struct evlist *evlist) in perf_evlist__create_syswide_maps() argument
1287 perf_evlist__set_maps(&evlist->core, cpus, threads); in perf_evlist__create_syswide_maps()
1296 int evlist__open(struct evlist *evlist) in evlist__open() argument
1305 if (evlist->core.threads == NULL && evlist->core.cpus == NULL) { in evlist__open()
1306 err = perf_evlist__create_syswide_maps(evlist); in evlist__open()
1311 perf_evlist__update_id_pos(evlist); in evlist__open()
1313 evlist__for_each_entry(evlist, evsel) { in evlist__open()
1321 evlist__close(evlist); in evlist__open()
1326 int perf_evlist__prepare_workload(struct evlist *evlist, struct target *target, in perf_evlist__prepare_workload() argument
1343 evlist->workload.pid = fork(); in perf_evlist__prepare_workload()
1344 if (evlist->workload.pid < 0) { in perf_evlist__prepare_workload()
1349 if (!evlist->workload.pid) { in perf_evlist__prepare_workload()
1408 if (evlist->core.threads == NULL) { in perf_evlist__prepare_workload()
1413 perf_thread_map__set_pid(evlist->core.threads, 0, evlist->workload.pid); in perf_evlist__prepare_workload()
1427 evlist->workload.cork_fd = go_pipe[1]; in perf_evlist__prepare_workload()
1440 int perf_evlist__start_workload(struct evlist *evlist) in perf_evlist__start_workload() argument
1442 if (evlist->workload.cork_fd > 0) { in perf_evlist__start_workload()
1448 ret = write(evlist->workload.cork_fd, &bf, 1); in perf_evlist__start_workload()
1452 close(evlist->workload.cork_fd); in perf_evlist__start_workload()
1459 int perf_evlist__parse_sample(struct evlist *evlist, union perf_event *event, in perf_evlist__parse_sample() argument
1462 struct evsel *evsel = perf_evlist__event2evsel(evlist, event); in perf_evlist__parse_sample()
1469 int perf_evlist__parse_sample_timestamp(struct evlist *evlist, in perf_evlist__parse_sample_timestamp() argument
1473 struct evsel *evsel = perf_evlist__event2evsel(evlist, event); in perf_evlist__parse_sample_timestamp()
1480 int evlist__strerror_open(struct evlist *evlist, int err, char *buf, size_t size) in evlist__strerror_open() argument
1508 struct evsel *first = evlist__first(evlist); in evlist__strerror_open()
1533 int evlist__strerror_mmap(struct evlist *evlist, int err, char *buf, size_t size) in evlist__strerror_mmap() argument
1536 int pages_attempted = evlist->core.mmap_len / 1024, pages_max_per_user, printed = 0; in evlist__strerror_mmap()
1564 void perf_evlist__to_front(struct evlist *evlist, in perf_evlist__to_front() argument
1570 if (move_evsel == evlist__first(evlist)) in perf_evlist__to_front()
1573 evlist__for_each_entry_safe(evlist, n, evsel) { in perf_evlist__to_front()
1578 list_splice(&move, &evlist->core.entries); in perf_evlist__to_front()
1581 struct evsel *perf_evlist__get_tracking_event(struct evlist *evlist) in perf_evlist__get_tracking_event() argument
1585 evlist__for_each_entry(evlist, evsel) { in perf_evlist__get_tracking_event()
1590 return evlist__first(evlist); in perf_evlist__get_tracking_event()
1593 void perf_evlist__set_tracking_event(struct evlist *evlist, in perf_evlist__set_tracking_event() argument
1601 evlist__for_each_entry(evlist, evsel) { in perf_evlist__set_tracking_event()
1610 perf_evlist__find_evsel_by_str(struct evlist *evlist, in perf_evlist__find_evsel_by_str() argument
1615 evlist__for_each_entry(evlist, evsel) { in perf_evlist__find_evsel_by_str()
1625 void perf_evlist__toggle_bkw_mmap(struct evlist *evlist, in perf_evlist__toggle_bkw_mmap() argument
1628 enum bkw_mmap_state old_state = evlist->bkw_mmap_state; in perf_evlist__toggle_bkw_mmap()
1635 if (!evlist->overwrite_mmap) in perf_evlist__toggle_bkw_mmap()
1665 evlist->bkw_mmap_state = state; in perf_evlist__toggle_bkw_mmap()
1669 perf_evlist__pause(evlist); in perf_evlist__toggle_bkw_mmap()
1672 perf_evlist__resume(evlist); in perf_evlist__toggle_bkw_mmap()
1683 bool perf_evlist__exclude_kernel(struct evlist *evlist) in perf_evlist__exclude_kernel() argument
1687 evlist__for_each_entry(evlist, evsel) { in perf_evlist__exclude_kernel()
1700 void perf_evlist__force_leader(struct evlist *evlist) in perf_evlist__force_leader() argument
1702 if (!evlist->nr_groups) { in perf_evlist__force_leader()
1703 struct evsel *leader = evlist__first(evlist); in perf_evlist__force_leader()
1705 perf_evlist__set_leader(evlist); in perf_evlist__force_leader()
1710 struct evsel *perf_evlist__reset_weak_group(struct evlist *evsel_list, in perf_evlist__reset_weak_group()
1828 int evlist__initialize_ctlfd(struct evlist *evlist, int fd, int ack) in evlist__initialize_ctlfd() argument
1835 evlist->ctl_fd.pos = perf_evlist__add_pollfd(&evlist->core, fd, NULL, POLLIN, in evlist__initialize_ctlfd()
1837 if (evlist->ctl_fd.pos < 0) { in evlist__initialize_ctlfd()
1838 evlist->ctl_fd.pos = -1; in evlist__initialize_ctlfd()
1843 evlist->ctl_fd.fd = fd; in evlist__initialize_ctlfd()
1844 evlist->ctl_fd.ack = ack; in evlist__initialize_ctlfd()
1849 bool evlist__ctlfd_initialized(struct evlist *evlist) in evlist__ctlfd_initialized() argument
1851 return evlist->ctl_fd.pos >= 0; in evlist__ctlfd_initialized()
1854 int evlist__finalize_ctlfd(struct evlist *evlist) in evlist__finalize_ctlfd() argument
1856 struct pollfd *entries = evlist->core.pollfd.entries; in evlist__finalize_ctlfd()
1858 if (!evlist__ctlfd_initialized(evlist)) in evlist__finalize_ctlfd()
1861 entries[evlist->ctl_fd.pos].fd = -1; in evlist__finalize_ctlfd()
1862 entries[evlist->ctl_fd.pos].events = 0; in evlist__finalize_ctlfd()
1863 entries[evlist->ctl_fd.pos].revents = 0; in evlist__finalize_ctlfd()
1865 evlist->ctl_fd.pos = -1; in evlist__finalize_ctlfd()
1866 evlist->ctl_fd.ack = -1; in evlist__finalize_ctlfd()
1867 evlist->ctl_fd.fd = -1; in evlist__finalize_ctlfd()
1872 static int evlist__ctlfd_recv(struct evlist *evlist, enum evlist_ctl_cmd *cmd, in evlist__ctlfd_recv() argument
1884 err = read(evlist->ctl_fd.fd, &c, 1); in evlist__ctlfd_recv()
1898 pr_err("Failed to read from ctlfd %d: %m\n", evlist->ctl_fd.fd); in evlist__ctlfd_recv()
1923 int evlist__ctlfd_ack(struct evlist *evlist) in evlist__ctlfd_ack() argument
1927 if (evlist->ctl_fd.ack == -1) in evlist__ctlfd_ack()
1930 err = write(evlist->ctl_fd.ack, EVLIST_CTL_CMD_ACK_TAG, in evlist__ctlfd_ack()
1933 pr_err("failed to write to ctl_ack_fd %d: %m\n", evlist->ctl_fd.ack); in evlist__ctlfd_ack()
1938 int evlist__ctlfd_process(struct evlist *evlist, enum evlist_ctl_cmd *cmd) in evlist__ctlfd_process() argument
1942 int ctlfd_pos = evlist->ctl_fd.pos; in evlist__ctlfd_process()
1943 struct pollfd *entries = evlist->core.pollfd.entries; in evlist__ctlfd_process()
1945 if (!evlist__ctlfd_initialized(evlist) || !entries[ctlfd_pos].revents) in evlist__ctlfd_process()
1949 err = evlist__ctlfd_recv(evlist, cmd, cmd_data, in evlist__ctlfd_process()
1954 evlist__enable(evlist); in evlist__ctlfd_process()
1957 evlist__disable(evlist); in evlist__ctlfd_process()
1969 evlist__ctlfd_ack(evlist); in evlist__ctlfd_process()
1974 evlist__finalize_ctlfd(evlist); in evlist__ctlfd_process()
1981 struct evsel *evlist__find_evsel(struct evlist *evlist, int idx) in evlist__find_evsel() argument
1985 evlist__for_each_entry(evlist, evsel) { in evlist__find_evsel()