[PATCH 2/7] drm/amdgpu: add a new identifier for amdgpu_bo

Christian König christian.koenig at amd.com
Fri May 21 12:58:29 UTC 2021


Am 21.05.21 um 14:45 schrieb Nirmoy Das:
> Add has_shadow to identify if a BO is shadowed.

Ok that is not going into the right direction.

Instead of identifying which BOs have a shadow we need to identify if 
this is a VM BO or not.

I think the first think you need to do is to move the shadow handling 
from amdgpu_cs_validate() into amdgpu_vm_validate_pt_bos().

And then do it only for ttm_bo_type_kernel BOs, cause those are the 
PD/PT BOs.

Regards,
Christian.

>
> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 ++
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 5 ++---
>   2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index 61b1edcb490a..eb3ce33cbfff 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -619,6 +619,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>   	}
>   	if (!bp->resv)
>   		amdgpu_bo_unreserve(bo);
> +	bo->has_shadow = false;
>   	*bo_ptr = bo;
>   
>   	trace_amdgpu_bo_create(bo);
> @@ -657,6 +658,7 @@ int amdgpu_bo_create_shadow(struct amdgpu_device *adev,
>   	r = amdgpu_bo_create(adev, &bp, &bo->shadow);
>   	if (!r) {
>   		bo->shadow->parent = amdgpu_bo_ref(bo);
> +		bo->has_shadow = true;
>   		mutex_lock(&adev->shadow_list_lock);
>   		list_add_tail(&bo->shadow->shadow_list, &adev->shadow_list);
>   		mutex_unlock(&adev->shadow_list_lock);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> index a7fbf5f7051e..3a0e6ca88563 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> @@ -104,9 +104,8 @@ struct amdgpu_bo {
>   	struct amdgpu_vm_bo_base	*vm_bo;
>   	/* Constant after initialization */
>   	struct amdgpu_bo		*parent;
> -	struct amdgpu_bo		*shadow;
> -
> -
> +	struct amdgpu_bo                *shadow;
> +	bool				has_shadow;
>   
>   #ifdef CONFIG_MMU_NOTIFIER
>   	struct mmu_interval_notifier	notifier;



More information about the amd-gfx mailing list