On 3/26/26 22:37, [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: Christian König <[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 \
