[PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)

Christian König christian.koenig at amd.com
Tue Jun 5 08:14:38 UTC 2018


Am 05.06.2018 um 10:09 schrieb Junwei Zhang:
> From: Christian König <ckoenig.leichtzumerken at gmail.com>
>
> (comments: I cannot receive amdgfx mail recently and reply the mail directly,
> so send it out with my update v2, tested with Unigine Heaven, glmark2, gputest,
> some cases from vulkan PRT test)
>
> v2: store bo_va as well
>
> We need to put the lose ends on the invalid list because it is possible
> that we need to split up huge pages for them.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com>

Good catch that assigning the bo_va is also missing. David can you take 
a look and give a review?

Since I'm a co-author I can't do it myself.

Thanks,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 850cd66..cc9d486 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2172,7 +2172,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
>   			before->last = saddr - 1;
>   			before->offset = tmp->offset;
>   			before->flags = tmp->flags;
> -			list_add(&before->list, &tmp->list);
> +			before->bo_va = tmp->bo_va;
> +			list_add(&before->list, &tmp->bo_va->invalids);
>   		}
>   
>   		/* Remember mapping split at the end */
> @@ -2182,7 +2183,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
>   			after->offset = tmp->offset;
>   			after->offset += after->start - tmp->start;
>   			after->flags = tmp->flags;
> -			list_add(&after->list, &tmp->list);
> +			after->bo_va = tmp->bo_va;
> +			list_add(&after->list, &tmp->bo_va->invalids);
>   		}
>   
>   		list_del(&tmp->list);



More information about the amd-gfx mailing list