Lines Matching full:alias

143 static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *name)  in perf_pmu__parse_scale()  argument
169 ret = perf_pmu__convert_scale(scale, NULL, &alias->scale); in perf_pmu__parse_scale()
175 static int perf_pmu__parse_unit(struct perf_pmu_alias *alias, char *dir, char *name) in perf_pmu__parse_unit() argument
187 sret = read(fd, alias->unit, UNIT_MAX_LEN); in perf_pmu__parse_unit()
193 if (alias->unit[sret - 1] == '\n') in perf_pmu__parse_unit()
194 alias->unit[sret - 1] = '\0'; in perf_pmu__parse_unit()
196 alias->unit[sret] = '\0'; in perf_pmu__parse_unit()
201 alias->unit[0] = '\0'; in perf_pmu__parse_unit()
206 perf_pmu__parse_per_pkg(struct perf_pmu_alias *alias, char *dir, char *name) in perf_pmu__parse_per_pkg() argument
219 alias->per_pkg = true; in perf_pmu__parse_per_pkg()
223 static int perf_pmu__parse_snapshot(struct perf_pmu_alias *alias, in perf_pmu__parse_snapshot() argument
235 alias->snapshot = true; in perf_pmu__parse_snapshot()
248 pr_debug("alias %s differs in field '%s'\n", in perf_pmu_assign_str()
276 /* Delete an alias entry. */
290 /* Merge an alias, search in alias list. If this name is already
317 struct perf_pmu_alias *alias; in __perf_pmu__new_alias() local
322 alias = malloc(sizeof(*alias)); in __perf_pmu__new_alias()
323 if (!alias) in __perf_pmu__new_alias()
326 INIT_LIST_HEAD(&alias->terms); in __perf_pmu__new_alias()
327 alias->scale = 1.0; in __perf_pmu__new_alias()
328 alias->unit[0] = '\0'; in __perf_pmu__new_alias()
329 alias->per_pkg = false; in __perf_pmu__new_alias()
330 alias->snapshot = false; in __perf_pmu__new_alias()
331 alias->deprecated = false; in __perf_pmu__new_alias()
333 ret = parse_events_terms(&alias->terms, val); in __perf_pmu__new_alias()
335 pr_err("Cannot parse alias %s: %d\n", val, ret); in __perf_pmu__new_alias()
336 free(alias); in __perf_pmu__new_alias()
345 * Rebuild string to make alias->str member comparable. in __perf_pmu__new_alias()
349 list_for_each_entry(term, &alias->terms, list) { in __perf_pmu__new_alias()
361 alias->name = strdup(name); in __perf_pmu__new_alias()
366 perf_pmu__parse_unit(alias, dir, name); in __perf_pmu__new_alias()
367 perf_pmu__parse_scale(alias, dir, name); in __perf_pmu__new_alias()
368 perf_pmu__parse_per_pkg(alias, dir, name); in __perf_pmu__new_alias()
369 perf_pmu__parse_snapshot(alias, dir, name); in __perf_pmu__new_alias()
372 alias->metric_expr = metric_expr ? strdup(metric_expr) : NULL; in __perf_pmu__new_alias()
373 alias->metric_name = metric_name ? strdup(metric_name): NULL; in __perf_pmu__new_alias()
374 alias->desc = desc ? strdup(desc) : NULL; in __perf_pmu__new_alias()
375 alias->long_desc = long_desc ? strdup(long_desc) : in __perf_pmu__new_alias()
377 alias->topic = topic ? strdup(topic) : NULL; in __perf_pmu__new_alias()
379 if (perf_pmu__convert_scale(unit, &unit, &alias->scale) < 0) in __perf_pmu__new_alias()
381 snprintf(alias->unit, sizeof(alias->unit), "%s", unit); in __perf_pmu__new_alias()
383 alias->per_pkg = perpkg && sscanf(perpkg, "%d", &num) == 1 && num == 1; in __perf_pmu__new_alias()
384 alias->str = strdup(newval); in __perf_pmu__new_alias()
387 alias->deprecated = true; in __perf_pmu__new_alias()
389 if (!perf_pmu_merge_alias(alias, list)) in __perf_pmu__new_alias()
390 list_add_tail(&alias->list, list); in __perf_pmu__new_alias()
498 static int pmu_alias_terms(struct perf_pmu_alias *alias, in pmu_alias_terms() argument
505 list_for_each_entry(term, &alias->terms, list) { in pmu_alias_terms()
714 * uncore alias may be from different PMU with common prefix in pmu_uncore_alias_match()
723 * Match more complex aliases where the alias name is a comma-delimited in pmu_uncore_alias_match()
726 * Example: For alias "socket,pmuname" and PMU "socketX_pmunameY", we in pmu_uncore_alias_match()
1217 struct perf_pmu_alias *alias; in pmu_find_alias() local
1237 list_for_each_entry(alias, &pmu->aliases, list) { in pmu_find_alias()
1238 if (!strcasecmp(alias->name, name)) in pmu_find_alias()
1239 return alias; in pmu_find_alias()
1245 static int check_info_data(struct perf_pmu_alias *alias, in check_info_data() argument
1253 if ((info->unit && alias->unit[0]) || in check_info_data()
1254 (info->scale && alias->scale) || in check_info_data()
1255 (info->snapshot && alias->snapshot)) in check_info_data()
1258 if (alias->unit[0]) in check_info_data()
1259 info->unit = alias->unit; in check_info_data()
1261 if (alias->scale) in check_info_data()
1262 info->scale = alias->scale; in check_info_data()
1264 if (alias->snapshot) in check_info_data()
1265 info->snapshot = alias->snapshot; in check_info_data()
1271 * Find alias in the terms list and replace it with the terms
1272 * defined for the alias
1278 struct perf_pmu_alias *alias; in perf_pmu__check_alias() local
1294 alias = pmu_find_alias(pmu, term); in perf_pmu__check_alias()
1295 if (!alias) in perf_pmu__check_alias()
1297 ret = pmu_alias_terms(alias, &term->list); in perf_pmu__check_alias()
1301 ret = check_info_data(alias, info); in perf_pmu__check_alias()
1305 if (alias->per_pkg) in perf_pmu__check_alias()
1307 info->metric_expr = alias->metric_expr; in perf_pmu__check_alias()
1308 info->metric_name = alias->metric_name; in perf_pmu__check_alias()
1376 struct perf_pmu_alias *alias) in format_alias() argument
1379 int used = snprintf(buf, len, "%s/%s", pmu->name, alias->name); in format_alias()
1381 list_for_each_entry(term, &alias->terms, list) { in format_alias()
1402 struct perf_pmu_alias *alias) in format_alias_or() argument
1404 snprintf(buf, len, "%s OR %s/%s/", alias->name, pmu->name, alias->name); in format_alias_or()
1471 struct perf_pmu_alias *alias; in print_pmu_events() local
1483 list_for_each_entry(alias, &pmu->aliases, list) in print_pmu_events()
1494 list_for_each_entry(alias, &pmu->aliases, list) { in print_pmu_events()
1495 char *name = alias->desc ? alias->name : in print_pmu_events()
1496 format_alias(buf, sizeof(buf), pmu, alias); in print_pmu_events()
1499 if (alias->deprecated && !deprecated) in print_pmu_events()
1504 (!is_cpu && strglobmatch_nocase(alias->name, in print_pmu_events()
1506 (alias->topic && in print_pmu_events()
1507 strglobmatch_nocase(alias->topic, event_glob)))) in print_pmu_events()
1510 if (is_cpu && !name_only && !alias->desc) in print_pmu_events()
1511 name = format_alias_or(buf, sizeof(buf), pmu, alias); in print_pmu_events()
1514 if (is_cpu && !name_only && !alias->desc) in print_pmu_events()
1517 pmu, alias); in print_pmu_events()
1522 aliases[j].desc = long_desc ? alias->long_desc : in print_pmu_events()
1523 alias->desc; in print_pmu_events()
1524 aliases[j].topic = alias->topic; in print_pmu_events()
1525 aliases[j].str = alias->str; in print_pmu_events()
1527 aliases[j].metric_expr = alias->metric_expr; in print_pmu_events()
1528 aliases[j].metric_name = alias->metric_name; in print_pmu_events()
1593 struct perf_pmu_alias *alias; in pmu_have_event() local
1599 list_for_each_entry(alias, &pmu->aliases, list) in pmu_have_event()
1600 if (!strcmp(alias->name, name)) in pmu_have_event()