| # 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 |
| 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 |