Lines Matching refs:counter
71 static void print_counter_aggr(struct perf_evsel *counter, char *prefix);
72 static void print_counter(struct perf_evsel *counter, char *prefix);
356 static void update_shadow_stats(struct perf_evsel *counter, u64 *count, in update_shadow_stats() argument
359 if (perf_evsel__match(counter, SOFTWARE, SW_TASK_CLOCK)) in update_shadow_stats()
361 else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES)) in update_shadow_stats()
364 perf_evsel__cmp(counter, nth_evsel(T_CYCLES_IN_TX))) in update_shadow_stats()
367 perf_evsel__cmp(counter, nth_evsel(T_TRANSACTION_START))) in update_shadow_stats()
370 perf_evsel__cmp(counter, nth_evsel(T_ELISION_START))) in update_shadow_stats()
372 else if (perf_evsel__match(counter, HARDWARE, HW_STALLED_CYCLES_FRONTEND)) in update_shadow_stats()
374 else if (perf_evsel__match(counter, HARDWARE, HW_STALLED_CYCLES_BACKEND)) in update_shadow_stats()
376 else if (perf_evsel__match(counter, HARDWARE, HW_BRANCH_INSTRUCTIONS)) in update_shadow_stats()
378 else if (perf_evsel__match(counter, HARDWARE, HW_CACHE_REFERENCES)) in update_shadow_stats()
380 else if (perf_evsel__match(counter, HW_CACHE, HW_CACHE_L1D)) in update_shadow_stats()
382 else if (perf_evsel__match(counter, HW_CACHE, HW_CACHE_L1I)) in update_shadow_stats()
384 else if (perf_evsel__match(counter, HW_CACHE, HW_CACHE_LL)) in update_shadow_stats()
386 else if (perf_evsel__match(counter, HW_CACHE, HW_CACHE_DTLB)) in update_shadow_stats()
388 else if (perf_evsel__match(counter, HW_CACHE, HW_CACHE_ITLB)) in update_shadow_stats()
392 static void zero_per_pkg(struct perf_evsel *counter) in zero_per_pkg() argument
394 if (counter->per_pkg_mask) in zero_per_pkg()
395 memset(counter->per_pkg_mask, 0, MAX_NR_CPUS); in zero_per_pkg()
398 static int check_per_pkg(struct perf_evsel *counter, int cpu, bool *skip) in check_per_pkg() argument
400 unsigned long *mask = counter->per_pkg_mask; in check_per_pkg()
401 struct cpu_map *cpus = perf_evsel__cpus(counter); in check_per_pkg()
406 if (!counter->per_pkg) in check_per_pkg()
417 counter->per_pkg_mask = mask; in check_per_pkg()
467 static int read_counter(struct perf_evsel *counter);
473 static int read_counter_aggr(struct perf_evsel *counter) in read_counter_aggr() argument
475 struct perf_counts_values *aggr = &counter->counts->aggr; in read_counter_aggr()
476 struct perf_stat *ps = counter->priv; in read_counter_aggr()
477 u64 *count = counter->counts->aggr.values; in read_counter_aggr()
482 if (read_counter(counter)) in read_counter_aggr()
485 if (!counter->snapshot) in read_counter_aggr()
486 perf_evsel__compute_deltas(counter, -1, aggr); in read_counter_aggr()
487 perf_counts_values__scale(aggr, scale, &counter->counts->scaled); in read_counter_aggr()
494 perf_evsel__name(counter), count[0], count[1], count[2]); in read_counter_aggr()
500 update_shadow_stats(counter, count, 0); in read_counter_aggr()
509 static int read_counter(struct perf_evsel *counter) in read_counter() argument
512 int ncpus = perf_evsel__nr_cpus(counter); in read_counter()
515 if (!counter->supported) in read_counter()
518 if (counter->system_wide) in read_counter()
521 if (counter->per_pkg) in read_counter()
522 zero_per_pkg(counter); in read_counter()
526 if (perf_evsel__read_cb(counter, cpu, thread, read_cb)) in read_counter()
537 struct perf_evsel *counter; in print_interval() local
543 evlist__for_each(evsel_list, counter) { in print_interval()
544 ps = counter->priv; in print_interval()
546 read_counter_aggr(counter); in print_interval()
549 evlist__for_each(evsel_list, counter) { in print_interval()
550 ps = counter->priv; in print_interval()
552 read_counter(counter); in print_interval()
586 evlist__for_each(evsel_list, counter) in print_interval()
587 print_counter(counter, prefix); in print_interval()
591 evlist__for_each(evsel_list, counter) in print_interval()
592 print_counter_aggr(counter, prefix); in print_interval()
600 struct perf_evsel *counter; in handle_initial_delay() local
607 evlist__for_each(evsel_list, counter) in handle_initial_delay()
608 perf_evsel__enable(counter, ncpus, nthreads); in handle_initial_delay()
629 struct perf_evsel *counter; in __run_perf_stat() local
655 evlist__for_each(evsel_list, counter) { in __run_perf_stat()
656 if (create_perf_stat_counter(counter) < 0) { in __run_perf_stat()
666 perf_evsel__name(counter)); in __run_perf_stat()
667 counter->supported = false; in __run_perf_stat()
671 perf_evsel__open_strerror(counter, &target, in __run_perf_stat()
680 counter->supported = true; in __run_perf_stat()
682 l = strlen(counter->unit); in __run_perf_stat()
687 if (perf_evlist__apply_filters(evsel_list, &counter)) { in __run_perf_stat()
689 counter->filter, perf_evsel__name(counter), errno, in __run_perf_stat()
734 evlist__for_each(evsel_list, counter) { in __run_perf_stat()
735 read_counter_aggr(counter); in __run_perf_stat()
736 perf_evsel__close_fd(counter, perf_evsel__nr_cpus(counter), in __run_perf_stat()
740 evlist__for_each(evsel_list, counter) { in __run_perf_stat()
741 read_counter(counter); in __run_perf_stat()
742 perf_evsel__close_fd(counter, perf_evsel__nr_cpus(counter), 1); in __run_perf_stat()
1229 struct perf_evsel *counter; in print_aggr() local
1239 evlist__for_each(evsel_list, counter) { in print_aggr()
1242 for (cpu = 0; cpu < perf_evsel__nr_cpus(counter); cpu++) { in print_aggr()
1243 s2 = aggr_get_id(perf_evsel__cpus(counter), cpu); in print_aggr()
1246 val += counter->counts->cpu[cpu].val; in print_aggr()
1247 ena += counter->counts->cpu[cpu].ena; in print_aggr()
1248 run += counter->counts->cpu[cpu].run; in print_aggr()
1255 aggr_printout(counter, id, nr); in print_aggr()
1259 counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED, in print_aggr()
1264 counter->unit, csv_sep); in print_aggr()
1268 perf_evsel__name(counter)); in print_aggr()
1270 if (counter->cgrp) in print_aggr()
1272 csv_sep, counter->cgrp->name); in print_aggr()
1278 uval = val * counter->scale; in print_aggr()
1280 if (nsec_counter(counter)) in print_aggr()
1281 nsec_printout(id, nr, counter, uval); in print_aggr()
1283 abs_printout(id, nr, counter, uval); in print_aggr()
1286 print_noise(counter, 1.0); in print_aggr()
1298 static void print_counter_aggr(struct perf_evsel *counter, char *prefix) in print_counter_aggr() argument
1300 struct perf_stat *ps = counter->priv; in print_counter_aggr()
1302 int scaled = counter->counts->scaled; in print_counter_aggr()
1312 if (scaled == -1 || !counter->supported) { in print_counter_aggr()
1315 counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED, in print_counter_aggr()
1319 counter->unit, csv_sep); in print_counter_aggr()
1322 perf_evsel__name(counter)); in print_counter_aggr()
1324 if (counter->cgrp) in print_counter_aggr()
1325 fprintf(output, "%s%s", csv_sep, counter->cgrp->name); in print_counter_aggr()
1332 uval = avg * counter->scale; in print_counter_aggr()
1334 if (nsec_counter(counter)) in print_counter_aggr()
1335 nsec_printout(-1, 0, counter, uval); in print_counter_aggr()
1337 abs_printout(-1, 0, counter, uval); in print_counter_aggr()
1339 print_noise(counter, avg); in print_counter_aggr()
1349 static void print_counter(struct perf_evsel *counter, char *prefix) in print_counter() argument
1355 for (cpu = 0; cpu < perf_evsel__nr_cpus(counter); cpu++) { in print_counter()
1356 val = counter->counts->cpu[cpu].val; in print_counter()
1357 ena = counter->counts->cpu[cpu].ena; in print_counter()
1358 run = counter->counts->cpu[cpu].run; in print_counter()
1366 perf_evsel__cpus(counter)->map[cpu], csv_sep, in print_counter()
1368 counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED, in print_counter()
1373 counter->unit, csv_sep); in print_counter()
1377 perf_evsel__name(counter)); in print_counter()
1379 if (counter->cgrp) in print_counter()
1381 csv_sep, counter->cgrp->name); in print_counter()
1388 uval = val * counter->scale; in print_counter()
1390 if (nsec_counter(counter)) in print_counter()
1391 nsec_printout(cpu, 0, counter, uval); in print_counter()
1393 abs_printout(cpu, 0, counter, uval); in print_counter()
1396 print_noise(counter, 1.0); in print_counter()
1405 struct perf_evsel *counter; in print_stat() local
1438 evlist__for_each(evsel_list, counter) in print_stat()
1439 print_counter_aggr(counter, NULL); in print_stat()
1442 evlist__for_each(evsel_list, counter) in print_stat()
1443 print_counter(counter, NULL); in print_stat()