perf report: Output non-zero offset for decompressed records
Print offset of PERF_RECORD_COMPRESSED record instead of zero for decompressed records in raw trace dump (-D option of perf-report): 0x17cf08 [0x28]: event: 9 instead of: 0 [0x28]: event: 9 The fix is not critical, because currently file_pos for compressed events is used in perf_session__process_event only to show offsets in the raw dump. This patch was separated from patchset: https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@linux.intel.com/ and was already rewieved. Reviewed-by: Riccardo Mancini <rickyman7@gmail.com> Signed-off-by: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com> Tested-by: Riccardo Mancini <rickyman7@gmail.com> Acked-by: Andi Kleen <ak@linux.intel.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Antonov <alexander.antonov@linux.intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexei Budankov <abudankov@huawei.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20210929091445.18274-1-alexey.v.bayduraev@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
		
				
					committed by
					
						 Arnaldo Carvalho de Melo
						Arnaldo Carvalho de Melo
					
				
			
			
				
	
			
			
			
						parent
						
							26d6574109
						
					
				
				
					commit
					8e820f9623
				
			| @@ -2116,7 +2116,7 @@ fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap) | ||||
| static int __perf_session__process_decomp_events(struct perf_session *session) | ||||
| { | ||||
| 	s64 skip; | ||||
| 	u64 size, file_pos = 0; | ||||
| 	u64 size; | ||||
| 	struct decomp *decomp = session->decomp_last; | ||||
| 
 | ||||
| 	if (!decomp) | ||||
| @@ -2132,7 +2132,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session) | ||||
| 		size = event->header.size; | ||||
| 
 | ||||
| 		if (size < sizeof(struct perf_event_header) || | ||||
| 		    (skip = perf_session__process_event(session, event, file_pos)) < 0) { | ||||
| 		    (skip = perf_session__process_event(session, event, decomp->file_pos)) < 0) { | ||||
| 			pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n", | ||||
| 				decomp->file_pos + decomp->head, event->header.size, event->header.type); | ||||
| 			return -EINVAL; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user