https://bugs.kde.org/show_bug.cgi?id=527244
Malek Haroun <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #7 from Malek Haroun <[email protected]> --- Confirming the same root cause on a second Intel-iGPU + AMD-dGPU machine, with before/after quantification. Hardware: HP ZBook 15 G3, Intel Core i7-6700HQ - iGPU: Intel HD Graphics 530, 0000:00:02.0, boot_vga=1, drives the internal panel -> card1 / renderD128 - dGPU: AMD Radeon R9 M375X (Verde, amdgpu), 0000:01:00.0, no connected outputs -> card0 / renderD129 - dGPU power settings are distro defaults and were never changed: power/control=auto, autosuspend_delay_ms=5000 Software: CachyOS, kwin 6.8.0-1.1, Mesa 26.2.4, kernel 7.2.9-2-cachyos, Plasma Wayland session libudev returns the render nodes in the same order already reported in comments 3/4/6 (the dGPU sits under root port 0000:00:01.0, which enumerates before the iGPU's 0000:00:02.0): /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/renderD129 (dGPU, first) /sys/devices/pci0000:00/0000:00:02.0/drm/renderD128 (iGPU) so WaylandServer::updateSyncobjSupport() binds the single wp_linux_drm_syncobj_manager_v1 global to the runtime-suspended dGPU. Both GPUs report DRM_CAP_SYNCOBJ_TIMELINE=1, so only the list order decides. Quantification before the workaround (ftrace kprobes on amdgpu_drm_ioctl, 103 s window on a normally animated desktop): - 6458 ioctls on amdgpu's DRM fd, all in the kwin_wayland main thread (~63/s) - decoded with /usr/include/drm/drm.h: SYNCOBJ_CREATE 0xc00864bf, SYNCOBJ_FD_TO_HANDLE 0xc01864c2, SYNCOBJ_TRANSFER 0xc02064cc, SYNCOBJ_EVENTFD 0xc01864cf (same command as in the bpftrace trace in comment 0) - rpm_resume for 0000:01:00.0 followed the first ioctl of every burst with cnt 1->2 (only the compositor's own reference; no PM reference leak) - in one boot's journal: 19 x "main thread was hanging temporarily!" from kwin_wayland and 44 x "PCIE GART of 1024M enabled"; each hang follows the GART resume line by ~1.0 s After setting KWIN_RENDER_NODES=/dev/dri/renderD128:/dev/dri/renderD129 (~/.config/environment.d + re-login; the iGPU stays the compositing device because it is the only device with an output): - 252 s of continuous 60 fps video playback plus an explicit-sync client: dGPU runtime_active_time +0 ms, runtime_suspended_time +252409 ms, runtime_status "suspended" throughout, 0 new "main thread was hanging", 0 new GART resumes - power/control=auto and autosuspend_delay_ms=5000 unchanged; DRI_PRIME=1 glxinfo -B still reports the R9 M375X, Accelerated: yes, so PRIME offload is untouched - render/card numbering unchanged after re-login (pci-0000:00:02.0-render -> renderD128) This also matches comment 5: as long as the syncobj manager is bound to the dGPU, every explicit-sync client (including anything running through PRIME/Vulkan) keeps taking per-frame ioctls on the dGPU's fd, so the battery drain is the same bug, not a separate one. Attached: measurement details (ioctl decoding, runtime-PM counters, journal excerpts). -- You are receiving this mail because: You are watching all bug changes.
