]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - tools/perf/util/pmu.c
Merge branches 'pm-core', 'pm-qos', 'pm-domains' and 'pm-opp'
[linux.git] / tools / perf / util / pmu.c
index 8e9d00fd418ef26f8e380ebab2612e6745a7b393..49bfee0e3d9ed0b483180a74b7bfd96954f4968b 100644 (file)
@@ -275,6 +275,8 @@ static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name,
                snprintf(alias->unit, sizeof(alias->unit), "%s", unit);
        }
        alias->per_pkg = perpkg && sscanf(perpkg, "%d", &num) == 1 && num == 1;
+       alias->str = strdup(val);
+
        list_add_tail(&alias->list, list);
 
        return 0;
@@ -943,12 +945,12 @@ static int check_info_data(struct perf_pmu_alias *alias,
         * define unit, scale and snapshot, fail
         * if there's more than one.
         */
-       if ((info->unit && alias->unit) ||
+       if ((info->unit && alias->unit[0]) ||
            (info->scale && alias->scale) ||
            (info->snapshot && alias->snapshot))
                return -EINVAL;
 
-       if (alias->unit)
+       if (alias->unit[0])
                info->unit = alias->unit;
 
        if (alias->scale)
@@ -1087,6 +1089,8 @@ struct sevent {
        char *name;
        char *desc;
        char *topic;
+       char *str;
+       char *pmu;
 };
 
 static int cmp_sevent(const void *a, const void *b)
@@ -1183,6 +1187,8 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag,
                        aliases[j].desc = long_desc ? alias->long_desc :
                                                alias->desc;
                        aliases[j].topic = alias->topic;
+                       aliases[j].str = alias->str;
+                       aliases[j].pmu = pmu->name;
                        j++;
                }
                if (pmu->selectable &&
@@ -1217,6 +1223,8 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag,
                        printf("%*s", 8, "[");
                        wordwrap(aliases[j].desc, 8, columns, 0);
                        printf("]\n");
+                       if (verbose)
+                               printf("%*s%s/%s/\n", 8, "", aliases[j].pmu, aliases[j].str);
                } else
                        printf("  %-50s [Kernel PMU event]\n", aliases[j].name);
                printed++;