On 10/07/26 1:31 pm, Venkat Rao Bagalkote wrote:
On 10/07/26 10:45 am, Venkat Rao Bagalkote wrote:
On 09/07/26 11:53 pm, Randy Dunlap wrote:
On 7/7/26 10:05 PM, Venkat Rao Bagalkote wrote:
Greetings!!!
linux-next is failing to build for me with:
ERROR: modpost: too long symbol
"amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers"
[drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/amdgpu_dm_plane_test.ko]
make[2]: *** [scripts/Makefile.modpost:147: Module.symvers] Error 1
make[1]: *** [Makefile:2165: modpost] Error 2
make: *** [Makefile:248: __sub-make] Error 2
The failure occurs during modpost while building:
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.ko
This appears to be a regression in the AMD display KUnit test code.
Could someone please take a look?
If you happen to fix this, please add below tag.
Reported-by: Venkat Rao Bagalkote <[email protected]>
Hi,
I cannot reproduce this when using gcc v15.3.0.
Which compiler & version are you using?
Hello,
I am seeing this across below mentioned gcc version.
gcc (GCC) 14.3.1 20251022 (Red Hat 14.3.1-4)
gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11)
gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)
Attched is the .config file.
Git bisect is pointing to below commit as first bad commit.
# git bisect bad
2b147895be109e0860269a7a72c697cdf049a885 is the first bad commit
commit 2b147895be109e0860269a7a72c697cdf049a885 (HEAD)
Author: Bhawanpreet Lakha <[email protected]>
Date: Fri Jun 12 16:12:21 2026 -0400
drm/amd/display: Add kunit tests for amdgpu_dm_plane
Add kunit tests for some functions in amdgpu_dm_plane.
Assisted-by: Copilot:Claude-Opus-4.8
Reviewed-by: Alex Hung <[email protected]>
Signed-off-by: Bhawanpreet Lakha <[email protected]>
Signed-off-by: George Zhang <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 115
++++++-----
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 51 +++++
drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile | 2 +
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c |
1204
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 1325 insertions(+), 47 deletions(-)
create mode 100644
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
Hi,
I bisected this build failure and found that it is caused by the exported
KUnit symbols:
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers()
amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers()
modpost rejects the resulting exported symbol name with:
ERROR: modpost: too long symbol
"amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers"
I tested the following approach locally, which simply shortens the helper
names to:
amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers()
amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers()
and updated all corresponding users and KUnit references. This resolves the
build issue for me and does not appear to introduce any functional changes.
Does this look like an acceptable fix?
If so, I'll prepare and send a formal patch with proper changelog.
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 1b564cfe2120..b58225338bc4 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -328,7 +328,7 @@ STATIC_IFN_KUNIT int
amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
}
EXPORT_IF_KUNIT(amdgpu_dm_plane_validate_dcc);
-STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct
amdgpu_device *adev,
+STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(struct amdgpu_device *adev,
const struct amdgpu_framebuffer *afb,
const enum surface_pixel_format format,
const enum dc_rotation_angle rotation,
@@ -378,9 +378,9 @@ STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(s
return ret;
}
-EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers);
+EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers);
-STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct
amdgpu_device *adev,
+STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(struct amdgpu_device *adev,
const struct amdgpu_framebuffer *afb,
const enum surface_pixel_format format,
const enum dc_rotation_angle rotation,
@@ -419,7 +419,7 @@ STATIC_IFN_KUNIT int
amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(
return ret;
}
-EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers);
+EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers);
static void amdgpu_dm_plane_add_gfx10_1_modifiers(const struct
amdgpu_device *adev,
uint64_t **mods,
@@ -927,14 +927,14 @@ int
amdgpu_dm_plane_fill_plane_buffer_attributes(struct amdgpu_device *adev,
}
if (adev->family == AMDGPU_FAMILY_GC_12_0_0) {
- ret =
amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(adev, afb,
format,
+ ret =
amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(adev, afb, format,
rotation, plane_size,
tiling_info, dcc,
address);
if (ret)
return ret;
} else if (adev->family >= AMDGPU_FAMILY_AI) {
- ret =
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(adev, afb, format,
+ ret =
amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(adev, afb, format,
rotation, plane_size,
tiling_info, dcc,
address);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
index 911fb2d73e22..55c33e051aee 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
@@ -92,7 +92,7 @@ int amdgpu_dm_plane_get_plane_modifiers(struct
amdgpu_device *adev,
int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
const struct dc_plane_cap *plane_cap,
uint32_t *formats, int max_formats);
-int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct
amdgpu_device *adev,
+int amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(struct amdgpu_device
*adev,
const struct amdgpu_framebuffer *afb,
const enum surface_pixel_format format,
const enum dc_rotation_angle rotation,
@@ -100,7 +100,7 @@ int
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_devi
struct dc_tiling_info *tiling_info,
struct dc_plane_dcc_param *dcc,
struct dc_plane_address *address);
-int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct
amdgpu_device *adev,
+int amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(struct
amdgpu_device *adev,
const struct amdgpu_framebuffer *afb,
const enum surface_pixel_format format,
const enum dc_rotation_angle rotation,
diff --git
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
index 46c9af432e37..fc84f5a08596 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
@@ -579,7 +579,7 @@ static void
dm_test_fill_gfx12_plane_attributes_from_modifiers(struct kunit *tes
plane_size.surface_size.height = 1080;
KUNIT_EXPECT_EQ(test,
- amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(
+ amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(
adev, afb, SURFACE_PIXEL_FORMAT_GRPH_ARGB8888,
ROTATION_ANGLE_0, &plane_size, &tiling_info,
&dcc, &address),
0);
@@ -623,7 +623,7 @@ static void
dm_test_fill_gfx9_plane_attributes_from_modifiers(struct kunit *test
afb->base.modifier = DRM_FORMAT_MOD_LINEAR;
KUNIT_EXPECT_EQ(test,
- amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(
+ amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(
adev, afb, SURFACE_PIXEL_FORMAT_GRPH_ARGB8888,
ROTATION_ANGLE_0, &plane_size, &tiling_info,
&dcc, &address),
0);
@@ -1187,9 +1187,9 @@ static struct kunit_case
amdgpu_dm_plane_test_cases[] = {
KUNIT_CASE(dm_test_get_cursor_position),
/* amdgpu_dm_plane_format_mod_supported() */
KUNIT_CASE(dm_test_format_mod_supported),
- /* amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers() */
+ /* amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers() */
KUNIT_CASE(dm_test_fill_gfx12_plane_attributes_from_modifiers),
- /* amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers() */
+ /* amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers() */
KUNIT_CASE(dm_test_fill_gfx9_plane_attributes_from_modifiers),
/* amdgpu_dm_plane_helper_check_state() */
KUNIT_CASE(dm_test_helper_check_state_viewport_reject),
(END)
Regards,
Venkat.
# git bisect log
git bisect start
# status: waiting for both good and bad commits
# bad: [5c73cd9f0819c1c44e373e3dabb68318b1de1a12] Add linux-next
specific files for 20260707
git bisect bad 5c73cd9f0819c1c44e373e3dabb68318b1de1a12
# good: [8cdeaa50eae8dad34885515f62559ee83e7e8dda] Linux 7.2-rc2
git bisect good 8cdeaa50eae8dad34885515f62559ee83e7e8dda
# good: [aac7863446a8e0cf380f4a5087bc3cdc9b8c14c0] Merge branch
'master' of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect good aac7863446a8e0cf380f4a5087bc3cdc9b8c14c0
# bad: [fe28d02cde5372d7f71cc6132ccdef37a98ac750] Merge branch
'for-linux-next' of https://gitlab.freedesktop.org/drm/i915/kernel.git
git bisect bad fe28d02cde5372d7f71cc6132ccdef37a98ac750
# good: [0639cb26862afe4e35a689a8b5df8b9117c19f52] Merge tag
'drm-xe-next-2026-07-03' of
https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
git bisect good 0639cb26862afe4e35a689a8b5df8b9117c19f52
# good: [4e9c8a9c322427055c4892183d266ba391af1bc8] drm/amdkfd: drop
struct kfd_signal_page wrapper
git bisect good 4e9c8a9c322427055c4892183d266ba391af1bc8
# bad: [ea33aa1545535fdb4c1a208b7bfd63314c3a4aa2] drm/amdgpu: Drop
legacy ACA log RAS error data code
git bisect bad ea33aa1545535fdb4c1a208b7bfd63314c3a4aa2
# good: [a17e79d01f22182a9fcbe79fcbe2ad1477d43e0f] drm/amd/pm:
Validate pp_table header before reading size
git bisect good a17e79d01f22182a9fcbe79fcbe2ad1477d43e0f
# bad: [7a561c2b1b63abcffb55f625c0d0adb68ab2961a] drm/amd/display:
Simplify boolean checks
git bisect bad 7a561c2b1b63abcffb55f625c0d0adb68ab2961a
# good: [53ef33c084c5778cc2dcd1efff25e31b6e231141] drm/amd/pm:
Validate Tonga PPTable subtable bounds
git bisect good 53ef33c084c5778cc2dcd1efff25e31b6e231141
# good: [fe5966d4fdcbed91e6b3478ea6c89d9915d6ed4a] drm/amdkfd: move
TBA/TMA from system to device memory
git bisect good fe5966d4fdcbed91e6b3478ea6c89d9915d6ed4a
# good: [7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0] drm/amd/display:
Replace repeated no-native-i2c checks with force_i2c_over_aux field
git bisect good 7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0
# good: [88ae862060f05cd8279e764832f04eafafa505d8] drm/amd/display:
Add more KUnit tests for amdgpu_dm_colorop
git bisect good 88ae862060f05cd8279e764832f04eafafa505d8
# bad: [2b147895be109e0860269a7a72c697cdf049a885] drm/amd/display: Add
kunit tests for amdgpu_dm_plane
git bisect bad 2b147895be109e0860269a7a72c697cdf049a885
# first bad commit: [2b147895be109e0860269a7a72c697cdf049a885]
drm/amd/display: Add kunit tests for amdgpu_dm_plane
Regards,
Venkat.