Skip to content

Commit

Permalink
perf record: Refine capture printout
Browse files Browse the repository at this point in the history
Print out the number of bytes captured, and the (estimated) number of
events the output file contains.

Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Ingo Molnar committed Jun 3, 2009
1 parent f2521b6 commit 021e9f4
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions Documentation/perf_counter/builtin-record.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ static unsigned int mmap_read_head(struct mmap_data *md)
static long events;
static struct timeval last_read, this_read;

static __u64 bytes_written;

static void mmap_read(struct mmap_data *md)
{
unsigned int head = mmap_read_head(md);
Expand Down Expand Up @@ -114,28 +116,34 @@ static void mmap_read(struct mmap_data *md)
buf = &data[old & md->mask];
size = md->mask + 1 - (old & md->mask);
old += size;

while (size) {
int ret = write(output, buf, size);
if (ret < 0) {
perror("failed to write");
exit(-1);
}

if (ret < 0)
die("failed to write");

size -= ret;
buf += ret;

bytes_written += ret;
}
}

buf = &data[old & md->mask];
size = head - old;
old += size;

while (size) {
int ret = write(output, buf, size);
if (ret < 0) {
perror("failed to write");
exit(-1);
}

if (ret < 0)
die("failed to write");

size -= ret;
buf += ret;

bytes_written += ret;
}

md->prev = old;
Expand Down Expand Up @@ -467,8 +475,14 @@ static int __cmd_record(int argc, const char **argv)
ret = poll(event_array, nr_poll, 100);
}


fprintf(stderr, "[ perf record: Captured and wrote %ld events. ]\n", events);
/*
* Approximate RIP event size: 24 bytes.
*/
fprintf(stderr,
"[ perf record: Captured and wrote %.3f MB %s (~%lld events) ]\n",
(double)bytes_written / 1024.0 / 1024.0,
output_name,
bytes_written / 24);

return 0;
}
Expand Down

0 comments on commit 021e9f4

Please sign in to comment.