|  | # SPDX-License-Identifier: GPL-2.0-only | 
|  | menu "GCOV-based kernel profiling" | 
|  |  | 
|  | config GCOV_KERNEL | 
|  | bool "Enable gcov-based kernel profiling" | 
|  | depends on DEBUG_FS | 
|  | depends on !ARCH_WANTS_NO_INSTR || CC_HAS_NO_PROFILE_FN_ATTR | 
|  | select CONSTRUCTORS | 
|  | 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 !COMPILE_TEST | 
|  | 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. | 
|  |  | 
|  | endmenu |