# 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
