diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-report.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 1e3ad22d53dc..3fc0d471b90b 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -665,6 +665,27 @@ static void dso__calc_col_width(struct dso *self) | |||
665 | self->slen_calculated = 1; | 665 | self->slen_calculated = 1; |
666 | } | 666 | } |
667 | 667 | ||
668 | static int thread__set_comm_adjust(struct thread *self, const char *comm) | ||
669 | { | ||
670 | int ret = thread__set_comm(self, comm); | ||
671 | |||
672 | if (ret) | ||
673 | return ret; | ||
674 | |||
675 | if (!col_width_list_str && !field_sep && | ||
676 | (!comm_list || strlist__has_entry(comm_list, comm))) { | ||
677 | unsigned int slen = strlen(comm); | ||
678 | |||
679 | if (slen > comms__col_width) { | ||
680 | comms__col_width = slen; | ||
681 | threads__col_width = slen + 6; | ||
682 | } | ||
683 | } | ||
684 | |||
685 | return 0; | ||
686 | } | ||
687 | |||
688 | |||
668 | static struct symbol * | 689 | static struct symbol * |
669 | resolve_symbol(struct thread *thread, struct map **mapp, | 690 | resolve_symbol(struct thread *thread, struct map **mapp, |
670 | struct dso **dsop, u64 *ipp) | 691 | struct dso **dsop, u64 *ipp) |
@@ -1056,7 +1077,7 @@ static void register_idle_thread(void) | |||
1056 | struct thread *thread = threads__findnew(0, &threads, &last_match); | 1077 | struct thread *thread = threads__findnew(0, &threads, &last_match); |
1057 | 1078 | ||
1058 | if (thread == NULL || | 1079 | if (thread == NULL || |
1059 | thread__set_comm(thread, "[idle]")) { | 1080 | thread__set_comm_adjust(thread, "[idle]")) { |
1060 | fprintf(stderr, "problem inserting idle task.\n"); | 1081 | fprintf(stderr, "problem inserting idle task.\n"); |
1061 | exit(-1); | 1082 | exit(-1); |
1062 | } | 1083 | } |
@@ -1226,7 +1247,7 @@ process_comm_event(event_t *event, unsigned long offset, unsigned long head) | |||
1226 | event->comm.comm, event->comm.pid); | 1247 | event->comm.comm, event->comm.pid); |
1227 | 1248 | ||
1228 | if (thread == NULL || | 1249 | if (thread == NULL || |
1229 | thread__set_comm(thread, event->comm.comm)) { | 1250 | thread__set_comm_adjust(thread, event->comm.comm)) { |
1230 | dump_printf("problem processing PERF_EVENT_COMM, skipping event.\n"); | 1251 | dump_printf("problem processing PERF_EVENT_COMM, skipping event.\n"); |
1231 | return -1; | 1252 | return -1; |
1232 | } | 1253 | } |