perf tools: Add time out to force stop proc map processing
System wide sampling like 'perf top' or 'perf record -a' read all threads /proc/xxx/maps before sampling. If there are any threads which generating a keeping growing huge maps, perf will do infinite loop during synthesizing. Nothing will be sampled. This patch fixes this issue by adding per-thread timeout to force stop this kind of endless proc map processing. PERF_RECORD_MISC_PROC_MAP_PARSE_TIME_OUT is introduced to indicate that the mmap record are truncated by time out. User will get warning notification when truncated mmap records are detected. Reported-by: Ying Huang <ying.huang@intel.com> Signed-off-by: Kan Liang <kan.liang@intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Ying Huang <ying.huang@intel.com> Link: http://lkml.kernel.org/r/1434549071-25611-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
		
					parent
					
						
							
								c05676c062
							
						
					
				
			
			
				commit
				
					
						930e6fcd2b
					
				
			
		
					 4 changed files with 34 additions and 0 deletions
				
			
		|  | @ -565,6 +565,10 @@ struct perf_event_mmap_page { | |||
| #define PERF_RECORD_MISC_GUEST_KERNEL		(4 << 0) | ||||
| #define PERF_RECORD_MISC_GUEST_USER		(5 << 0) | ||||
| 
 | ||||
| /*
 | ||||
|  * Indicates that /proc/PID/maps parsing are truncated by time out. | ||||
|  */ | ||||
| #define PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT	(1 << 12) | ||||
| /*
 | ||||
|  * PERF_RECORD_MISC_MMAP_DATA and PERF_RECORD_MISC_COMM_EXEC are used on | ||||
|  * different events so can reuse the same bit position. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Kan Liang
				Kan Liang