diff options
| -rw-r--r-- | tools/perf/util/session.c | 25 | ||||
| -rw-r--r-- | tools/perf/util/session.h | 1 | 
2 files changed, 14 insertions, 12 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index d5fb60760ba..aa5e58255cb 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -128,15 +128,6 @@ struct perf_session *perf_session__new(const char *filename, int mode,  		goto out;  	memcpy(self->filename, filename, len); -	/* -	 * On 64bit we can mmap the data file in one go. No need for tiny mmap -	 * slices. On 32bit we use 32MB. -	 */ -#if BITS_PER_LONG == 64 -	self->mmap_window = ULLONG_MAX; -#else -	self->mmap_window = 32 * 1024 * 1024ULL; -#endif  	self->machines = RB_ROOT;  	self->repipe = repipe;  	INIT_LIST_HEAD(&self->ordered_samples.samples); @@ -1386,6 +1377,18 @@ fetch_mmaped_event(struct perf_session *session,  	return event;  } +/* + * On 64bit we can mmap the data file in one go. No need for tiny mmap + * slices. On 32bit we use 32MB. + */ +#if BITS_PER_LONG == 64 +#define MMAP_SIZE ULLONG_MAX +#define NUM_MMAPS 1 +#else +#define MMAP_SIZE (32 * 1024 * 1024ULL) +#define NUM_MMAPS 128 +#endif +  int __perf_session__process_events(struct perf_session *session,  				   u64 data_offset, u64 data_size,  				   u64 file_size, struct perf_tool *tool) @@ -1393,7 +1396,7 @@ int __perf_session__process_events(struct perf_session *session,  	u64 head, page_offset, file_offset, file_pos, progress_next;  	int err, mmap_prot, mmap_flags, map_idx = 0;  	size_t	mmap_size; -	char *buf, *mmaps[8]; +	char *buf, *mmaps[NUM_MMAPS];  	union perf_event *event;  	uint32_t size; @@ -1408,7 +1411,7 @@ int __perf_session__process_events(struct perf_session *session,  	progress_next = file_size / 16; -	mmap_size = session->mmap_window; +	mmap_size = MMAP_SIZE;  	if (mmap_size > file_size)  		mmap_size = file_size; diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index cea133a6bdf..c18fabdff19 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -30,7 +30,6 @@ struct ordered_samples {  struct perf_session {  	struct perf_header	header;  	unsigned long		size; -	unsigned long		mmap_window;  	struct machine		host_machine;  	struct rb_root		machines;  	struct perf_evlist	*evlist;  |