mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
perf session: Flag if the event stream is entirely in memory
Flag if the event stream is a file that has been mmapped in one go. This is useful, for example, if a tool needs to keep an event for later reference. If the new flag is set, a pointer to the event can be retained, otherwise the event must be copied. Signed-off-by: Adrian Hunter <[email protected]> Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Stephane Eranian <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
This commit is contained in:
parent
9c00a81b6a
commit
919d86d3a3
2 changed files with 11 additions and 1 deletions
|
|
@ -1297,8 +1297,10 @@ int __perf_session__process_events(struct perf_session *session,
|
|||
ui_progress__init(&prog, file_size, "Processing events...");
|
||||
|
||||
mmap_size = MMAP_SIZE;
|
||||
if (mmap_size > file_size)
|
||||
if (mmap_size > file_size) {
|
||||
mmap_size = file_size;
|
||||
session->one_mmap = true;
|
||||
}
|
||||
|
||||
memset(mmaps, 0, sizeof(mmaps));
|
||||
|
||||
|
|
@ -1320,6 +1322,10 @@ remap:
|
|||
mmaps[map_idx] = buf;
|
||||
map_idx = (map_idx + 1) & (ARRAY_SIZE(mmaps) - 1);
|
||||
file_pos = file_offset + head;
|
||||
if (session->one_mmap) {
|
||||
session->one_mmap_addr = buf;
|
||||
session->one_mmap_offset = file_offset;
|
||||
}
|
||||
|
||||
more:
|
||||
event = fetch_mmaped_event(session, head, mmap_size, buf);
|
||||
|
|
@ -1365,6 +1371,7 @@ out_err:
|
|||
ui_progress__finish();
|
||||
perf_session__warn_about_errors(session, tool);
|
||||
perf_session_free_sample_buffers(session);
|
||||
session->one_mmap = false;
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ struct perf_session {
|
|||
struct trace_event tevent;
|
||||
struct events_stats stats;
|
||||
bool repipe;
|
||||
bool one_mmap;
|
||||
void *one_mmap_addr;
|
||||
u64 one_mmap_offset;
|
||||
struct ordered_samples ordered_samples;
|
||||
struct perf_data_file *file;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue