forked from mirrors/linux
		
	perf inject: Do not inject BUILD_ID record if MMAP2 has it
When PERF_RECORD_MISC_MMAP_BUILD_ID is set, the event has a build-id of the DSO already so no need to add it again. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20210524225051.1190486-2-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
		
							parent
							
								
									0c3f7b38d7
								
							
						
					
					
						commit
						f7fc0d1c91
					
				
					 1 changed files with 24 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -399,6 +399,18 @@ static int perf_event__repipe_mmap2(struct perf_tool *tool,
 | 
			
		|||
	err = perf_event__process_mmap2(tool, event, sample, machine);
 | 
			
		||||
	perf_event__repipe(tool, event, sample, machine);
 | 
			
		||||
 | 
			
		||||
	if (event->header.misc & PERF_RECORD_MISC_MMAP_BUILD_ID) {
 | 
			
		||||
		struct dso *dso;
 | 
			
		||||
 | 
			
		||||
		dso = findnew_dso(event->mmap2.pid, event->mmap2.tid,
 | 
			
		||||
				  event->mmap2.filename, NULL, machine);
 | 
			
		||||
		if (dso) {
 | 
			
		||||
			/* mark it not to inject build-id */
 | 
			
		||||
			dso->hit = 1;
 | 
			
		||||
		}
 | 
			
		||||
		dso__put(dso);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -440,6 +452,18 @@ static int perf_event__repipe_buildid_mmap2(struct perf_tool *tool,
 | 
			
		|||
	};
 | 
			
		||||
	struct dso *dso;
 | 
			
		||||
 | 
			
		||||
	if (event->header.misc & PERF_RECORD_MISC_MMAP_BUILD_ID) {
 | 
			
		||||
		/* cannot use dso_id since it'd have invalid info */
 | 
			
		||||
		dso = findnew_dso(event->mmap2.pid, event->mmap2.tid,
 | 
			
		||||
				  event->mmap2.filename, NULL, machine);
 | 
			
		||||
		if (dso) {
 | 
			
		||||
			/* mark it not to inject build-id */
 | 
			
		||||
			dso->hit = 1;
 | 
			
		||||
		}
 | 
			
		||||
		dso__put(dso);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dso = findnew_dso(event->mmap2.pid, event->mmap2.tid,
 | 
			
		||||
			  event->mmap2.filename, &dso_id, machine);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue