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.za...@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.za...@gmail.com> >