[PATCH] drm/amdgpu: invalidate parent bo when shadow bo was invalidated
Zhang, Jerry (Junwei)
Jerry.Zhang at amd.com
Fri May 4 08:09:47 UTC 2018
On 05/04/2018 02:44 PM, Chunming Zhou wrote:
> Shadow BO is located on GTT and its parent (PT and PD) BO could located on VRAM.
> In some case, the BO on GTT could be evicted but the parent did not. This may
> cause the shadow BO not be put in the evict list and could not be invalidate
> correctly.
> v2: suggested by Christian
>
> Change-Id: Iad10d9a3031fa2b243879b9e58ee4d8c527eb433
> Signed-off-by: Chunming Zhou <david1.zhou at amd.com>
> Reported-by: Shaoyun Liu <Shaoyun.Liu at amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 71dcdefce255..8e71d3984016 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2252,6 +2252,10 @@ void amdgpu_vm_bo_invalidate(struct amdgpu_device *adev,
> {
> struct amdgpu_vm_bo_base *bo_base;
>
> + /* shadow bo doesn't have bo base, its validation needs its parent */
> + if (bo->parent && bo->parent->shadow == bo)
> + bo = bo->parent;
> +
> list_for_each_entry(bo_base, &bo->va, bo_list) {
> struct amdgpu_vm *vm = bo_base->vm;
>
>
More information about the amd-gfx
mailing list