[PATCH] drm/amdkfd: SVM map to gpus check vma boundary

Felix Kuehling felix.kuehling at amd.com
Thu Sep 16 20:40:29 UTC 2021


On 2021-09-13 4: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 | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> index 110c46cd7fac..2e3ee9c46a10 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> @@ -1178,7 +1178,9 @@ 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 &&
> +		    i + 1 < offset + npages &&

I think this would be more intuitive: "i < offset + npages - 1" (meaning 
i is before the last page in the range)

Do we still need the the "(prange->start + i) < prange->last" condition 
at all now? I think it could just be replaced with "i < offset + npages 
- 1".

Regards,
   Felix


>   		    last_domain == (dma_addr[i + 1] & SVM_RANGE_VRAM_DOMAIN))
>   			continue;
>   


More information about the amd-gfx mailing list