aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-script.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-script.c')
-rw-r--r--tools/perf/builtin-script.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 5e2f9d20a296..c691214d820f 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -617,9 +617,24 @@ struct perf_script {
617 bool allocated; 617 bool allocated;
618 struct cpu_map *cpus; 618 struct cpu_map *cpus;
619 struct thread_map *threads; 619 struct thread_map *threads;
620 int name_width;
620}; 621};
621 622
622static void process_event(struct perf_script *script __maybe_unused, union perf_event *event, 623static int perf_evlist__max_name_len(struct perf_evlist *evlist)
624{
625 struct perf_evsel *evsel;
626 int max = 0;
627
628 evlist__for_each(evlist, evsel) {
629 int len = strlen(perf_evsel__name(evsel));
630
631 max = MAX(len, max);
632 }
633
634 return max;
635}
636
637static void process_event(struct perf_script *script, union perf_event *event,
623 struct perf_sample *sample, struct perf_evsel *evsel, 638 struct perf_sample *sample, struct perf_evsel *evsel,
624 struct addr_location *al) 639 struct addr_location *al)
625{ 640{
@@ -636,7 +651,12 @@ static void process_event(struct perf_script *script __maybe_unused, union perf_
636 651
637 if (PRINT_FIELD(EVNAME)) { 652 if (PRINT_FIELD(EVNAME)) {
638 const char *evname = perf_evsel__name(evsel); 653 const char *evname = perf_evsel__name(evsel);
639 printf("%s: ", evname ? evname : "[unknown]"); 654
655 if (!script->name_width)
656 script->name_width = perf_evlist__max_name_len(script->session->evlist);
657
658 printf("%*s: ", script->name_width,
659 evname ? evname : "[unknown]");
640 } 660 }
641 661
642 if (print_flags) 662 if (print_flags)