[PATCH v2 1/3] drm/amdgpu: Correct unlocked update fence handling

Christian König christian.koenig at amd.com
Mon Mar 28 13:14:11 UTC 2022


Am 28.03.22 um 15:06 schrieb Philip Yang:
> To fix two issues with unlocked update fence:
>
> 1. vm->last_unlocked store the latest fence without taking refcount.
> 2. amdgpu_vm_bo_update_mapping returns old fence, not the latest fence.

NAK, that code here is perfectly correct.

vm->last_unlocked gets a reference to the last unlocked operation.

Otherwise the last locked operation is added directly to the root resv 
object.

Regards,
Christian.

>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
> index dbb551762805..69fba68ff88e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
> @@ -109,7 +109,7 @@ static int amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p,
>   	if (p->unlocked) {
>   		struct dma_fence *tmp = dma_fence_get(f);
>   
> -		swap(p->vm->last_unlocked, f);
> +		swap(p->vm->last_unlocked, tmp);
>   		dma_fence_put(tmp);
>   	} else {
>   		amdgpu_bo_fence(p->vm->root.bo, f, true);



More information about the amd-gfx mailing list