drm/amdgpu: free resources on fence usage query
authorDavid M Nieto <david.nieto@amd.com>
Thu, 13 May 2021 17:45:38 +0000 (10:45 -0700)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 13 May 2021 18:02:24 +0000 (14:02 -0400)
Free the resources if the fence needs to be ignored
during the ratio calculation

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: David M Nieto <david.nieto@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210513174539.27409-1-david.nieto@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c

index 01fe60f..9036c93 100644 (file)
@@ -669,11 +669,15 @@ void amdgpu_ctx_fence_time(struct amdgpu_ctx *ctx, struct amdgpu_ctx_entity *cen
                if (!fence)
                        continue;
                s_fence = to_drm_sched_fence(fence);
-               if (!dma_fence_is_signaled(&s_fence->scheduled))
+               if (!dma_fence_is_signaled(&s_fence->scheduled)) {
+                       dma_fence_put(fence);
                        continue;
+               }
                t1 = s_fence->scheduled.timestamp;
-               if (t1 >= now)
+               if (!ktime_before(t1, now)) {
+                       dma_fence_put(fence);
                        continue;
+               }
                if (dma_fence_is_signaled(&s_fence->finished) &&
                        s_fence->finished.timestamp < now)
                        *total += ktime_sub(s_fence->finished.timestamp, t1);