On Thu, Mar 26, 2026 at 5:44 PM <[email protected]> wrote:
>
> From: Vitaly Prosyak <[email protected]>
>
> Add a Kconfig option to enable GCOV code coverage profiling for the
> amdgpu driver, following the established upstream pattern used by
> CONFIG_GCOV_PROFILE_FTRACE (kernel/trace), CONFIG_GCOV_PROFILE_RDS
> (net/rds), and CONFIG_GCOV_PROFILE_URING (io_uring).
>
> This allows CI systems to enable amdgpu code coverage entirely via
> .config (e.g., scripts/config --enable GCOV_PROFILE_AMDGPU) without
> manually editing the amdgpu Makefile. The option depends on both
> DRM_AMDGPU and GCOV_KERNEL, defaults to n, and is therefore never
> enabled in production or distro builds.
>
> Cc: Christian König <[email protected]>
> Cc: Alex Deucher <[email protected]>
> Signed-off-by: Vitaly Prosyak <[email protected]>

Acked-by: Alex Deucher <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/Kconfig  | 17 +++++++++++++++++
>  drivers/gpu/drm/amd/amdgpu/Makefile |  4 ++++
>  2 files changed, 21 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig 
> b/drivers/gpu/drm/amd/amdgpu/Kconfig
> index 7f515be5185d..7fb0b93bc1ca 100644
> --- a/drivers/gpu/drm/amd/amdgpu/Kconfig
> +++ b/drivers/gpu/drm/amd/amdgpu/Kconfig
> @@ -103,6 +103,23 @@ config DRM_AMDGPU_WERROR
>           Add -Werror to the build flags for amdgpu.ko.
>           Only enable this if you are warning code for amdgpu.ko.
>
> +
> +config GCOV_PROFILE_AMDGPU
> +       bool "Enable GCOV profiling on amdgpu"
> +       depends on DRM_AMDGPU
> +       depends on GCOV_KERNEL
> +       default n
> +       help
> +         Enable GCOV profiling on the amdgpu driver for checking which
> +         functions/lines are executed during testing. This adds compiler
> +         instrumentation flags to all amdgpu source files, producing
> +         .gcda/.gcno coverage data accessible via debugfs.
> +
> +         This increases the amdgpu module size by ~50% and adds ~2-5%
> +         runtime overhead on GPU submission paths.
> +
> +         If unsure, say N.
> +
>  source "drivers/gpu/drm/amd/acp/Kconfig"
>  source "drivers/gpu/drm/amd/display/Kconfig"
>  source "drivers/gpu/drm/amd/amdkfd/Kconfig"
> diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile 
> b/drivers/gpu/drm/amd/amdgpu/Makefile
> index 6a7e9bfec59e..db66c6372199 100644
> --- a/drivers/gpu/drm/amd/amdgpu/Makefile
> +++ b/drivers/gpu/drm/amd/amdgpu/Makefile
> @@ -27,6 +27,10 @@ FULL_AMD_PATH=$(src)/..
>  DISPLAY_FOLDER_NAME=display
>  FULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME)
>
> +ifdef CONFIG_GCOV_PROFILE_AMDGPU
> +GCOV_PROFILE := y
> +endif
> +
>  ccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \
>         -I$(FULL_AMD_PATH)/include \
>         -I$(FULL_AMD_PATH)/amdgpu \
> --
> 2.43.0
>

Reply via email to