 957e3facd1
			
		
	
	
	957e3facd1
	
	
	
		
			
			Following the suggestions from Andrew Morton and Stephen Rothwell, Dont expand the ARCH list in kernel/gcov/Kconfig. Instead, define a ARCH_HAS_GCOV_PROFILE_ALL bool which architectures can enable. set ARCH_HAS_GCOV_PROFILE_ALL on Architectures where it was previously allowed + ARM64 which I tested. Signed-off-by: Riku Voipio <riku.voipio@linaro.org> Cc: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| menu "GCOV-based kernel profiling"
 | |
| 
 | |
| config GCOV_KERNEL
 | |
| 	bool "Enable gcov-based kernel profiling"
 | |
| 	depends on DEBUG_FS
 | |
| 	select CONSTRUCTORS if !UML
 | |
| 	default n
 | |
| 	---help---
 | |
| 	This option enables gcov-based code profiling (e.g. for code coverage
 | |
| 	measurements).
 | |
| 
 | |
| 	If unsure, say N.
 | |
| 
 | |
| 	Additionally specify CONFIG_GCOV_PROFILE_ALL=y to get profiling data
 | |
| 	for the entire kernel. To enable profiling for specific files or
 | |
| 	directories, add a line similar to the following to the respective
 | |
| 	Makefile:
 | |
| 
 | |
| 	For a single file (e.g. main.o):
 | |
| 	        GCOV_PROFILE_main.o := y
 | |
| 
 | |
| 	For all files in one directory:
 | |
| 	        GCOV_PROFILE := y
 | |
| 
 | |
| 	To exclude files from being profiled even when CONFIG_GCOV_PROFILE_ALL
 | |
| 	is specified, use:
 | |
| 
 | |
| 	        GCOV_PROFILE_main.o := n
 | |
| 	and:
 | |
| 	        GCOV_PROFILE := n
 | |
| 
 | |
| 	Note that the debugfs filesystem has to be mounted to access
 | |
| 	profiling data.
 | |
| 
 | |
| config ARCH_HAS_GCOV_PROFILE_ALL
 | |
| 	def_bool n
 | |
| 
 | |
| config GCOV_PROFILE_ALL
 | |
| 	bool "Profile entire Kernel"
 | |
| 	depends on GCOV_KERNEL
 | |
| 	depends on ARCH_HAS_GCOV_PROFILE_ALL
 | |
| 	default n
 | |
| 	---help---
 | |
| 	This options activates profiling for the entire kernel.
 | |
| 
 | |
| 	If unsure, say N.
 | |
| 
 | |
| 	Note that a kernel compiled with profiling flags will be significantly
 | |
| 	larger and run slower. Also be sure to exclude files from profiling
 | |
| 	which are not linked to the kernel image to prevent linker errors.
 | |
| 
 | |
| choice
 | |
| 	prompt "Specify GCOV format"
 | |
| 	depends on GCOV_KERNEL
 | |
| 	default GCOV_FORMAT_AUTODETECT
 | |
| 	---help---
 | |
| 	The gcov format is usually determined by the GCC version, but there are
 | |
| 	exceptions where format changes are integrated in lower-version GCCs.
 | |
| 	In such a case use this option to adjust the format used in the kernel
 | |
| 	accordingly.
 | |
| 
 | |
| 	If unsure, choose "Autodetect".
 | |
| 
 | |
| config GCOV_FORMAT_AUTODETECT
 | |
| 	bool "Autodetect"
 | |
| 	---help---
 | |
| 	Select this option to use the format that corresponds to your GCC
 | |
| 	version.
 | |
| 
 | |
| config GCOV_FORMAT_3_4
 | |
| 	bool "GCC 3.4 format"
 | |
| 	---help---
 | |
| 	Select this option to use the format defined by GCC 3.4.
 | |
| 
 | |
| config GCOV_FORMAT_4_7
 | |
| 	bool "GCC 4.7 format"
 | |
| 	---help---
 | |
| 	Select this option to use the format defined by GCC 4.7.
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| endmenu
 |