All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <christian.koenig@amd.com>
To: Nirmoy Das <nirmoy.das@amd.com>, amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/amdgpu: move shadow_list to amdgpu_bo_vm
Date: Tue, 15 Jun 2021 08:55:29 +0200	[thread overview]
Message-ID: <20877972-3d8e-6419-bddd-6c6e78830083@amd.com> (raw)
In-Reply-To: <20210614192653.18239-2-nirmoy.das@amd.com>

Am 14.06.21 um 21:26 schrieb Nirmoy Das:
> Move shadow_list to struct amdgpu_bo_vm as shadow BOs
> are part of PT/PD BOs.
>
> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  5 +++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 +++++++------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h |  6 ++----
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c     |  2 +-
>   4 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index f2636f411a25..3f51b142fc83 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -4063,6 +4063,7 @@ static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
>   {
>   	struct dma_fence *fence = NULL, *next = NULL;
>   	struct amdgpu_bo *shadow;
> +	struct amdgpu_bo_vm *vmbo;
>   	long r = 1, tmo;
>   
>   	if (amdgpu_sriov_runtime(adev))
> @@ -4072,8 +4073,8 @@ static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
>   
>   	dev_info(adev->dev, "recover vram bo from shadow start\n");
>   	mutex_lock(&adev->shadow_list_lock);
> -	list_for_each_entry(shadow, &adev->shadow_list, shadow_list) {
> -
> +	list_for_each_entry(vmbo, &adev->shadow_list, shadow_list) {
> +		shadow = &vmbo->bo;
>   		/* No need to recover an evicted BO */
>   		if (shadow->tbo.mem.mem_type != TTM_PL_TT ||
>   		    shadow->tbo.mem.start == AMDGPU_BO_INVALID_OFFSET ||
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index f4f57a73d095..9f1e6bd8601b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -111,12 +111,13 @@ static void amdgpu_bo_vm_destroy(struct ttm_buffer_object *tbo)
>   {
>   	struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
>   	struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo);
> +	struct amdgpu_bo_vm *vmbo = to_amdgpu_bo_vm(bo);
>   
>   	amdgpu_bo_destroy_base(tbo);
>   	/* in case amdgpu_device_recover_vram got NULL of bo->parent */
> -	if (!list_empty(&bo->shadow_list)) {
> +	if (!list_empty(&vmbo->shadow_list)) {
>   		mutex_lock(&adev->shadow_list_lock);
> -		list_del_init(&bo->shadow_list);
> +		list_del_init(&vmbo->shadow_list);
>   		mutex_unlock(&adev->shadow_list_lock);
>   	}
>   
> @@ -592,7 +593,6 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>   	if (bo == NULL)
>   		return -ENOMEM;
>   	drm_gem_private_object_init(adev_to_drm(adev), &bo->tbo.base, size);
> -	INIT_LIST_HEAD(&bo->shadow_list);
>   	bo->vm_bo = NULL;
>   	bo->preferred_domains = bp->preferred_domain ? bp->preferred_domain :
>   		bp->domain;
> @@ -722,6 +722,7 @@ int amdgpu_bo_create_vm(struct amdgpu_device *adev,
>   		return r;
>   
>   	*vmbo_ptr = to_amdgpu_bo_vm(bo_ptr);
> +	INIT_LIST_HEAD(&(*vmbo_ptr)->shadow_list);
>   	return r;
>   }
>   
> @@ -766,12 +767,12 @@ int amdgpu_bo_validate(struct amdgpu_bo *bo)
>    *
>    * Insert a BO to the shadow list.
>    */
> -void amdgpu_bo_add_to_shadow_list(struct amdgpu_bo *bo)
> +void amdgpu_bo_add_to_shadow_list(struct amdgpu_bo_vm *vmbo)
>   {
> -	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
> +	struct amdgpu_device *adev = amdgpu_ttm_adev(vmbo->bo.tbo.bdev);
>   
>   	mutex_lock(&adev->shadow_list_lock);
> -	list_add_tail(&bo->shadow_list, &adev->shadow_list);
> +	list_add_tail(&vmbo->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 a8c702634e1b..18cb2f28e4de 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> @@ -109,9 +109,6 @@ struct amdgpu_bo {
>   #ifdef CONFIG_MMU_NOTIFIER
>   	struct mmu_interval_notifier	notifier;
>   #endif
> -
> -	struct list_head		shadow_list;
> -
>   	struct kgd_mem                  *kfd_bo;
>   };
>   
> @@ -127,6 +124,7 @@ struct amdgpu_bo_user {
>   struct amdgpu_bo_vm {
>   	struct amdgpu_bo		bo;
>   	struct amdgpu_bo		*shadow;
> +	struct list_head		shadow_list;

We would actually need an amdgpu_bo_shadow for this, but not in this 
patch probably.

Christian.

>   	struct amdgpu_vm_bo_base        entries[];
>   };
>   
> @@ -333,7 +331,7 @@ u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo);
>   int amdgpu_bo_validate(struct amdgpu_bo *bo);
>   void amdgpu_bo_get_memory(struct amdgpu_bo *bo, uint64_t *vram_mem,
>   				uint64_t *gtt_mem, uint64_t *cpu_mem);
> -void amdgpu_bo_add_to_shadow_list(struct amdgpu_bo *bo);
> +void amdgpu_bo_add_to_shadow_list(struct amdgpu_bo_vm *vmbo);
>   int amdgpu_bo_restore_shadow(struct amdgpu_bo *shadow,
>   			     struct dma_fence **fence);
>   uint32_t amdgpu_bo_get_preferred_pin_domain(struct amdgpu_device *adev,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 4c4c56581780..812c225538a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -936,7 +936,7 @@ static int amdgpu_vm_pt_create(struct amdgpu_device *adev,
>   	}
>   
>   	(*vmbo)->shadow->parent = amdgpu_bo_ref(bo);
> -	amdgpu_bo_add_to_shadow_list((*vmbo)->shadow);
> +	amdgpu_bo_add_to_shadow_list((*vmbo));
>   
>   	return 0;
>   }

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  reply	other threads:[~2021-06-15  6:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 19:26 [PATCH v2 1/2] drm/amdgpu: parameterize ttm BO destroy callback Nirmoy Das
2021-06-14 19:26 ` [PATCH 2/2] drm/amdgpu: move shadow_list to amdgpu_bo_vm Nirmoy Das
2021-06-15  6:55   ` Christian König [this message]
2021-06-14 20:00 ` [PATCH v2 1/2] drm/amdgpu: parameterize ttm BO destroy callback Alex Deucher
2021-06-15  8:42   ` Das, Nirmoy
2021-06-15  6:53 ` Christian König
2021-06-15  8:41   ` Das, Nirmoy
2021-06-15  9:23 Nirmoy Das
2021-06-15  9:24 ` [PATCH 2/2] drm/amdgpu: move shadow_list to amdgpu_bo_vm Nirmoy Das
2021-06-15 11:51 [PATCH v3 1/2] drm/amdgpu: parameterize ttm BO destroy callback Nirmoy Das
2021-06-15 11:51 ` [PATCH 2/2] drm/amdgpu: move shadow_list to amdgpu_bo_vm Nirmoy Das
2021-06-15 11:57   ` Christian König
2021-06-15 11:59     ` Das, Nirmoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20877972-3d8e-6419-bddd-6c6e78830083@amd.com \
    --to=christian.koenig@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=nirmoy.das@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.