[PATCH v2] drm/amdkfd: SVM map to gpus check vma boundary
Felix Kuehling
felix.kuehling at amd.com
Thu Sep 16 21:37:20 UTC 2021
On 2021-09-16 5:11 p.m., Philip Yang wrote:
> SVM range may includes multiple VMAs with different vm_flags, if prange
> page index is the last page of the VMA offset + npages, update GPU
> mapping to create GPU page table with same VMA access permission.
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> index 110c46cd7fac..de91c7e83bb4 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> @@ -1178,7 +1178,12 @@ svm_range_map_to_gpu(struct amdgpu_device *adev, struct amdgpu_vm *vm,
> for (i = offset; i < offset + npages; i++) {
> last_domain = dma_addr[i] & SVM_RANGE_VRAM_DOMAIN;
> dma_addr[i] &= ~SVM_RANGE_VRAM_DOMAIN;
> - if ((prange->start + i) < prange->last &&
> +
> + /*
> + * If i is not the last page in the range and next page is in
> + * same VRAM or CPU domain
This comment doesn't add any information. It basically just restates the
condition below without explaining the intention. Maybe something like
this would be helpful instead:
/* Collect all pages in the same address range and memory domain that can
* be mapped with a single call to amdgpu_vm_bo_update_mapping.
*/
With that fixed, the patch is
Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>
> + */
> + if (i < offset + npages - 1 &&
> last_domain == (dma_addr[i + 1] & SVM_RANGE_VRAM_DOMAIN))
> continue;
>
More information about the amd-gfx
mailing list