diff options
Diffstat (limited to 'tools/perf/util/machine.c')
| -rw-r--r-- | tools/perf/util/machine.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index d77ba869d7e..b2ecad6ec46 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c @@ -955,6 +955,7 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event  	u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;  	struct thread *thread;  	struct map *map; +	enum map_type type;  	int ret = 0;  	if (dump_trace) @@ -971,10 +972,17 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event  	thread = machine__findnew_thread(machine, event->mmap.pid);  	if (thread == NULL)  		goto out_problem; + +	if (event->header.misc & PERF_RECORD_MISC_MMAP_DATA) +		type = MAP__VARIABLE; +	else +		type = MAP__FUNCTION; +  	map = map__new(&machine->user_dsos, event->mmap.start,  			event->mmap.len, event->mmap.pgoff,  			event->mmap.pid, event->mmap.filename, -			MAP__FUNCTION); +			type); +  	if (map == NULL)  		goto out_problem; |