Lines Matching refs:evsel
79 bool __perf_stat_evsel__is(struct evsel *evsel, enum perf_stat_evsel_id id) in __perf_stat_evsel__is() argument
81 struct perf_stat_evsel *ps = evsel->stats; in __perf_stat_evsel__is()
111 static void perf_stat_evsel_id_init(struct evsel *evsel) in perf_stat_evsel_id_init() argument
113 struct perf_stat_evsel *ps = evsel->stats; in perf_stat_evsel_id_init()
119 if (!strcmp(evsel__name(evsel), id_str[i])) { in perf_stat_evsel_id_init()
126 static void evsel__reset_stat_priv(struct evsel *evsel) in evsel__reset_stat_priv() argument
129 struct perf_stat_evsel *ps = evsel->stats; in evsel__reset_stat_priv()
134 perf_stat_evsel_id_init(evsel); in evsel__reset_stat_priv()
137 static int evsel__alloc_stat_priv(struct evsel *evsel) in evsel__alloc_stat_priv() argument
139 evsel->stats = zalloc(sizeof(struct perf_stat_evsel)); in evsel__alloc_stat_priv()
140 if (evsel->stats == NULL) in evsel__alloc_stat_priv()
142 evsel__reset_stat_priv(evsel); in evsel__alloc_stat_priv()
146 static void evsel__free_stat_priv(struct evsel *evsel) in evsel__free_stat_priv() argument
148 struct perf_stat_evsel *ps = evsel->stats; in evsel__free_stat_priv()
152 zfree(&evsel->stats); in evsel__free_stat_priv()
155 static int evsel__alloc_prev_raw_counts(struct evsel *evsel, int ncpus, int nthreads) in evsel__alloc_prev_raw_counts() argument
161 evsel->prev_raw_counts = counts; in evsel__alloc_prev_raw_counts()
166 static void evsel__free_prev_raw_counts(struct evsel *evsel) in evsel__free_prev_raw_counts() argument
168 perf_counts__delete(evsel->prev_raw_counts); in evsel__free_prev_raw_counts()
169 evsel->prev_raw_counts = NULL; in evsel__free_prev_raw_counts()
172 static void evsel__reset_prev_raw_counts(struct evsel *evsel) in evsel__reset_prev_raw_counts() argument
174 if (evsel->prev_raw_counts) in evsel__reset_prev_raw_counts()
175 perf_counts__reset(evsel->prev_raw_counts); in evsel__reset_prev_raw_counts()
178 static int evsel__alloc_stats(struct evsel *evsel, bool alloc_raw) in evsel__alloc_stats() argument
180 int ncpus = evsel__nr_cpus(evsel); in evsel__alloc_stats()
181 int nthreads = perf_thread_map__nr(evsel->core.threads); in evsel__alloc_stats()
183 if (evsel__alloc_stat_priv(evsel) < 0 || in evsel__alloc_stats()
184 evsel__alloc_counts(evsel, ncpus, nthreads) < 0 || in evsel__alloc_stats()
185 (alloc_raw && evsel__alloc_prev_raw_counts(evsel, ncpus, nthreads) < 0)) in evsel__alloc_stats()
193 struct evsel *evsel; in evlist__alloc_stats() local
195 evlist__for_each_entry(evlist, evsel) { in evlist__alloc_stats()
196 if (evsel__alloc_stats(evsel, alloc_raw)) in evlist__alloc_stats()
209 struct evsel *evsel; in evlist__free_stats() local
211 evlist__for_each_entry(evlist, evsel) { in evlist__free_stats()
212 evsel__free_stat_priv(evsel); in evlist__free_stats()
213 evsel__free_counts(evsel); in evlist__free_stats()
214 evsel__free_prev_raw_counts(evsel); in evlist__free_stats()
220 struct evsel *evsel; in evlist__reset_stats() local
222 evlist__for_each_entry(evlist, evsel) { in evlist__reset_stats()
223 evsel__reset_stat_priv(evsel); in evlist__reset_stats()
224 evsel__reset_counts(evsel); in evlist__reset_stats()
230 struct evsel *evsel; in evlist__reset_prev_raw_counts() local
232 evlist__for_each_entry(evlist, evsel) in evlist__reset_prev_raw_counts()
233 evsel__reset_prev_raw_counts(evsel); in evlist__reset_prev_raw_counts()
236 static void evsel__copy_prev_raw_counts(struct evsel *evsel) in evsel__copy_prev_raw_counts() argument
238 int ncpus = evsel__nr_cpus(evsel); in evsel__copy_prev_raw_counts()
239 int nthreads = perf_thread_map__nr(evsel->core.threads); in evsel__copy_prev_raw_counts()
243 *perf_counts(evsel->counts, cpu, thread) = in evsel__copy_prev_raw_counts()
244 *perf_counts(evsel->prev_raw_counts, cpu, in evsel__copy_prev_raw_counts()
249 evsel->counts->aggr = evsel->prev_raw_counts->aggr; in evsel__copy_prev_raw_counts()
254 struct evsel *evsel; in evlist__copy_prev_raw_counts() local
256 evlist__for_each_entry(evlist, evsel) in evlist__copy_prev_raw_counts()
257 evsel__copy_prev_raw_counts(evsel); in evlist__copy_prev_raw_counts()
262 struct evsel *evsel; in evlist__save_aggr_prev_raw_counts() local
274 evlist__for_each_entry(evlist, evsel) { in evlist__save_aggr_prev_raw_counts()
275 *perf_counts(evsel->prev_raw_counts, 0, 0) = in evlist__save_aggr_prev_raw_counts()
276 evsel->prev_raw_counts->aggr; in evlist__save_aggr_prev_raw_counts()
296 static int check_per_pkg(struct evsel *counter, in check_per_pkg()
357 process_counter_values(struct perf_stat_config *config, struct evsel *evsel, in process_counter_values() argument
361 struct perf_counts_values *aggr = &evsel->counts->aggr; in process_counter_values()
365 if (check_per_pkg(evsel, count, cpu, &skip)) { in process_counter_values()
380 if (!evsel->snapshot) in process_counter_values()
381 evsel__compute_deltas(evsel, cpu, thread, count); in process_counter_values()
383 if ((config->aggr_mode == AGGR_NONE) && (!evsel->percore)) { in process_counter_values()
384 perf_stat__update_shadow_stats(evsel, count->val, in process_counter_values()
390 perf_stat__update_shadow_stats(evsel, in process_counter_values()
393 perf_stat__update_shadow_stats(evsel, in process_counter_values()
410 struct evsel *counter) in process_counter_maps()
431 struct evsel *counter) in perf_stat_process_counter()
475 struct evsel *counter; in perf_event__process_stat_event()
531 int create_perf_stat_counter(struct evsel *evsel, in create_perf_stat_counter() argument
536 struct perf_event_attr *attr = &evsel->core.attr; in create_perf_stat_counter()
537 struct evsel *leader = evsel__leader(evsel); in create_perf_stat_counter()
550 attr->inherit = !config->no_inherit && list_empty(&evsel->bpf_counter_list); in create_perf_stat_counter()
576 if (evsel__is_group_leader(evsel)) { in create_perf_stat_counter()
584 return evsel__open_per_cpu(evsel, evsel__cpus(evsel), cpu); in create_perf_stat_counter()
586 return evsel__open_per_thread(evsel, evsel->core.threads); in create_perf_stat_counter()