aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r--tools/perf/util/session.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index c2f4ca917469..eac14ce0ae8d 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1297,8 +1297,10 @@ int __perf_session__process_events(struct perf_session *session,
1297 ui_progress__init(&prog, file_size, "Processing events..."); 1297 ui_progress__init(&prog, file_size, "Processing events...");
1298 1298
1299 mmap_size = MMAP_SIZE; 1299 mmap_size = MMAP_SIZE;
1300 if (mmap_size > file_size) 1300 if (mmap_size > file_size) {
1301 mmap_size = file_size; 1301 mmap_size = file_size;
1302 session->one_mmap = true;
1303 }
1302 1304
1303 memset(mmaps, 0, sizeof(mmaps)); 1305 memset(mmaps, 0, sizeof(mmaps));
1304 1306
@@ -1320,6 +1322,10 @@ remap:
1320 mmaps[map_idx] = buf; 1322 mmaps[map_idx] = buf;
1321 map_idx = (map_idx + 1) & (ARRAY_SIZE(mmaps) - 1); 1323 map_idx = (map_idx + 1) & (ARRAY_SIZE(mmaps) - 1);
1322 file_pos = file_offset + head; 1324 file_pos = file_offset + head;
1325 if (session->one_mmap) {
1326 session->one_mmap_addr = buf;
1327 session->one_mmap_offset = file_offset;
1328 }
1323 1329
1324more: 1330more:
1325 event = fetch_mmaped_event(session, head, mmap_size, buf); 1331 event = fetch_mmaped_event(session, head, mmap_size, buf);
@@ -1365,6 +1371,7 @@ out_err:
1365 ui_progress__finish(); 1371 ui_progress__finish();
1366 perf_session__warn_about_errors(session, tool); 1372 perf_session__warn_about_errors(session, tool);
1367 perf_session_free_sample_buffers(session); 1373 perf_session_free_sample_buffers(session);
1374 session->one_mmap = false;
1368 return err; 1375 return err;
1369} 1376}
1370 1377