aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/pmu.c
diff options
context:
space:
mode:
authorSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>2016-09-15 18:24:48 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-10-03 20:35:47 -0400
commitc8d6828a6510c9363180ebf662b51d032e0eb85a (patch)
treeb2f63f0bb7f47ff99d82b7e7e162933ac1a86d9b /tools/perf/util/pmu.c
parent794ba54a8393456d503958d6217874e455b6a771 (diff)
perf list: Support long jevents descriptions
Previously we were dropping the useful longer descriptions that some events have in the event list completely. This patch makes them appear with perf list. Old perf list: baclears: baclears.all [Counts the number of baclears] vs new: perf list -v: ... baclears: baclears.all [The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end. The BACLEARS.ANY event counts the number of baclears for any type of branch] Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Acked-by: Ingo Molnar <mingo@kernel.org> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1473978296-20712-13-git-send-email-sukadev@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/pmu.c')
-rw-r--r--tools/perf/util/pmu.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 79242cf9bb79..8ff382cb161d 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -223,7 +223,7 @@ static int perf_pmu__parse_snapshot(struct perf_pmu_alias *alias,
223} 223}
224 224
225static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name, 225static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name,
226 char *desc, char *val) 226 char *desc, char *val, char *long_desc)
227{ 227{
228 struct perf_pmu_alias *alias; 228 struct perf_pmu_alias *alias;
229 int ret; 229 int ret;
@@ -257,6 +257,8 @@ static int __perf_pmu__new_alias(struct list_head *list, char *dir, char *name,
257 } 257 }
258 258
259 alias->desc = desc ? strdup(desc) : NULL; 259 alias->desc = desc ? strdup(desc) : NULL;
260 alias->long_desc = long_desc ? strdup(long_desc) :
261 desc ? strdup(desc) : NULL;
260 262
261 list_add_tail(&alias->list, list); 263 list_add_tail(&alias->list, list);
262 264
@@ -274,7 +276,7 @@ static int perf_pmu__new_alias(struct list_head *list, char *dir, char *name, FI
274 276
275 buf[ret] = 0; 277 buf[ret] = 0;
276 278
277 return __perf_pmu__new_alias(list, dir, name, NULL, buf); 279 return __perf_pmu__new_alias(list, dir, name, NULL, buf, NULL);
278} 280}
279 281
280static inline bool pmu_alias_info_file(char *name) 282static inline bool pmu_alias_info_file(char *name)
@@ -532,7 +534,8 @@ static void pmu_add_cpu_aliases(struct list_head *head)
532 534
533 /* need type casts to override 'const' */ 535 /* need type casts to override 'const' */
534 __perf_pmu__new_alias(head, NULL, (char *)pe->name, 536 __perf_pmu__new_alias(head, NULL, (char *)pe->name,
535 (char *)pe->desc, (char *)pe->event); 537 (char *)pe->desc, (char *)pe->event,
538 (char *)pe->long_desc);
536 } 539 }
537 540
538out: 541out:
@@ -1090,7 +1093,8 @@ static void wordwrap(char *s, int start, int max, int corr)
1090 } 1093 }
1091} 1094}
1092 1095
1093void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag) 1096void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag,
1097 bool long_desc)
1094{ 1098{
1095 struct perf_pmu *pmu; 1099 struct perf_pmu *pmu;
1096 struct perf_pmu_alias *alias; 1100 struct perf_pmu_alias *alias;
@@ -1138,7 +1142,8 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag)
1138 if (!aliases[j].name) 1142 if (!aliases[j].name)
1139 goto out_enomem; 1143 goto out_enomem;
1140 1144
1141 aliases[j].desc = alias->desc; 1145 aliases[j].desc = long_desc ? alias->long_desc :
1146 alias->desc;
1142 j++; 1147 j++;
1143 } 1148 }
1144 if (pmu->selectable && 1149 if (pmu->selectable &&