Re: [PATCH v3 4/6] drm/amdgpu: Enable signaling on fence.

From: Christian König
Date: Mon Sep 12 2022 - 04:47:05 EST


Am 09.09.22 um 19:08 schrieb Arvind Yadav:
Here's enabling software signaling on fence because
amdgpu_ctx_add_fence() is checking the status of fence
and emits warning.

Signed-off-by: Arvind Yadav <Arvind.Yadav@xxxxxxx>
---

Changes in v1, v2: This new patch was not part of previous series.

---
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
index afe22f83d4a6..21221d705588 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -730,6 +730,8 @@ uint64_t amdgpu_ctx_add_fence(struct amdgpu_ctx *ctx,
dma_fence_get(fence);
+ dma_fence_enable_sw_signaling(fence);
+

That looks like a step into the right direction, but still isn't correct.

The code using this interface should call amdgpu_ctx_wait_prev_fence() before calling amdgpu_ctx_add_fence(). And amdgpu_ctx_wait_prev_fence() in turn calls dma_fence_wait() which should also enables the signaling.

So when we need this here something is still very wrong on the logic :)

Thanks,
Christian.

spin_lock(&ctx->ring_lock);
centity->fences[idx] = fence;
centity->sequence++;