[PATCH] drm/amdkfd: reserve a fence slot while locking the BO
Felix Kuehling
felix.kuehling at amd.com
Fri Oct 20 19:27:19 UTC 2023
On 2023-10-20 08:33, Christian König wrote:
> Looks like the KFD still needs this.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> Fixes: 8abc1eb2987a ("drm/amdkfd: switch over to using drm_exec v3")
To fix the immediate problem, this patch is
Acked-by: Felix Kuehling <Felix.Kuehling at amd.com>
As I understand it, this reserves a fence slot for adding an eviction
fence. I'm not convinced that this is the right place to do this. Not
all callers of reserve_bo_and_vm add eviction fences. In another patch
series I added the fence slot reservation in a new helper function
amdgpu_amdkfd_bo_validate_and_fence.
Taking another step back, as I understand it, the pre-reservation of
fence slots is there to avoid late failures after submitting commands to
the HW. This isn't really a problem for KFD because eviction fences
aren't directly linked to commands submitted to the HW. It's more like a
place holder for future user mode submissions. So I think it's OK to
reserve the fence slot just before attaching the fence to a BO resv. We
don't have to do the pre-reservation here.
Regards,
Felix
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> index 7d6daf8d2bfa..e036011137aa 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> @@ -1103,7 +1103,7 @@ static int reserve_bo_and_vm(struct kgd_mem *mem,
> if (unlikely(ret))
> goto error;
>
> - ret = drm_exec_lock_obj(&ctx->exec, &bo->tbo.base);
> + ret = drm_exec_prepare_obj(&ctx->exec, &bo->tbo.base, 1);
> drm_exec_retry_on_contention(&ctx->exec);
> if (unlikely(ret))
> goto error;
More information about the amd-gfx
mailing list