[PATCH v2] drm/amdgpu: Verify root PD is mapped into kernel address space.

Christian König ckoenig.leichtzumerken at gmail.com
Fri Jul 6 11:15:50 UTC 2018


Am 06.07.2018 um 13:02 schrieb Huang Rui:
> On Fri, Jul 06, 2018 at 10:02:32AM +0200, Christian König wrote:
>> Am 05.07.2018 um 20:56 schrieb Andrey Grodzovsky:
>>> Problem: When PD/PT update made by CPU root PD was not yet mapped causing
>>> page fault.
>>>
>>> Fix: Verify root PD is mapped into CPU address space.
>>>
>>> v2:
>>> Make sure that we add the root PD to the relocated list
>>> since then it's get mapped into CPU address space bt default
>>> in amdgpu_vm_update_directories.
>>>
>>> Link: https://bugs.freedesktop.org/show_bug.cgi?id=107065
>>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>>>
>>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++++-
>>>   1 file changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> index 845f73a..1a8caf1 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> @@ -156,6 +156,9 @@ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
>>>   		return;
>>>   	list_add_tail(&base->bo_list, &bo->va);
>>> +	if (bo->tbo.type == ttm_bo_type_kernel)
>>> +		list_move(&base->vm_status, &vm->relocated);
>>> +
>>>   	if (bo->tbo.resv != vm->root.base.bo->tbo.resv)
>>>   		return;
>>> @@ -168,7 +171,8 @@ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
>>>   	 * is currently evicted. add the bo to the evicted list to make sure it
>>>   	 * is validated on next vm use to avoid fault.
>>>   	 * */
>>> -	list_move_tail(&base->vm_status, &vm->evicted);
>>> +	if (bo->tbo.type != ttm_bo_type_kernel)
>>> +		list_move_tail(&base->vm_status, &vm->evicted);
>> You need to drop that chunk, the evicted state supersedes the
>> relocated state (e.g. when they are validated they move from evicted
>> to relocated).
>>
> Is that mean we must also move root bo to relocated list like other PD/PT
> BOs, then we do the kmap under amdgpu_vm_update_directories for updating
> pte with mmio from pcie?

Yes, exactly.

> Why we avoid kernel type bo to move evicted list if they are not in
> preferred_domains here? You know we checked (bo->preferred_domains &
> amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) last step.

Well that is the point, we must move the PDs to the evicted list when 
they are not in one of the preferred_domains.

Christian.

>
> Thanks,
> Ray
>
>> Additional to that the now superfluous move in
>> amdgpu_vm_alloc_levels() can be removed.
>>
>> Christian.
>>
>>>   }
>>>   /**
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx



More information about the amd-gfx mailing list