Lines Matching refs:alias
309 static int perf_pmu__parse_scale(struct perf_pmu *pmu, struct perf_pmu_alias *alias) in perf_pmu__parse_scale() argument
321 scnprintf(path + len, sizeof(path) - len, "%s/events/%s.scale", pmu->name, alias->name); in perf_pmu__parse_scale()
339 ret = perf_pmu__convert_scale(scale, NULL, &alias->scale); in perf_pmu__parse_scale()
345 static int perf_pmu__parse_unit(struct perf_pmu *pmu, struct perf_pmu_alias *alias) in perf_pmu__parse_unit() argument
356 scnprintf(path + len, sizeof(path) - len, "%s/events/%s.unit", pmu->name, alias->name); in perf_pmu__parse_unit()
362 sret = read(fd, alias->unit, UNIT_MAX_LEN); in perf_pmu__parse_unit()
368 if (alias->unit[sret - 1] == '\n') in perf_pmu__parse_unit()
369 alias->unit[sret - 1] = '\0'; in perf_pmu__parse_unit()
371 alias->unit[sret] = '\0'; in perf_pmu__parse_unit()
376 alias->unit[0] = '\0'; in perf_pmu__parse_unit()
411 static void perf_pmu__parse_per_pkg(struct perf_pmu *pmu, struct perf_pmu_alias *alias) in perf_pmu__parse_per_pkg() argument
413 alias->per_pkg = perf_pmu__parse_event_source_bool(pmu->name, alias->name, "per-pkg"); in perf_pmu__parse_per_pkg()
416 static void perf_pmu__parse_snapshot(struct perf_pmu *pmu, struct perf_pmu_alias *alias) in perf_pmu__parse_snapshot() argument
418 alias->snapshot = perf_pmu__parse_event_source_bool(pmu->name, alias->name, "snapshot"); in perf_pmu__parse_snapshot()
422 static void perf_pmu_free_alias(struct perf_pmu_alias *alias) in perf_pmu_free_alias() argument
424 if (!alias) in perf_pmu_free_alias()
427 zfree(&alias->name); in perf_pmu_free_alias()
428 zfree(&alias->desc); in perf_pmu_free_alias()
429 zfree(&alias->long_desc); in perf_pmu_free_alias()
430 zfree(&alias->topic); in perf_pmu_free_alias()
431 zfree(&alias->pmu_name); in perf_pmu_free_alias()
432 parse_events_terms__exit(&alias->terms); in perf_pmu_free_alias()
433 free(alias); in perf_pmu_free_alias()
455 struct perf_pmu_alias *alias; in perf_pmu__find_alias() local
459 if (hashmap__find(pmu->aliases, name, &alias)) in perf_pmu__find_alias()
460 return alias; in perf_pmu__find_alias()
483 if (hashmap__find(pmu->aliases, name, &alias)) in perf_pmu__find_alias()
484 return alias; in perf_pmu__find_alias()
508 static void read_alias_info(struct perf_pmu *pmu, struct perf_pmu_alias *alias) in read_alias_info() argument
510 if (!alias->from_sysfs || alias->info_loaded) in read_alias_info()
516 perf_pmu__parse_unit(pmu, alias); in read_alias_info()
517 perf_pmu__parse_scale(pmu, alias); in read_alias_info()
518 perf_pmu__parse_per_pkg(pmu, alias); in read_alias_info()
519 perf_pmu__parse_snapshot(pmu, alias); in read_alias_info()
524 struct perf_pmu_alias *alias; member
534 read_alias_info(data->pmu, data->alias); in update_alias()
535 assign_str(pe->name, "desc", &data->alias->desc, pe->desc); in update_alias()
536 assign_str(pe->name, "long_desc", &data->alias->long_desc, pe->long_desc); in update_alias()
537 assign_str(pe->name, "topic", &data->alias->topic, pe->topic); in update_alias()
538 data->alias->per_pkg = pe->perpkg; in update_alias()
540 parse_events_terms__exit(&data->alias->terms); in update_alias()
541 ret = parse_events_terms(&data->alias->terms, pe->event, /*input=*/NULL); in update_alias()
546 ret = perf_pmu__convert_scale(pe->unit, &unit, &data->alias->scale); in update_alias()
548 snprintf(data->alias->unit, sizeof(data->alias->unit), "%s", unit); in update_alias()
552 &data->alias->retirement_latency_mean); in update_alias()
556 &data->alias->retirement_latency_min); in update_alias()
560 &data->alias->retirement_latency_max); in update_alias()
569 struct perf_pmu_alias *alias, *old_alias; in perf_pmu__new_alias() local
589 alias = zalloc(sizeof(*alias)); in perf_pmu__new_alias()
590 if (!alias) in perf_pmu__new_alias()
593 parse_events_terms__init(&alias->terms); in perf_pmu__new_alias()
594 alias->scale = 1.0; in perf_pmu__new_alias()
595 alias->unit[0] = '\0'; in perf_pmu__new_alias()
596 alias->per_pkg = perpkg; in perf_pmu__new_alias()
597 alias->snapshot = false; in perf_pmu__new_alias()
598 alias->deprecated = deprecated; in perf_pmu__new_alias()
599 alias->retirement_latency_mean = 0.0; in perf_pmu__new_alias()
600 alias->retirement_latency_min = 0.0; in perf_pmu__new_alias()
601 alias->retirement_latency_max = 0.0; in perf_pmu__new_alias()
605 &alias->retirement_latency_mean); in perf_pmu__new_alias()
609 &alias->retirement_latency_min); in perf_pmu__new_alias()
613 &alias->retirement_latency_max); in perf_pmu__new_alias()
618 ret = parse_events_terms(&alias->terms, val, val_fd); in perf_pmu__new_alias()
621 free(alias); in perf_pmu__new_alias()
625 alias->name = strdup(name); in perf_pmu__new_alias()
626 alias->desc = desc ? strdup(desc) : NULL; in perf_pmu__new_alias()
627 alias->long_desc = long_desc ? strdup(long_desc) : NULL; in perf_pmu__new_alias()
628 alias->topic = topic ? strdup(topic) : NULL; in perf_pmu__new_alias()
629 alias->pmu_name = pmu_name ? strdup(pmu_name) : NULL; in perf_pmu__new_alias()
631 if (perf_pmu__convert_scale(unit, (char **)&unit, &alias->scale) < 0) { in perf_pmu__new_alias()
632 perf_pmu_free_alias(alias); in perf_pmu__new_alias()
635 snprintf(alias->unit, sizeof(alias->unit), "%s", unit); in perf_pmu__new_alias()
640 alias->from_sysfs = true; in perf_pmu__new_alias()
645 .alias = alias, in perf_pmu__new_alias()
661 hashmap__set(pmu->aliases, alias->name, alias, /*old_key=*/ NULL, &old_alias); in perf_pmu__new_alias()
770 static int pmu_alias_terms(struct perf_pmu_alias *alias, int err_loc, struct list_head *terms) in pmu_alias_terms() argument
776 list_for_each_entry(term, &alias->terms.terms, list) { in pmu_alias_terms()
1694 struct perf_pmu_alias *alias; in pmu_find_alias() local
1715 alias = perf_pmu__find_alias(pmu, name, /*load=*/ true); in pmu_find_alias()
1716 if (alias || pmu->cpu_aliases_added) in pmu_find_alias()
1717 return alias; in pmu_find_alias()
1724 alias = perf_pmu__find_alias(pmu, name, /*load=*/ false); in pmu_find_alias()
1726 return alias; in pmu_find_alias()
1731 struct perf_pmu_alias *alias, in check_info_data() argument
1736 read_alias_info(pmu, alias); in check_info_data()
1742 if (info->unit && alias->unit[0]) { in check_info_data()
1748 if (info->scale && alias->scale) { in check_info_data()
1754 if (info->snapshot && alias->snapshot) { in check_info_data()
1761 if (alias->unit[0]) in check_info_data()
1762 info->unit = alias->unit; in check_info_data()
1764 if (alias->scale) in check_info_data()
1765 info->scale = alias->scale; in check_info_data()
1767 if (alias->snapshot) in check_info_data()
1768 info->snapshot = alias->snapshot; in check_info_data()
1782 struct perf_pmu_alias *alias; in perf_pmu__check_alias() local
1813 alias = pmu_find_alias(pmu, term); in perf_pmu__check_alias()
1814 if (!alias) in perf_pmu__check_alias()
1816 ret = pmu_alias_terms(alias, term->err_term, &term->list); in perf_pmu__check_alias()
1825 ret = check_info_data(pmu, alias, info, err, term->err_term); in perf_pmu__check_alias()
1829 if (alias->per_pkg) in perf_pmu__check_alias()
1835 info->retirement_latency_mean = alias->retirement_latency_mean; in perf_pmu__check_alias()
1836 info->retirement_latency_min = alias->retirement_latency_min; in perf_pmu__check_alias()
1837 info->retirement_latency_max = alias->retirement_latency_max; in perf_pmu__check_alias()
2036 const struct perf_pmu_alias *alias, bool skip_duplicate_pmus) in format_alias() argument
2041 int used = snprintf(buf, len, "%.*s/%s", (int)pmu_name_len, pmu->name, alias->name); in format_alias()
2043 list_for_each_entry(term, &alias->terms.terms, list) { in format_alias()
2096 info.alias = NULL; in perf_pmu__for_each_event()
2104 info.alias = info.name; in perf_pmu__for_each_event()
2132 info.alias = NULL; in perf_pmu__for_each_event()