aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/perf_counter/builtin-report.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/Documentation/perf_counter/builtin-report.c b/Documentation/perf_counter/builtin-report.c
index 4b5ccc5bd0e6..2d4e4cc655a3 100644
--- a/Documentation/perf_counter/builtin-report.c
+++ b/Documentation/perf_counter/builtin-report.c
@@ -645,7 +645,7 @@ static int __cmd_report(void)
645 char *buf; 645 char *buf;
646 event_t *event; 646 event_t *event;
647 int ret, rc = EXIT_FAILURE; 647 int ret, rc = EXIT_FAILURE;
648 unsigned long total = 0, total_mmap = 0, total_comm = 0, total_unknown; 648 unsigned long total = 0, total_mmap = 0, total_comm = 0, total_unknown = 0;
649 649
650 input = open(input_name, O_RDONLY); 650 input = open(input_name, O_RDONLY);
651 if (input < 0) { 651 if (input < 0) {
@@ -699,8 +699,6 @@ more:
699 goto done; 699 goto done;
700 } 700 }
701 701
702 head += event->header.size;
703
704 if (event->header.misc & PERF_EVENT_MISC_OVERFLOW) { 702 if (event->header.misc & PERF_EVENT_MISC_OVERFLOW) {
705 char level; 703 char level;
706 int show = 0; 704 int show = 0;
@@ -709,7 +707,9 @@ more:
709 uint64_t ip = event->ip.ip; 707 uint64_t ip = event->ip.ip;
710 708
711 if (dump_trace) { 709 if (dump_trace) {
712 fprintf(stderr, "PERF_EVENT (IP, %d): %d: %p\n", 710 fprintf(stderr, "%p [%p]: PERF_EVENT (IP, %d): %d: %p\n",
711 (void *)(offset + head),
712 (void *)(long)(event->header.size),
713 event->header.misc, 713 event->header.misc,
714 event->ip.pid, 714 event->ip.pid,
715 (void *)event->ip.ip); 715 (void *)event->ip.ip);
@@ -753,7 +753,9 @@ more:
753 struct map *map = map__new(&event->mmap); 753 struct map *map = map__new(&event->mmap);
754 754
755 if (dump_trace) { 755 if (dump_trace) {
756 fprintf(stderr, "PERF_EVENT_MMAP: [%p(%p) @ %p]: %s\n", 756 fprintf(stderr, "%p [%p]: PERF_EVENT_MMAP: [%p(%p) @ %p]: %s\n",
757 (void *)(offset + head),
758 (void *)(long)(event->header.size),
757 (void *)event->mmap.start, 759 (void *)event->mmap.start,
758 (void *)event->mmap.len, 760 (void *)event->mmap.len,
759 (void *)event->mmap.pgoff, 761 (void *)event->mmap.pgoff,
@@ -771,7 +773,9 @@ more:
771 struct thread *thread = threads__findnew(event->comm.pid); 773 struct thread *thread = threads__findnew(event->comm.pid);
772 774
773 if (dump_trace) { 775 if (dump_trace) {
774 fprintf(stderr, "PERF_EVENT_COMM: %s:%d\n", 776 fprintf(stderr, "%p [%p]: PERF_EVENT_COMM: %s:%d\n",
777 (void *)(offset + head),
778 (void *)(long)(event->header.size),
775 event->comm.comm, event->comm.pid); 779 event->comm.comm, event->comm.pid);
776 } 780 }
777 if (thread == NULL || 781 if (thread == NULL ||
@@ -783,12 +787,16 @@ more:
783 break; 787 break;
784 } 788 }
785 default: { 789 default: {
786 fprintf(stderr, "skipping unknown header type: %d\n", 790 fprintf(stderr, "%p [%p]: skipping unknown header type: %d\n",
791 (void *)(offset + head),
792 (void *)(long)(event->header.size),
787 event->header.type); 793 event->header.type);
788 total_unknown++; 794 total_unknown++;
789 } 795 }
790 } 796 }
791 797
798 head += event->header.size;
799
792 if (offset + head < stat.st_size) 800 if (offset + head < stat.st_size)
793 goto more; 801 goto more;
794 802