# 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 if !UML
	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
