|
|
@@ -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;
|
|
|
}
|
|
|
|