Skip to content

Commit

Permalink
perf util: Parse header_page to get proper long size
Browse files Browse the repository at this point in the history
The header_page file describes the format of the ring buffer page
which is used by ftrace (not perf).  And size of "commit" field (I
guess it's older name was 'size') represents the real size of long
type used for kernel.  So update the pevent's long size.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1370323231-14022-12-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Jul 12, 2013
1 parent 2b2efc7 commit 94b4d89
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion tools/perf/util/trace-event-read.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ static int read_ftrace_printk(struct pevent *pevent)
static int read_header_files(struct pevent *pevent)
{
unsigned long long size;
char *header_page;
char buf[BUFSIZ];
int ret = 0;

Expand All @@ -224,7 +225,26 @@ static int read_header_files(struct pevent *pevent)
}

size = read8(pevent);
skip(size);

header_page = malloc(size);
if (header_page == NULL)
return -1;

if (do_read(header_page, size) < 0) {
pr_debug("did not read header page");
free(header_page);
return -1;
}

if (!pevent_parse_header_page(pevent, header_page, size,
pevent_get_long_size(pevent))) {
/*
* The commit field in the page is of type long,
* use that instead, since it represents the kernel.
*/
pevent_set_long_size(pevent, pevent->header_page_size_size);
}
free(header_page);

if (do_read(buf, 13) < 0)
return -1;
Expand Down

0 comments on commit 94b4d89

Please sign in to comment.