blob: 04f4ebdc3cf5910b17097e86f42b56091144d917 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -07002menu "GCOV-based kernel profiling"
3
4config GCOV_KERNEL
5 bool "Enable gcov-based kernel profiling"
Josh Triplettd2c32252011-06-15 15:08:47 -07006 depends on DEBUG_FS
Nick Desaulniers51c2ee62021-06-21 16:18:22 -07007 depends on !ARCH_WANTS_NO_INSTR || CC_HAS_NO_PROFILE_FN_ATTR
Johannes Berg55b6f7632021-02-04 18:32:28 -08008 select CONSTRUCTORS
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -07009 default n
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090010 help
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070011 This option enables gcov-based code profiling (e.g. for code coverage
12 measurements).
13
14 If unsure, say N.
15
16 Additionally specify CONFIG_GCOV_PROFILE_ALL=y to get profiling data
17 for the entire kernel. To enable profiling for specific files or
18 directories, add a line similar to the following to the respective
19 Makefile:
20
21 For a single file (e.g. main.o):
22 GCOV_PROFILE_main.o := y
23
24 For all files in one directory:
25 GCOV_PROFILE := y
26
27 To exclude files from being profiled even when CONFIG_GCOV_PROFILE_ALL
28 is specified, use:
29
30 GCOV_PROFILE_main.o := n
31 and:
32 GCOV_PROFILE := n
33
34 Note that the debugfs filesystem has to be mounted to access
35 profiling data.
36
Riku Voipio957e3fa2014-12-12 16:57:44 -080037config ARCH_HAS_GCOV_PROFILE_ALL
38 def_bool n
39
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070040config GCOV_PROFILE_ALL
41 bool "Profile entire Kernel"
Arnd Bergmanncc622422016-04-25 17:35:29 +020042 depends on !COMPILE_TEST
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070043 depends on GCOV_KERNEL
Riku Voipio957e3fa2014-12-12 16:57:44 -080044 depends on ARCH_HAS_GCOV_PROFILE_ALL
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070045 default n
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090046 help
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070047 This options activates profiling for the entire kernel.
48
49 If unsure, say N.
50
51 Note that a kernel compiled with profiling flags will be significantly
52 larger and run slower. Also be sure to exclude files from profiling
53 which are not linked to the kernel image to prevent linker errors.
54
Peter Oberparleiter2521f2c2009-06-17 16:28:08 -070055endmenu