Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 169582
b: refs/heads/master
c: 4778d2e
h: refs/heads/master
v: v3
  • Loading branch information
Frederic Weisbecker authored and Ingo Molnar committed Nov 11, 2009
1 parent a9f079e commit 680e314
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 57f395a7eabb913d3605d7392be5bdb0837c9f3d
refs/heads/master: 4778d2e4f410c6eea32f594cb2be9590bcb28b84
8 changes: 2 additions & 6 deletions trunk/tools/perf/util/data_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ process_event(event_t *event, unsigned long offset, unsigned long head)
}
}

static int perf_header__read_build_ids(const struct perf_header *self,
int input, off_t file_size)
int perf_header__read_build_ids(const struct perf_header *self,
int input, off_t file_size)
{
off_t offset = self->data_offset + self->data_size;
struct build_id_event bev;
Expand Down Expand Up @@ -163,10 +163,6 @@ int mmap_dispatch_perf_file(struct perf_header **pheader,
if (curr_handler->sample_type_check(sample_type) < 0)
exit(-1);

if (perf_header__has_feat(header, HEADER_BUILD_ID) &&
perf_header__read_build_ids(header, input, input_stat.st_size))
pr_debug("failed to read buildids, continuing...\n");

if (load_kernel(NULL) < 0) {
perror("failed to load kernel symbols");
return EXIT_FAILURE;
Expand Down
2 changes: 2 additions & 0 deletions trunk/tools/perf/util/data_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,7 @@ int mmap_dispatch_perf_file(struct perf_header **pheader,
int full_paths,
int *cwdlen,
char **cwd);
int perf_header__read_build_ids(const struct perf_header *self,
int input, off_t file_size);

#endif
14 changes: 12 additions & 2 deletions trunk/tools/perf/util/header.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include "../perf.h"
#include "trace-event.h"
#include "symbol.h"
#include "data_map.h"
#include "debug.h"

/*
* Create new perf.data header attribute:
Expand Down Expand Up @@ -322,6 +324,14 @@ static void perf_header__adds_read(struct perf_header *self, int fd)
trace_report(fd);
lseek(fd, trace_sec.offset + trace_sec.size, SEEK_SET);
}

if (perf_header__has_feat(self, HEADER_BUILD_ID)) {
struct stat input_stat;

fstat(fd, &input_stat);
if (perf_header__read_build_ids(self, fd, input_stat.st_size))
pr_debug("failed to read buildids, continuing...\n");
}
};

struct perf_header *perf_header__read(int fd)
Expand Down Expand Up @@ -382,14 +392,14 @@ struct perf_header *perf_header__read(int fd)

memcpy(&self->adds_features, &f_header.adds_features, sizeof(f_header.adds_features));

perf_header__adds_read(self, fd);

self->event_offset = f_header.event_types.offset;
self->event_size = f_header.event_types.size;

self->data_offset = f_header.data.offset;
self->data_size = f_header.data.size;

perf_header__adds_read(self, fd);

lseek(fd, self->data_offset, SEEK_SET);

self->frozen = 1;
Expand Down

0 comments on commit 680e314

Please sign in to comment.