[PATCH] drm/amdgpu: Fix display freezing issue when resizing apps
Sharma, Shashank
Shashank.Sharma at amd.com
Wed Mar 19 08:33:57 UTC 2025
[AMD Official Use Only - AMD Internal Distribution Only]
Reviewed-by: Shashank Sharma <shashank.sharma at amd.com>
Regards
Shashank
________________________________
From: Yadav, Arvind
Sent: Tuesday, March 18, 2025 3:54 PM
To: Koenig, Christian; Deucher, Alexander; Khatri, Sunil; Sharma, Shashank
Cc: amd-gfx at lists.freedesktop.org; Yadav, Arvind; Koenig, Christian; Yadav, Arvind
Subject: [PATCH] drm/amdgpu: Fix display freezing issue when resizing apps
The display is freezing because the amdgpu_userq_wait_ioctl()
is waiting for a non-user queue fence(specifically, the PT update fence).
RootCause:
The resume_work is initiated by both amdgpu_userq_suspend and
amdgpu_userqueue_ensure_ev_fence at same time. The amdgpu_userq_suspend
signals a dma-fence and subsequently triggers the resume_work, which is
intended to replace the existing fence by creating new dma-fence. However,
following this, the amdgpu_userqueue_ensure_ev_fence schedules another
resume_work that generates a new dma-fence, thereby replacing the one
created by amdgpu_userq_suspend. Consequently, the original fence will
never be signaled.
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian König <christian.koenig at amd.com>
Cc: Shashank Sharma <shashank.sharma at amd.com>
Cc: Sunil Khatri <sunil.khatri at amd.com>
Signed-off-by: Arvind Yadav <arvind.yadav at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
index 167951aee502..0075469550b0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
@@ -52,6 +52,9 @@ amdgpu_eviction_fence_replace_fence(struct amdgpu_eviction_fence_mgr *evf_mgr,
unsigned long index;
int ret;
+ if (evf_mgr->ev_fence &&
+ !dma_fence_is_signaled(&evf_mgr->ev_fence->base))
+ return 0;
/*
* Steps to replace eviction fence:
* * lock all objects in exec (caller)
--
2.34.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20250319/92623e3d/attachment-0001.htm>
More information about the amd-gfx
mailing list