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