[PATCH RFC 0/6] amdgpu: Avoid powering on the dGPU on vkEnumeratePhysicalDevices()
Christian König
christian.koenig at amd.com
Wed Aug 6 08:58:19 UTC 2025
On 31.07.25 07:36, Philipp Zabel wrote:
> This is an attempt at fixing amd#2295 [1]:
>
> On an AMD Rembrandt laptop with 680M iGPU and 6700S dGPU, calling
> vkEnumeratePhysicalDevices() wakes up the sleeping dGPU, even if all
> the application wants is to find and use the iGPU. This causes a delay
> of about 2 seconds on this system, followed by a few seconds of
> increased power draw until runtime PM turns the dGPU back off again.
>
> [1] https://gitlab.freedesktop.org/drm/amd/-/issues/2295
>
> Patch 1 avoids power up on some ioctls that don't need it.
> Patch 2 avoids power up on open() by postponing fpriv initialization to
> the first ioctl() that wakes up the dGPU.
> Patches 3 and 4 add AMDGPU_INFO to the list of non-waking ioctls,
> returning cached values for some queries.
> Patch 5 works around an explicit register access from libdrm.
> Patch 6 shorts out the syncobj ioctls while fpriv is still
> uninitialized. This avoids waking up the dGPU during Vulkan syncobj
> feature detection.
This idea came up multiple times now but was never completed.
IIRC Pierre-Eric last worked on it, it would probably be a good idea to dig up his patches from the mailing list.
>
> regards
> Philipp
>
> Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> ---
> Alex Deucher (1):
> drm/amdgpu: don't wake up the GPU for some IOCTLs
>
> Philipp Zabel (5):
> drm/amdgpu: don't wake up the GPU when opening the device
> drm/amdgpu: don't query xclk in AMDGPU_INFO_DEV_INFO
> drm/amdgpu: don't wake up the GPU for some AMDGPU_INFO queries
> drm/amdgpu: don't wake up the GPU for mmGB_ADDR_CONFIG register read
That is both unnecessary an insufficient. Unnecessary because we already have a mechanism to cache register values and insufficient because IIRC you need to add a bunch of more registers to the cached list.
See Pierre-Erics latest patch set, I think we already solved that but I'm not 100% sure.
Regards,
Christian.
> drm/amdgpu: don't wake up the GPU for syncobj feature detection
>
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 3 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 80 +++++++++++++++-
> drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 3 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 137 +++++++++++++++++++++-------
> 6 files changed, 194 insertions(+), 36 deletions(-)
> ---
> base-commit: 6ac55eab4fc41e0ea80f9064945e4340f13d8b5c
> change-id: 20250730-b4-dont-wake-next-17fc02114331
>
> Best regards,
> --
> Philipp Zabel <philipp.zabel at gmail.com>
>
More information about the dri-devel
mailing list