Lines Matching refs:evsel

56 static int evsel_context(const struct evsel *evsel)  in evsel_context()  argument
60 if (evsel->core.attr.exclude_kernel) in evsel_context()
62 if (evsel->core.attr.exclude_user) in evsel_context()
64 if (evsel->core.attr.exclude_hv) in evsel_context()
66 if (evsel->core.attr.exclude_host) in evsel_context()
68 if (evsel->core.attr.exclude_idle) in evsel_context()
80 static enum stat_type evsel__stat_type(struct evsel *evsel) in evsel__stat_type() argument
99 if (evsel__is_clock(evsel)) in evsel__stat_type()
101 else if (evsel__match(evsel, HARDWARE, HW_CPU_CYCLES)) in evsel__stat_type()
103 else if (evsel__match(evsel, HARDWARE, HW_INSTRUCTIONS)) in evsel__stat_type()
105 else if (evsel__match(evsel, HARDWARE, HW_STALLED_CYCLES_FRONTEND)) in evsel__stat_type()
107 else if (evsel__match(evsel, HARDWARE, HW_STALLED_CYCLES_BACKEND)) in evsel__stat_type()
109 else if (evsel__match(evsel, HARDWARE, HW_BRANCH_INSTRUCTIONS)) in evsel__stat_type()
111 else if (evsel__match(evsel, HARDWARE, HW_BRANCH_MISSES)) in evsel__stat_type()
113 else if (evsel__match(evsel, HARDWARE, HW_CACHE_REFERENCES)) in evsel__stat_type()
115 else if (evsel__match(evsel, HARDWARE, HW_CACHE_MISSES)) in evsel__stat_type()
117 else if (evsel__match(evsel, HW_CACHE, HW_CACHE_L1D)) in evsel__stat_type()
119 else if (evsel__match(evsel, HW_CACHE, HW_CACHE_L1I)) in evsel__stat_type()
121 else if (evsel__match(evsel, HW_CACHE, HW_CACHE_LL)) in evsel__stat_type()
123 else if (evsel__match(evsel, HW_CACHE, HW_CACHE_DTLB)) in evsel__stat_type()
125 else if (evsel__match(evsel, HW_CACHE, HW_CACHE_ITLB)) in evsel__stat_type()
127 else if (evsel__match(evsel, HW_CACHE, hw_cache_l1d_miss)) in evsel__stat_type()
129 else if (evsel__match(evsel, HW_CACHE, hw_cache_l1i_miss)) in evsel__stat_type()
131 else if (evsel__match(evsel, HW_CACHE, hw_cache_ll_miss)) in evsel__stat_type()
133 else if (evsel__match(evsel, HW_CACHE, hw_cache_dtlb_miss)) in evsel__stat_type()
135 else if (evsel__match(evsel, HW_CACHE, hw_cache_itlb_miss)) in evsel__stat_type()
150 static double find_stat(const struct evsel *evsel, int aggr_idx, enum stat_type type) in find_stat() argument
152 struct evsel *cur; in find_stat()
153 int evsel_ctx = evsel_context(evsel); in find_stat()
154 struct perf_pmu *evsel_pmu = evsel__find_pmu(evsel); in find_stat()
156 evlist__for_each_entry(evsel->evlist, cur) { in find_stat()
160 if (evsel == cur) in find_stat()
164 if (evsel->core.leader->nr_members > 1 && in find_stat()
165 evsel->core.leader != cur->core.leader) in find_stat()
171 if (evsel->cgrp != cur->cgrp) in find_stat()
193 const struct evsel *evsel, int aggr_idx, in print_ratio() argument
198 double denominator = find_stat(evsel, aggr_idx, denominator_type); in print_ratio()
214 const struct evsel *evsel, in print_stalled_cycles_front() argument
220 print_ratio(config, evsel, aggr_idx, stalled, out, STAT_CYCLES, thresh_ratios, in print_stalled_cycles_front()
225 const struct evsel *evsel, in print_stalled_cycles_back() argument
231 print_ratio(config, evsel, aggr_idx, stalled, out, STAT_CYCLES, thresh_ratios, in print_stalled_cycles_back()
236 const struct evsel *evsel, in print_branch_miss() argument
242 print_ratio(config, evsel, aggr_idx, misses, out, STAT_BRANCHES, thresh_ratios, in print_branch_miss()
247 const struct evsel *evsel, in print_l1d_miss() argument
253 print_ratio(config, evsel, aggr_idx, misses, out, STAT_L1_DCACHE, thresh_ratios, in print_l1d_miss()
258 const struct evsel *evsel, in print_l1i_miss() argument
264 print_ratio(config, evsel, aggr_idx, misses, out, STAT_L1_ICACHE, thresh_ratios, in print_l1i_miss()
269 const struct evsel *evsel, in print_ll_miss() argument
275 print_ratio(config, evsel, aggr_idx, misses, out, STAT_LL_CACHE, thresh_ratios, in print_ll_miss()
280 const struct evsel *evsel, in print_dtlb_miss() argument
286 print_ratio(config, evsel, aggr_idx, misses, out, STAT_DTLB_CACHE, thresh_ratios, in print_dtlb_miss()
291 const struct evsel *evsel, in print_itlb_miss() argument
297 print_ratio(config, evsel, aggr_idx, misses, out, STAT_ITLB_CACHE, thresh_ratios, in print_itlb_miss()
302 const struct evsel *evsel, in print_cache_miss() argument
308 print_ratio(config, evsel, aggr_idx, misses, out, STAT_CACHE_REFS, thresh_ratios, in print_cache_miss()
313 const struct evsel *evsel, in print_instructions() argument
319 double cycles = find_stat(evsel, aggr_idx, STAT_CYCLES); in print_instructions()
320 double max_stalled = max(find_stat(evsel, aggr_idx, STAT_STALLED_CYCLES_FRONT), in print_instructions()
321 find_stat(evsel, aggr_idx, STAT_STALLED_CYCLES_BACK)); in print_instructions()
339 const struct evsel *evsel, in print_cycles() argument
343 double nsecs = find_stat(evsel, aggr_idx, STAT_NSECS); in print_cycles()
357 const struct evsel *evsel, in print_nsecs() argument
367 nsecs / (wall_time * evsel->scale)); in print_nsecs()
375 const struct evsel *evsel, in prepare_metric() argument
379 struct evsel * const *metric_events = mexp->metric_events; in prepare_metric()
435 if (evsel && evsel->metric_leader && in prepare_metric()
436 evsel->pmu != evsel->metric_leader->pmu && in prepare_metric()
437 mexp->metric_events[i]->pmu == evsel->metric_leader->pmu) { in prepare_metric()
438 struct evsel *pos; in prepare_metric()
440 evlist__for_each_entry(evsel->evlist, pos) { in prepare_metric()
441 if (pos->pmu != evsel->pmu) in prepare_metric()
489 struct evsel *evsel, in generic_metric() argument
498 struct evsel * const *metric_events = mexp->metric_events; in generic_metric()
514 i = prepare_metric(mexp, evsel, pctx, aggr_idx); in generic_metric()
549 out->force_header ? evsel->name : "", in generic_metric()
555 (metric_name ?: evsel->name) : "", 0); in generic_metric()
560 (metric_name ?: evsel->name) : "", 0); in generic_metric()
587 struct evsel *evsel, in perf_stat__print_metricgroup_header() argument
605 if (!need_full_name || last_pmu != evsel->pmu) { in perf_stat__print_metricgroup_header()
611 if (need_full_name && evsel->pmu) in perf_stat__print_metricgroup_header()
612 scnprintf(full_name, sizeof(full_name), "%s (%s)", name, evsel->pmu->name); in perf_stat__print_metricgroup_header()
619 last_pmu = evsel->pmu; in perf_stat__print_metricgroup_header()
634 struct evsel *evsel, in perf_stat__print_shadow_stats_metricgroup() argument
645 struct rblist *metric_events = &evsel->evlist->metric_events; in perf_stat__print_shadow_stats_metricgroup()
647 me = metricgroup__lookup(metric_events, evsel, false); in perf_stat__print_shadow_stats_metricgroup()
670 perf_stat__print_metricgroup_header(config, evsel, ctxp, in perf_stat__print_shadow_stats_metricgroup()
677 generic_metric(config, mexp, evsel, aggr_idx, out); in perf_stat__print_shadow_stats_metricgroup()
684 struct evsel *evsel, in perf_stat__print_shadow_stats() argument
689 const struct evsel *evsel, in perf_stat__print_shadow_stats()
711 iostat_print_metric(config, evsel, out); in perf_stat__print_shadow_stats()
713 stat_print_function_t fn = stat_print_function[evsel__stat_type(evsel)]; in perf_stat__print_shadow_stats()
716 fn(config, evsel, aggr_idx, avg, out); in perf_stat__print_shadow_stats()
718 double nsecs = find_stat(evsel, aggr_idx, STAT_NSECS); in perf_stat__print_shadow_stats()
736 perf_stat__print_shadow_stats_metricgroup(config, evsel, aggr_idx, in perf_stat__print_shadow_stats()
749 bool perf_stat__skip_metric_event(struct evsel *evsel, in perf_stat__skip_metric_event() argument
752 if (!evsel->default_metricgroup) in perf_stat__skip_metric_event()
758 return !metricgroup__lookup(&evsel->evlist->metric_events, evsel, false); in perf_stat__skip_metric_event()