forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
# 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 !CC_IS_CLANG || CLANG_VERSION >= 110000 |
|
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
|
|
|