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
e59242c
..
86145dd
100644
(file)
--- a/
tools/perf/util/session.c
+++ b/
tools/perf/util/session.c
@@
-2156,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
@@
-2189,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;
}
@@
-2275,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;