Lines Matching refs:counter
241 perf_evsel__write_stat_event(struct evsel *counter, u32 cpu, u32 thread, in perf_evsel__write_stat_event() argument
244 struct perf_sample_id *sid = SID(counter, cpu, thread); in perf_evsel__write_stat_event()
250 static int read_single_counter(struct evsel *counter, int cpu, in read_single_counter() argument
253 if (counter->tool_event == PERF_TOOL_DURATION_TIME) { in read_single_counter()
256 perf_counts(counter->counts, cpu, thread); in read_single_counter()
261 return perf_evsel__read_counter(counter, cpu, thread); in read_single_counter()
268 static int read_counter(struct evsel *counter, struct timespec *rs) in read_counter() argument
274 ncpus = perf_evsel__nr_cpus(counter); in read_counter()
278 if (!counter->supported) in read_counter()
281 if (counter->core.system_wide) in read_counter()
288 count = perf_counts(counter->counts, cpu, thread); in read_counter()
294 if (!perf_counts__is_loaded(counter->counts, cpu, thread) && in read_counter()
295 read_single_counter(counter, cpu, thread, rs)) { in read_counter()
296 counter->counts->scaled = -1; in read_counter()
297 perf_counts(counter->counts, cpu, thread)->ena = 0; in read_counter()
298 perf_counts(counter->counts, cpu, thread)->run = 0; in read_counter()
302 perf_counts__set_loaded(counter->counts, cpu, thread, false); in read_counter()
305 if (perf_evsel__write_stat_event(counter, cpu, thread, count)) { in read_counter()
314 perf_evsel__name(counter), in read_counter()
326 struct evsel *counter; in read_counters() local
329 evlist__for_each_entry(evsel_list, counter) { in read_counters()
330 ret = read_counter(counter, rs); in read_counters()
332 pr_debug("failed to read counter %s\n", counter->name); in read_counters()
334 if (ret == 0 && perf_stat_process_counter(&stat_config, counter)) in read_counters()
335 pr_warning("failed to process counter %s\n", counter->name); in read_counters()
396 static bool perf_evsel__should_store_id(struct evsel *counter) in perf_evsel__should_store_id() argument
398 return STAT_RECORD || counter->core.attr.read_format & PERF_FORMAT_ID; in perf_evsel__should_store_id()
430 struct evsel *counter; in __run_perf_stat() local
460 evlist__for_each_entry(evsel_list, counter) { in __run_perf_stat()
462 if (create_perf_stat_counter(counter, &stat_config, &target) < 0) { in __run_perf_stat()
466 counter->leader != counter && in __run_perf_stat()
467 counter->weak_group) { in __run_perf_stat()
468 counter = perf_evlist__reset_weak_group(evsel_list, counter); in __run_perf_stat()
481 perf_evsel__name(counter)); in __run_perf_stat()
482 counter->supported = false; in __run_perf_stat()
484 if ((counter->leader != counter) || in __run_perf_stat()
485 !(counter->leader->core.nr_members > 1)) in __run_perf_stat()
487 } else if (perf_evsel__fallback(counter, errno, msg, sizeof(msg))) { in __run_perf_stat()
505 perf_evsel__open_strerror(counter, &target, in __run_perf_stat()
514 counter->supported = true; in __run_perf_stat()
516 l = strlen(counter->unit); in __run_perf_stat()
520 if (perf_evsel__should_store_id(counter) && in __run_perf_stat()
521 perf_evsel__store_ids(counter, evsel_list)) in __run_perf_stat()
525 if (perf_evlist__apply_filters(evsel_list, &counter)) { in __run_perf_stat()
527 counter->filter, perf_evsel__name(counter), errno, in __run_perf_stat()
863 struct evsel *counter; in term_percore_set() local
865 evlist__for_each_entry(evsel_list, counter) { in term_percore_set()
866 if (counter->percore) in term_percore_set()
1457 struct evsel *counter; in process_stat_round_event() local
1462 evlist__for_each_entry(evsel_list, counter) in process_stat_round_event()
1463 perf_stat_process_counter(&stat_config, counter); in process_stat_round_event()
1671 struct evsel *counter; in setup_system_wide() local
1673 evlist__for_each_entry(evsel_list, counter) { in setup_system_wide()
1674 if (!counter->core.system_wide) in setup_system_wide()