[PATCH 2/2] drm/amdgpu: Avoid endless loop in GPUVM fragment processing
Christian König
ckoenig.leichtzumerken at gmail.com
Tue Nov 27 09:39:42 UTC 2018
Am 26.11.18 um 23:01 schrieb Kuehling, Felix:
> Don't bounce back to the root level for fragment processing, because
> huge pages are not supported at that level. This is unlikely to happen
> with the default VM size on Vega, but can be exposed by limiting the
> VM size with the amdgpu.vm_size module parameter.
>
> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
Good catch! Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index be3e360..0877ff9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1656,9 +1656,11 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
> if (!amdgpu_vm_pt_descendant(adev, &cursor))
> return -ENOENT;
> continue;
> - } else if (frag >= parent_shift) {
> + } else if (frag >= parent_shift &&
> + cursor.level - 1 != adev->vm_manager.root_level) {
> /* If the fragment size is even larger than the parent
> - * shift we should go up one level and check it again.
> + * shift we should go up one level and check it again
> + * unless one level up is the root level.
> */
> if (!amdgpu_vm_pt_ancestor(&cursor))
> return -ENOENT;
More information about the amd-gfx
mailing list