|
@@ -232,7 +232,8 @@ static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name,
|
|
|
char *desc, char *val,
|
|
|
char *long_desc, char *topic,
|
|
|
char *unit, char *perpkg,
|
|
|
- char *metric_expr)
|
|
|
+ char *metric_expr,
|
|
|
+ char *metric_name)
|
|
|
{
|
|
|
struct perf_pmu_alias *alias;
|
|
|
int ret;
|
|
@@ -267,6 +268,7 @@ static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name,
|
|
|
}
|
|
|
|
|
|
alias->metric_expr = metric_expr ? strdup(metric_expr) : NULL;
|
|
|
+ alias->metric_name = metric_name ? strdup(metric_name): NULL;
|
|
|
alias->desc = desc ? strdup(desc) : NULL;
|
|
|
alias->long_desc = long_desc ? strdup(long_desc) :
|
|
|
desc ? strdup(desc) : NULL;
|
|
@@ -296,7 +298,7 @@ static int perf_pmu__new_alias(struct list_head *list, char *dir, char *name, FI
|
|
|
buf[ret] = 0;
|
|
|
|
|
|
return __perf_pmu__new_alias(list, dir, name, NULL, buf, NULL, NULL, NULL,
|
|
|
- NULL, NULL);
|
|
|
+ NULL, NULL, NULL);
|
|
|
}
|
|
|
|
|
|
static inline bool pmu_alias_info_file(char *name)
|
|
@@ -567,7 +569,8 @@ static void pmu_add_cpu_aliases(struct list_head *head, const char *name)
|
|
|
(char *)pe->desc, (char *)pe->event,
|
|
|
(char *)pe->long_desc, (char *)pe->topic,
|
|
|
(char *)pe->unit, (char *)pe->perpkg,
|
|
|
- (char *)pe->metric_expr);
|
|
|
+ (char *)pe->metric_expr,
|
|
|
+ (char *)pe->metric_name);
|
|
|
}
|
|
|
|
|
|
out:
|
|
@@ -995,6 +998,7 @@ int perf_pmu__check_alias(struct perf_pmu *pmu, struct list_head *head_terms,
|
|
|
info->scale = 0.0;
|
|
|
info->snapshot = false;
|
|
|
info->metric_expr = NULL;
|
|
|
+ info->metric_name = NULL;
|
|
|
|
|
|
list_for_each_entry_safe(term, h, head_terms, list) {
|
|
|
alias = pmu_find_alias(pmu, term);
|
|
@@ -1011,6 +1015,7 @@ int perf_pmu__check_alias(struct perf_pmu *pmu, struct list_head *head_terms,
|
|
|
if (alias->per_pkg)
|
|
|
info->per_pkg = true;
|
|
|
info->metric_expr = alias->metric_expr;
|
|
|
+ info->metric_name = alias->metric_name;
|
|
|
|
|
|
list_del(&term->list);
|
|
|
free(term);
|
|
@@ -1106,6 +1111,7 @@ struct sevent {
|
|
|
char *str;
|
|
|
char *pmu;
|
|
|
char *metric_expr;
|
|
|
+ char *metric_name;
|
|
|
};
|
|
|
|
|
|
static int cmp_sevent(const void *a, const void *b)
|
|
@@ -1205,6 +1211,7 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag,
|
|
|
aliases[j].str = alias->str;
|
|
|
aliases[j].pmu = pmu->name;
|
|
|
aliases[j].metric_expr = alias->metric_expr;
|
|
|
+ aliases[j].metric_name = alias->metric_name;
|
|
|
j++;
|
|
|
}
|
|
|
if (pmu->selectable &&
|
|
@@ -1241,6 +1248,8 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag,
|
|
|
printf("]\n");
|
|
|
if (verbose > 0) {
|
|
|
printf("%*s%s/%s/ ", 8, "", aliases[j].pmu, aliases[j].str);
|
|
|
+ if (aliases[j].metric_name)
|
|
|
+ printf(" MetricName: %s", aliases[j].metric_name);
|
|
|
if (aliases[j].metric_expr)
|
|
|
printf(" MetricExpr: %s", aliases[j].metric_expr);
|
|
|
putchar('\n');
|