AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Kuehling <felix.kuehling-5C7GfCeVMHo@public.gmane.org>
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	"Christian König" <christian.koenig-5C7GfCeVMHo@public.gmane.org>,
	"Deucher,
	Alexander" <Alexander.Deucher-5C7GfCeVMHo@public.gmane.org>
Subject: Re: [PATCH 1/7] drm/amdgpu: fix VM PD addr shift
Date: Mon, 27 Nov 2017 11:40:01 -0500	[thread overview]
Message-ID: <e809f02c-24f3-a8a4-13e2-cc9c10b22bb6@amd.com> (raw)
In-Reply-To: <20171127160217.4010-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>

On 2017-11-27 11:02 AM, Christian König wrote:
> The block size only affects the leave nodes, everything else is fixed.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 28 +++++++++++++++++++++++-----
>  1 file changed, 23 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 122379dfc7d8..f1e541e9b514 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -139,6 +139,24 @@ struct amdgpu_prt_cb {
>  };
>  
>  /**
> + * amdgpu_vm_level_shift - return the addr shift for each level
> + *
> + * @adev: amdgpu_device pointer
> + *
> + * Returns the number of bits the pfn needs to be right shifted for a level.
> + */
> +static unsigned amdgpu_vm_level_shift(struct amdgpu_device *adev,
> +				      unsigned level)
> +{
> +	if (level != adev->vm_manager.num_level)
> +		return 9 * (adev->vm_manager.num_level - level - 1) +
> +			adev->vm_manager.block_size;
> +	else
> +		/* For the page tables on the leaves */
> +		return 0;
> +}
> +
> +/**
>   * amdgpu_vm_num_entries - return the number of entries in a PD/PT
>   *
>   * @adev: amdgpu_device pointer
> @@ -288,8 +306,7 @@ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev,
>  				  uint64_t saddr, uint64_t eaddr,
>  				  unsigned level)
>  {
> -	unsigned shift = (adev->vm_manager.num_level - level) *
> -		adev->vm_manager.block_size;
> +	unsigned shift = amdgpu_vm_level_shift(adev, level);
>  	unsigned pt_idx, from, to;
>  	int r;
>  	u64 flags;
> @@ -1302,18 +1319,19 @@ void amdgpu_vm_get_entry(struct amdgpu_pte_update_params *p, uint64_t addr,
>  			 struct amdgpu_vm_pt **entry,
>  			 struct amdgpu_vm_pt **parent)
>  {
> -	unsigned idx, level = p->adev->vm_manager.num_level;
> +	unsigned level = 0;

This generates a checkpatch.pl warning.

General question: Do you have a policy for running your patches through
checkpatch.pl before/during/after code review? I've noticed before that
some of your patches aren't always 100% compliant.

Regards,
  Felix

>  
>  	*parent = NULL;
>  	*entry = &p->vm->root;
>  	while ((*entry)->entries) {
> -		idx = addr >> (p->adev->vm_manager.block_size * level--);
> +		unsigned idx = addr >> amdgpu_vm_level_shift(p->adev, level++);
> +
>  		idx %= amdgpu_bo_size((*entry)->base.bo) / 8;
>  		*parent = *entry;
>  		*entry = &(*entry)->entries[idx];
>  	}
>  
> -	if (level)
> +	if (level != p->adev->vm_manager.num_level)
>  		*entry = NULL;
>  }
>  

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

  parent reply	other threads:[~2017-11-27 16:40 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-27 16:02 [PATCH 1/7] drm/amdgpu: fix VM PD addr shift Christian König
     [not found] ` <20171127160217.4010-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2017-11-27 16:02   ` [PATCH 2/7] drm/amdgpu: fix amdgpu_vm_num_entries Christian König
2017-11-27 16:02   ` [PATCH 3/7] drm/amdgpu: unify VM size handling of Vega10 with older generation Christian König
2017-11-27 16:02   ` [PATCH 4/7] drm/amdgpu: choose number of VM levels based on VM size Christian König
2017-11-27 16:02   ` [PATCH 5/7] drm/amdgpu: allow non pot VM size values Christian König
2017-11-27 16:02   ` [PATCH 6/7] drm/amdgpu: move validation of the VM size into the VM code Christian König
2017-11-27 16:02   ` [PATCH 7/7] drm/amdgpu: allow specifying vm_block_size for multi level PDs Christian König
2017-11-27 16:40   ` Felix Kuehling [this message]
     [not found]     ` <e809f02c-24f3-a8a4-13e2-cc9c10b22bb6-5C7GfCeVMHo@public.gmane.org>
2017-11-27 17:12       ` [PATCH 1/7] drm/amdgpu: fix VM PD addr shift Christian König
     [not found]         ` <fbaf4196-f070-6675-e528-cc335de3f28b-5C7GfCeVMHo@public.gmane.org>
2017-11-27 17:51           ` Michel Dänzer
2017-11-28  2:42   ` Chunming Zhou
     [not found]     ` <cb6db851-09fd-aa25-ad8b-cf19c8a4150f-5C7GfCeVMHo@public.gmane.org>
2017-11-28 10:04       ` Christian König
2017-11-29 19:33   ` Felix Kuehling

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=e809f02c-24f3-a8a4-13e2-cc9c10b22bb6@amd.com \
    --to=felix.kuehling-5c7gfcevmho@public.gmane.org \
    --cc=Alexander.Deucher-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=christian.koenig-5C7GfCeVMHo@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox