New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 822555 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

IMG Rogue drivers depend on !GPU_TRACEPOINTS

Project Member Reported by groeck@chromium.org, Mar 16 2018

Issue description

The latest MALI code drop enables GPU_TRACEPOINTS if ANDROID is enabled. This exposes that the IMG rogue drivers only build if GPU_TRACEPOINTS is disabled or if they are built as module, since they declare their own GPU tracepoints which overlap with those defined by GPU_TRACEPOINTS.
This results in the following build error, seen if GPU_TRACEPOINTS is enabled and one if the ROGUE drivers is built into the kernel.

drivers/built-in.o:(__tracepoints+0x1030): multiple definition of `__tracepoint_gpu_sched_switch'
kernel/built-in.o:(__tracepoints+0x1c00): first defined here
drivers/built-in.o:(__tracepoints+0xff8): multiple definition of `__tracepoint_gpu_job_enqueue'
kernel/built-in.o:(__tracepoints+0x1bc8): first defined here

At the same time, making DRM_POWERVR_ROGUE_1_9 and DRM_POWERVR_ROGUE_1_8 dependent on !GPU_TRACEPOINT does not work either because it results in a recursive dependency.

$ make-arm64 allmodconfig
scripts/kconfig/conf  --allmodconfig Kconfig
drivers/video/fbdev/Kconfig:5:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/video/fbdev/Kconfig:5:	symbol FB is selected by DRM_KMS_FB_HELPER
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpu/drm/Kconfig:43:	symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpu/drm/Kconfig:37:	symbol DRM_KMS_HELPER is selected by DRM_ROCKCHIP
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpu/drm/rockchip/Kconfig:1:	symbol DRM_ROCKCHIP depends on ARM_RK3399_DMC_DEVFREQ
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/devfreq/Kconfig:101:	symbol ARM_RK3399_DMC_DEVFREQ depends on PM_DEVFREQ
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/devfreq/Kconfig:1:	symbol PM_DEVFREQ is selected by DRM_POWERVR_ROGUE_1_9
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpu/drm/img-rogue/Kconfig:1:	symbol DRM_POWERVR_ROGUE_1_9 depends on GPU_TRACEPOINTS
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
kernel/trace/Kconfig:80:	symbol GPU_TRACEPOINTS is selected by MALI_MIDGARD
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpu/arm/midgard/Kconfig:23:	symbol MALI_MIDGARD depends on THERMAL
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/thermal/Kconfig:5:	symbol THERMAL is selected by ACPI_VIDEO
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/acpi/Kconfig:169:	symbol ACPI_VIDEO is selected by BACKLIGHT_CLASS_DEVICE
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/video/backlight/Kconfig:158:	symbol BACKLIGHT_CLASS_DEVICE is selected by FB_BACKLIGHT
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/video/fbdev/Kconfig:188:	symbol FB_BACKLIGHT is selected by PMAC_BACKLIGHT
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/macintosh/Kconfig:135:	symbol PMAC_BACKLIGHT depends on FB
warning: (PMAC_BACKLIGHT && DRM_NOUVEAU && FB_TFT) selects FB_BACKLIGHT which has unmet direct dependencies (HAS_IOMEM && FB)

This in turn exposes that the DRM and PM_DEVFREQ dependencies in the Rockchip drivers are not well defined.

 

Comment 1 by groeck@chromium.org, Mar 16 2018

Description: Show this description

Comment 2 by groeck@chromium.org, Mar 16 2018

Description: Show this description

Comment 3 Deleted

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 16 2018

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/854d52377073b25e7f3bb2c81ee043d10fc9233b

commit 854d52377073b25e7f3bb2c81ee043d10fc9233b
Author: Frank Binns <frank.binns@imgtec.com>
Date: Fri Mar 16 18:14:01 2018

CHROMIUM: drm/img-rogue: stop defining gpu tracepoints

This is unnecessary since this is done for us by CONFIG_GPU_TRACEPOINTS.

This meant that when this option was enabled that the gpu tracepoint functions
would be defined multiple times, resulting in the following errors:

  drivers/built-in.o:(__tracepoints+0x1030): multiple definition of `__tracepoint_gpu_sched_switch'
  kernel/built-in.o:(__tracepoints+0x1c00): first defined here
  drivers/built-in.o:(__tracepoints+0xff8): multiple definition of `__tracepoint_gpu_job_enqueue'
  kernel/built-in.o:(__tracepoints+0x1bc8): first defined here

BUG= chromium:822555 
TEST=Build the kernel for Elm

Change-Id: I8657a10e0331a05d2ff9eefccbcdd6fae46ca29e
Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-on: https://chromium-review.googlesource.com/966281
Commit-Ready: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/854d52377073b25e7f3bb2c81ee043d10fc9233b/drivers/gpu/drm/img-rogue/Kconfig
[modify] https://crrev.com/854d52377073b25e7f3bb2c81ee043d10fc9233b/drivers/gpu/drm/img-rogue/1.8/pvr_gputrace.c
[modify] https://crrev.com/854d52377073b25e7f3bb2c81ee043d10fc9233b/drivers/gpu/drm/img-rogue/1.9/pvr_gputrace.c

Comment 6 by groeck@chromium.org, Mar 16 2018

Status: Fixed (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Mar 16 2018

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2d599f4089af9b559540fd332663de875739af91

commit 2d599f4089af9b559540fd332663de875739af91
Author: Frank Binns <frank.binns@imgtec.com>
Date: Fri Mar 16 20:30:04 2018

CHROMIUM: drm/img-rogue: stop defining gpu tracepoints

This is unnecessary since this is done for us by CONFIG_GPU_TRACEPOINTS.

This meant that when this option was enabled that the gpu tracepoint functions
would be defined multiple times, resulting in the following errors:

  drivers/built-in.o:(__tracepoints+0x1030): multiple definition of `__tracepoint_gpu_sched_switch'
  kernel/built-in.o:(__tracepoints+0x1c00): first defined here
  drivers/built-in.o:(__tracepoints+0xff8): multiple definition of `__tracepoint_gpu_job_enqueue'
  kernel/built-in.o:(__tracepoints+0x1bc8): first defined here

BUG= chromium:822555 
TEST=Build the kernel for Elm

Change-Id: I8657a10e0331a05d2ff9eefccbcdd6fae46ca29e
Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-on: https://chromium-review.googlesource.com/966063
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/2d599f4089af9b559540fd332663de875739af91/drivers/gpu/drm/img-rogue/Kconfig
[modify] https://crrev.com/2d599f4089af9b559540fd332663de875739af91/drivers/gpu/drm/img-rogue/1.8/pvr_gputrace.c
[modify] https://crrev.com/2d599f4089af9b559540fd332663de875739af91/drivers/gpu/drm/img-rogue/1.9/pvr_gputrace.c

Sign in to add a comment