perf tools: Stop reading the kallsyms data from perf.data

As it is not used anymore, since 'perf script' switched to asking
libtraceevent to use tools/perf's symbol resolution routines.

Acked-by: David Ahern <dsahern@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/n/tip-4ilhofz4b7o8yokvutjt9yzz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2015-07-22 16:48:16 -03:00
parent ccb3a8294a
commit 4263cece22
2 changed files with 13 additions and 45 deletions

View File

@ -135,36 +135,6 @@ void event_format__print(struct event_format *event,
return event_format__fprintf(event, cpu, data, size, stdout); return event_format__fprintf(event, cpu, data, size, stdout);
} }
void parse_proc_kallsyms(struct pevent *pevent,
char *file, unsigned int size __maybe_unused)
{
unsigned long long addr;
char *func;
char *line;
char *next = NULL;
char *addr_str;
char *mod;
char *fmt = NULL;
line = strtok_r(file, "\n", &next);
while (line) {
mod = NULL;
addr_str = strtok_r(line, " ", &fmt);
addr = strtoull(addr_str, NULL, 16);
/* skip character */
strtok_r(NULL, " ", &fmt);
func = strtok_r(NULL, "\t", &fmt);
mod = strtok_r(NULL, "]", &fmt);
/* truncate the extra '[' */
if (mod)
mod = mod + 1;
pevent_register_function(pevent, func, addr, mod);
line = strtok_r(NULL, "\n", &next);
}
}
void parse_ftrace_printk(struct pevent *pevent, void parse_ftrace_printk(struct pevent *pevent,
char *file, unsigned int size __maybe_unused) char *file, unsigned int size __maybe_unused)
{ {

View File

@ -162,25 +162,23 @@ static char *read_string(void)
static int read_proc_kallsyms(struct pevent *pevent) static int read_proc_kallsyms(struct pevent *pevent)
{ {
unsigned int size; unsigned int size;
char *buf;
size = read4(pevent); size = read4(pevent);
if (!size) if (!size)
return 0; return 0;
/*
buf = malloc(size + 1); * Just skip it, now that we configure libtraceevent to use the
if (buf == NULL) * tools/perf/ symbol resolver.
return -1; *
* We need to skip it so that we can continue parsing old perf.data
if (do_read(buf, size) < 0) { * files, that contains this /proc/kallsyms payload.
free(buf); *
return -1; * Newer perf.data files will have just the 4-bytes zeros "kallsyms
} * payload", so that older tools can continue reading it and interpret
buf[size] = '\0'; * it as "no kallsyms payload is present".
*/
parse_proc_kallsyms(pevent, buf, size); lseek(input_fd, size, SEEK_CUR);
trace_data_size += size;
free(buf);
return 0; return 0;
} }