Lines Matching full:pe
168 static bool metricgroup__has_constraint(const struct pmu_event *pe) in metricgroup__has_constraint() argument
170 if (!pe->metric_constraint) in metricgroup__has_constraint()
173 if (!strcmp(pe->metric_constraint, "NO_NMI_WATCHDOG") && in metricgroup__has_constraint()
175 metricgroup___watchdog_constraint_hint(pe->metric_name, false); in metricgroup__has_constraint()
194 static struct metric *metric__new(const struct pmu_event *pe, in metric__new() argument
211 m->metric_name = pe->metric_name; in metric__new()
218 m->metric_expr = pe->metric_expr; in metric__new()
219 m->metric_unit = pe->unit; in metric__new()
228 m->has_constraint = metric_no_group || metricgroup__has_constraint(pe); in metric__new()
349 static bool match_pe_metric(const struct pmu_event *pe, const char *metric) in match_pe_metric() argument
351 return match_metric(pe->metric_group, metric) || in match_pe_metric()
352 match_metric(pe->metric_name, metric); in match_pe_metric()
433 static int metricgroup__print_pmu_event(const struct pmu_event *pe, in metricgroup__print_pmu_event() argument
442 g = pe->metric_group; in metricgroup__print_pmu_event()
443 if (!g && pe->metric_name) { in metricgroup__print_pmu_event()
444 if (pe->name) in metricgroup__print_pmu_event()
467 s = (char *)pe->metric_name; in metricgroup__print_pmu_event()
470 pe->metric_name, 8, "[", pe->desc) < 0) in metricgroup__print_pmu_event()
474 s, 8, "[", pe->metric_expr) < 0) in metricgroup__print_pmu_event()
513 static int metricgroup__sys_event_iter(const struct pmu_event *pe, in metricgroup__sys_event_iter() argument
520 if (!pe->metric_expr || !pe->compat) in metricgroup__sys_event_iter()
525 if (!pmu->id || strcmp(pmu->id, pe->compat)) in metricgroup__sys_event_iter()
528 return d->fn(pe, table, d->data); in metricgroup__sys_event_iter()
534 static int metricgroup__print_sys_event_iter(const struct pmu_event *pe, in metricgroup__print_sys_event_iter() argument
540 return metricgroup__print_pmu_event(pe, d->metricgroups, d->filter, d->raw, in metricgroup__print_sys_event_iter()
554 static int metricgroup__print_callback(const struct pmu_event *pe, in metricgroup__print_callback() argument
560 if (!pe->metric_expr) in metricgroup__print_callback()
563 if (data->pmu_name && perf_pmu__is_hybrid(pe->pmu) && strcmp(data->pmu_name, pe->pmu)) in metricgroup__print_callback()
566 return metricgroup__print_pmu_event(pe, data->metricgroups, data->filter, in metricgroup__print_callback()
859 int __weak arch_get_runtimeparam(const struct pmu_event *pe __maybe_unused) in arch_get_runtimeparam()
889 struct pmu_event *pe);
892 const struct pmu_event *pe,
932 struct pmu_event pe; in resolve_metric() member
935 * etc. from pe->metric_name. in resolve_metric()
946 struct pmu_event pe; in resolve_metric() local
948 if (metricgroup__find_metric(cur->key, table, &pe)) { in resolve_metric()
954 memcpy(&pending[pending_cnt].pe, &pe, sizeof(pe)); in resolve_metric()
969 ret = add_metric(metric_list, &pending[i].pe, modifier, metric_no_group, in resolve_metric()
983 * @pe: The pmu_event containing the metric to be added.
1000 const struct pmu_event *pe, in __add_metric() argument
1014 .name = pe->metric_name, in __add_metric()
1019 if (!strcmp(pe->metric_name, vm->name)) { in __add_metric()
1020 pr_err("failed: recursion detected for %s\n", pe->metric_name); in __add_metric()
1030 root_metric = metric__new(pe, modifier, metric_no_group, runtime, in __add_metric()
1045 if (!strcmp(pe->metric_name, in __add_metric()
1059 * from 'pe' object, so they never go away. We don't in __add_metric()
1063 root_metric->metric_refs[cnt].metric_name = pe->metric_name; in __add_metric()
1064 root_metric->metric_refs[cnt].metric_expr = pe->metric_expr; in __add_metric()
1075 if (expr__find_ids(pe->metric_expr, NULL, root_metric->pctx) < 0) { in __add_metric()
1097 struct pmu_event *pe; member
1100 static int metricgroup__find_metric_callback(const struct pmu_event *pe, in metricgroup__find_metric_callback() argument
1106 if (!match_metric(pe->metric_name, data->metric)) in metricgroup__find_metric_callback()
1109 memcpy(data->pe, pe, sizeof(*pe)); in metricgroup__find_metric_callback()
1115 struct pmu_event *pe) in metricgroup__find_metric() argument
1119 .pe = pe, in metricgroup__find_metric()
1127 const struct pmu_event *pe, in add_metric() argument
1138 pr_debug("metric expr %s for %s\n", pe->metric_expr, pe->metric_name); in add_metric()
1140 if (!strstr(pe->metric_expr, "?")) { in add_metric()
1141 ret = __add_metric(metric_list, pe, modifier, metric_no_group, 0, in add_metric()
1147 count = arch_get_runtimeparam(pe); in add_metric()
1155 ret = __add_metric(metric_list, pe, modifier, metric_no_group, j, in add_metric()
1163 static int metricgroup__add_metric_sys_event_iter(const struct pmu_event *pe, in metricgroup__add_metric_sys_event_iter() argument
1170 if (!match_pe_metric(pe, d->metric_name)) in metricgroup__add_metric_sys_event_iter()
1173 ret = add_metric(d->metric_list, pe, d->modifier, d->metric_no_group, in metricgroup__add_metric_sys_event_iter()
1223 static int metricgroup__add_metric_callback(const struct pmu_event *pe, in metricgroup__add_metric_callback() argument
1230 if (pe->metric_expr && in metricgroup__add_metric_callback()
1231 (match_metric(pe->metric_group, data->metric_name) || in metricgroup__add_metric_callback()
1232 match_metric(pe->metric_name, data->metric_name))) { in metricgroup__add_metric_callback()
1235 ret = add_metric(data->list, pe, data->modifier, data->metric_no_group, in metricgroup__add_metric_callback()
1719 static int metricgroup__has_metric_callback(const struct pmu_event *pe, in metricgroup__has_metric_callback() argument
1725 if (!pe->metric_expr) in metricgroup__has_metric_callback()
1728 if (match_metric(pe->metric_name, metric)) in metricgroup__has_metric_callback()