Lines Matching defs:pm

182 static bool metric__group_events(const struct pmu_metric *pm)
184 switch (pm->event_grouping) {
190 metric__watchdog_constraint_hint(pm->metric_name, /*foot=*/false);
212 static struct metric *metric__new(const struct pmu_metric *pm,
229 m->pmu = pm->pmu ?: "cpu";
230 m->metric_name = pm->metric_name;
231 m->default_metricgroup_name = pm->default_metricgroup_name ?: "";
238 m->metric_expr = pm->metric_expr;
239 m->metric_threshold = pm->metric_threshold;
240 m->metric_unit = pm->unit;
249 m->group_events = !metric_no_group && metric__group_events(pm);
375 static bool match_pm_metric(const struct pmu_metric *pm, const char *pmu, const char *metric)
377 const char *pm_pmu = pm->pmu ?: "cpu";
382 return match_metric(pm->metric_group, metric) ||
383 match_metric(pm->metric_name, metric);
453 static int metricgroup__add_to_mep_groups(const struct pmu_metric *pm,
459 mg = strdup(pm->metric_group ?: pm->metric_name);
468 me = mep_lookup(groups, g, pm->metric_name);
470 me = mep_lookup(groups, pm->metric_name, pm->metric_name);
473 me->metric_desc = pm->desc;
474 me->metric_long_desc = pm->long_desc;
475 me->metric_expr = pm->metric_expr;
476 me->metric_threshold = pm->metric_threshold;
477 me->metric_unit = pm->unit;
490 static int metricgroup__sys_event_iter(const struct pmu_metric *pm,
497 if (!pm->metric_expr || !pm->compat)
502 if (!pmu->id || !pmu_uncore_identifier_match(pm->compat, pmu->id))
505 return d->fn(pm, table, d->data);
510 static int metricgroup__add_to_mep_groups_callback(const struct pmu_metric *pm,
516 return metricgroup__add_to_mep_groups(pm, groups);
775 int __weak arch_get_runtimeparam(const struct pmu_metric *pm __maybe_unused)
808 struct pmu_metric *pm);
811 const struct pmu_metric *pm,
855 struct pmu_metric pm;
858 * etc. from pm->metric_name.
869 struct pmu_metric pm;
871 if (metricgroup__find_metric(pmu, cur->pkey, table, &pm)) {
877 memcpy(&pending[pending_cnt].pm, &pm, sizeof(pm));
892 ret = add_metric(metric_list, &pending[i].pm, modifier, metric_no_group,
906 * @pm: The pmu_metric containing the metric to be added.
924 const struct pmu_metric *pm,
940 .name = pm->metric_name,
945 if (!strcmp(pm->metric_name, vm->name)) {
946 pr_err("failed: recursion detected for %s\n", pm->metric_name);
956 root_metric = metric__new(pm, modifier, metric_no_group, runtime,
971 if (!strcmp(pm->metric_name,
989 root_metric->metric_refs[cnt].metric_name = pm->metric_name;
990 root_metric->metric_refs[cnt].metric_expr = pm->metric_expr;
1002 expr = pm->metric_expr;
1003 if (is_root && pm->metric_threshold) {
1012 assert(strstr(pm->metric_threshold, pm->metric_name));
1013 expr = metric_no_threshold ? pm->metric_name : pm->metric_threshold;
1022 const char *pmu = pm->pmu ?: "cpu";
1042 struct pmu_metric *pm;
1045 static int metricgroup__find_metric_callback(const struct pmu_metric *pm,
1050 const char *pm_pmu = pm->pmu ?: "cpu";
1055 if (!match_metric(pm->metric_name, data->metric))
1058 memcpy(data->pm, pm, sizeof(*pm));
1065 struct pmu_metric *pm)
1070 .pm = pm,
1078 const struct pmu_metric *pm,
1090 pr_debug("metric expr %s for %s\n", pm->metric_expr, pm->metric_name);
1092 if (!strstr(pm->metric_expr, "?")) {
1093 ret = __add_metric(metric_list, pm, modifier, metric_no_group,
1099 count = arch_get_runtimeparam(pm);
1107 ret = __add_metric(metric_list, pm, modifier, metric_no_group,
1115 static int metricgroup__add_metric_sys_event_iter(const struct pmu_metric *pm,
1122 if (!match_pm_metric(pm, d->pmu, d->metric_name))
1125 ret = add_metric(d->metric_list, pm, d->modifier, d->metric_no_group,
1196 static int metricgroup__add_metric_callback(const struct pmu_metric *pm,
1203 if (pm->metric_expr && match_pm_metric(pm, data->pmu, data->metric_name)) {
1205 match_metric(pm->metricgroup_no_group, data->metric_name);
1208 ret = add_metric(data->list, pm, data->modifier, metric_no_group,
1728 static int metricgroup__has_metric_callback(const struct pmu_metric *pm,
1734 return match_pm_metric(pm, data->pmu, data->metric) ? 1 : 0;
1752 static int metricgroup__topdown_max_level_callback(const struct pmu_metric *pm,
1758 const char *p = strstr(pm->metric_group ?: "", "TopdownL");