# 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 
 |