projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'torvalds/master' into perf/core
[linux-2.6-microblaze.git]
/
tools
/
perf
/
util
/
session.c
diff --git
a/tools/perf/util/session.c
b/tools/perf/util/session.c
index
106b3d6
..
86145dd
100644
(file)
--- a/
tools/perf/util/session.c
+++ b/
tools/perf/util/session.c
@@
-1723,6
+1723,7
@@
int perf_session__peek_event(struct perf_session *session, off_t file_offset,
if (event->header.size < hdr_sz || event->header.size > buf_sz)
return -1;
if (event->header.size < hdr_sz || event->header.size > buf_sz)
return -1;
+ buf += hdr_sz;
rest = event->header.size - hdr_sz;
if (readn(fd, buf, rest) != (ssize_t)rest)
rest = event->header.size - hdr_sz;
if (readn(fd, buf, rest) != (ssize_t)rest)
@@
-2155,6
+2156,7
@@
struct reader {
u64 data_size;
u64 data_offset;
reader_cb_t process;
u64 data_size;
u64 data_offset;
reader_cb_t process;
+ bool in_place_update;
};
static int
};
static int
@@
-2188,7
+2190,9
@@
reader__process_events(struct reader *rd, struct perf_session *session,
mmap_prot = PROT_READ;
mmap_flags = MAP_SHARED;
mmap_prot = PROT_READ;
mmap_flags = MAP_SHARED;
- if (session->header.needs_swap) {
+ if (rd->in_place_update) {
+ mmap_prot |= PROT_WRITE;
+ } else if (session->header.needs_swap) {
mmap_prot |= PROT_WRITE;
mmap_flags = MAP_PRIVATE;
}
mmap_prot |= PROT_WRITE;
mmap_flags = MAP_PRIVATE;
}
@@
-2274,6
+2278,7
@@
static int __perf_session__process_events(struct perf_session *session)
.data_size = session->header.data_size,
.data_offset = session->header.data_offset,
.process = process_simple,
.data_size = session->header.data_size,
.data_offset = session->header.data_offset,
.process = process_simple,
+ .in_place_update = session->data->in_place_update,
};
struct ordered_events *oe = &session->ordered_events;
struct perf_tool *tool = session->tool;
};
struct ordered_events *oe = &session->ordered_events;
struct perf_tool *tool = session->tool;