[PATCH v13 06/14] perf, tools: Support alias descriptions
Jiri Olsa
jolsa at redhat.com
Wed Jun 3 20:31:43 AEST 2015
On Tue, Jun 02, 2015 at 10:12:06AM -0700, Sukadev Bhattiprolu wrote:
SNIP
> @@ -1033,37 +1064,49 @@ void print_pmu_events(const char *event_glob, bool name_only)
> event_glob))))
> continue;
>
> - if (is_cpu && !name_only)
> + if (is_cpu && !name_only && !alias->desc)
> name = format_alias_or(buf, sizeof(buf), pmu, alias);
>
> - aliases[j] = strdup(name);
> - if (aliases[j] == NULL)
> - goto out_enomem;
> + aliases[j].name = name;
> + if (is_cpu && !name_only && !alias->desc)
> + aliases[j].name = format_alias_or(buf, sizeof(buf),
> + pmu, alias);
> + aliases[j].name = strdup(aliases[j].name);
> + /* failure harmless */
yea but we still try to care everywhere.. ;-)
we would print "NULL" for name in the code below right?
please keep the above pattern:
if (aliases[j].name == NULL)
goto out_enomem;
> + aliases[j].desc = alias->desc;
> j++;
> }
> if (pmu->selectable) {
> char *s;
> if (asprintf(&s, "%s//", pmu->name) < 0)
> goto out_enomem;
> - aliases[j] = s;
> + aliases[j].name = s;
> j++;
> }
> }
> len = j;
> - qsort(aliases, len, sizeof(char *), cmp_string);
> + qsort(aliases, len, sizeof(struct pair), cmp_pair);
> for (j = 0; j < len; j++) {
> if (name_only) {
> - printf("%s ", aliases[j]);
> + printf("%s ", aliases[j].name);
> continue;
> }
> - printf(" %-50s [Kernel PMU event]\n", aliases[j]);
> + if (aliases[j].desc) {
> + if (numdesc++ == 0)
> + printf("\n");
> + printf(" %-50s\n", aliases[j].name);
> + printf("%*s", 8, "[");
> + wordwrap(aliases[j].desc, 8, columns, 0);
> + printf("]\n");
> + } else
> + printf(" %-50s [Kernel PMU event]\n", aliases[j].name);
> printed++;
SNIP
More information about the Linuxppc-dev
mailing list