Lines Matching refs:evsel

78 bool __perf_evsel_stat__is(struct evsel *evsel,  in __perf_evsel_stat__is()  argument
81 struct perf_stat_evsel *ps = evsel->stats; in __perf_evsel_stat__is()
107 static void perf_stat_evsel_id_init(struct evsel *evsel) in perf_stat_evsel_id_init() argument
109 struct perf_stat_evsel *ps = evsel->stats; in perf_stat_evsel_id_init()
115 if (!strcmp(evsel__name(evsel), id_str[i])) { in perf_stat_evsel_id_init()
122 static void evsel__reset_stat_priv(struct evsel *evsel) in evsel__reset_stat_priv() argument
125 struct perf_stat_evsel *ps = evsel->stats; in evsel__reset_stat_priv()
130 perf_stat_evsel_id_init(evsel); in evsel__reset_stat_priv()
133 static int evsel__alloc_stat_priv(struct evsel *evsel) in evsel__alloc_stat_priv() argument
135 evsel->stats = zalloc(sizeof(struct perf_stat_evsel)); in evsel__alloc_stat_priv()
136 if (evsel->stats == NULL) in evsel__alloc_stat_priv()
138 evsel__reset_stat_priv(evsel); in evsel__alloc_stat_priv()
142 static void evsel__free_stat_priv(struct evsel *evsel) in evsel__free_stat_priv() argument
144 struct perf_stat_evsel *ps = evsel->stats; in evsel__free_stat_priv()
148 zfree(&evsel->stats); in evsel__free_stat_priv()
151 static int evsel__alloc_prev_raw_counts(struct evsel *evsel, int ncpus, int nthreads) in evsel__alloc_prev_raw_counts() argument
157 evsel->prev_raw_counts = counts; in evsel__alloc_prev_raw_counts()
162 static void evsel__free_prev_raw_counts(struct evsel *evsel) in evsel__free_prev_raw_counts() argument
164 perf_counts__delete(evsel->prev_raw_counts); in evsel__free_prev_raw_counts()
165 evsel->prev_raw_counts = NULL; in evsel__free_prev_raw_counts()
168 static void evsel__reset_prev_raw_counts(struct evsel *evsel) in evsel__reset_prev_raw_counts() argument
170 if (evsel->prev_raw_counts) in evsel__reset_prev_raw_counts()
171 perf_counts__reset(evsel->prev_raw_counts); in evsel__reset_prev_raw_counts()
174 static int evsel__alloc_stats(struct evsel *evsel, bool alloc_raw) in evsel__alloc_stats() argument
176 int ncpus = evsel__nr_cpus(evsel); in evsel__alloc_stats()
177 int nthreads = perf_thread_map__nr(evsel->core.threads); in evsel__alloc_stats()
179 if (evsel__alloc_stat_priv(evsel) < 0 || in evsel__alloc_stats()
180 evsel__alloc_counts(evsel, ncpus, nthreads) < 0 || in evsel__alloc_stats()
181 (alloc_raw && evsel__alloc_prev_raw_counts(evsel, ncpus, nthreads) < 0)) in evsel__alloc_stats()
189 struct evsel *evsel; in perf_evlist__alloc_stats() local
191 evlist__for_each_entry(evlist, evsel) { in perf_evlist__alloc_stats()
192 if (evsel__alloc_stats(evsel, alloc_raw)) in perf_evlist__alloc_stats()
205 struct evsel *evsel; in perf_evlist__free_stats() local
207 evlist__for_each_entry(evlist, evsel) { in perf_evlist__free_stats()
208 evsel__free_stat_priv(evsel); in perf_evlist__free_stats()
209 evsel__free_counts(evsel); in perf_evlist__free_stats()
210 evsel__free_prev_raw_counts(evsel); in perf_evlist__free_stats()
216 struct evsel *evsel; in perf_evlist__reset_stats() local
218 evlist__for_each_entry(evlist, evsel) { in perf_evlist__reset_stats()
219 evsel__reset_stat_priv(evsel); in perf_evlist__reset_stats()
220 evsel__reset_counts(evsel); in perf_evlist__reset_stats()
226 struct evsel *evsel; in perf_evlist__reset_prev_raw_counts() local
228 evlist__for_each_entry(evlist, evsel) in perf_evlist__reset_prev_raw_counts()
229 evsel__reset_prev_raw_counts(evsel); in perf_evlist__reset_prev_raw_counts()
232 static void perf_evsel__copy_prev_raw_counts(struct evsel *evsel) in perf_evsel__copy_prev_raw_counts() argument
234 int ncpus = evsel__nr_cpus(evsel); in perf_evsel__copy_prev_raw_counts()
235 int nthreads = perf_thread_map__nr(evsel->core.threads); in perf_evsel__copy_prev_raw_counts()
239 *perf_counts(evsel->counts, cpu, thread) = in perf_evsel__copy_prev_raw_counts()
240 *perf_counts(evsel->prev_raw_counts, cpu, in perf_evsel__copy_prev_raw_counts()
245 evsel->counts->aggr = evsel->prev_raw_counts->aggr; in perf_evsel__copy_prev_raw_counts()
250 struct evsel *evsel; in perf_evlist__copy_prev_raw_counts() local
252 evlist__for_each_entry(evlist, evsel) in perf_evlist__copy_prev_raw_counts()
253 perf_evsel__copy_prev_raw_counts(evsel); in perf_evlist__copy_prev_raw_counts()
258 struct evsel *evsel; in perf_evlist__save_aggr_prev_raw_counts() local
270 evlist__for_each_entry(evlist, evsel) { in perf_evlist__save_aggr_prev_raw_counts()
271 *perf_counts(evsel->prev_raw_counts, 0, 0) = in perf_evlist__save_aggr_prev_raw_counts()
272 evsel->prev_raw_counts->aggr; in perf_evlist__save_aggr_prev_raw_counts()
276 static void zero_per_pkg(struct evsel *counter) in zero_per_pkg()
282 static int check_per_pkg(struct evsel *counter, in check_per_pkg()
325 process_counter_values(struct perf_stat_config *config, struct evsel *evsel, in process_counter_values() argument
329 struct perf_counts_values *aggr = &evsel->counts->aggr; in process_counter_values()
333 if (check_per_pkg(evsel, count, cpu, &skip)) { in process_counter_values()
348 if (!evsel->snapshot) in process_counter_values()
349 evsel__compute_deltas(evsel, cpu, thread, count); in process_counter_values()
351 if ((config->aggr_mode == AGGR_NONE) && (!evsel->percore)) { in process_counter_values()
352 perf_stat__update_shadow_stats(evsel, count->val, in process_counter_values()
358 perf_stat__update_shadow_stats(evsel, in process_counter_values()
361 perf_stat__update_shadow_stats(evsel, in process_counter_values()
378 struct evsel *counter) in process_counter_maps()
399 struct evsel *counter) in perf_stat_process_counter()
455 struct evsel *counter; in perf_event__process_stat_event()
511 int create_perf_stat_counter(struct evsel *evsel, in create_perf_stat_counter() argument
516 struct perf_event_attr *attr = &evsel->core.attr; in create_perf_stat_counter()
517 struct evsel *leader = evsel->leader; in create_perf_stat_counter()
556 if (evsel__is_group_leader(evsel)) { in create_perf_stat_counter()
568 return evsel__open_per_cpu(evsel, evsel__cpus(evsel), cpu); in create_perf_stat_counter()
570 return evsel__open_per_thread(evsel, evsel->core.threads); in create_perf_stat_counter()