]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/gcov/Kconfig
gcov: add gcov profiling infrastructure
[karo-tx-linux.git] / kernel / gcov / Kconfig
diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig
new file mode 100644 (file)
index 0000000..aab593a
--- /dev/null
@@ -0,0 +1,48 @@
+menu "GCOV-based kernel profiling"
+
+config GCOV_KERNEL
+       bool "Enable gcov-based kernel profiling"
+       depends on DEBUG_FS && 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 GCOV_PROFILE_ALL
+       bool "Profile entire Kernel"
+       depends on GCOV_KERNEL
+       depends on S390 || X86_32
+       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