[PATCH 1/2] drm/amdgpu: fix PRT cleanup order in the VM

Christian König deathsimple at vodafone.de
Mon Feb 13 18:32:12 UTC 2017


Am 13.02.2017 um 18:32 schrieb Nicolai Hähnle:
> On 13.02.2017 17:40, Nicolai Hähnle wrote:
>> On 13.02.2017 14:23, Christian König wrote:
>>> From: Christian König <christian.koenig at amd.com>
>>>
>>> We need to unmap the PRTs first and then free our scheduler entity.
>>
>> Thanks for the quick fix! Both patches are
>>
>> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
>>
>> ... and I'll probably get around to testing them soon, as well.
>
> Hmm, I still get both the "suspicious RCU" and amdgpu_bo_gpu_offset 
> warning.

Yeah, that's actually another issue. Going to work on that as well.

I probably should come up with a more complete solution covering both cases.

Regards,
Christian.

>
> Nicolai
>
>>
>>>
>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>> ---
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> index bc32239..0b7386e 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> @@ -1687,8 +1687,6 @@ void amdgpu_vm_fini(struct amdgpu_device *adev,
>>> struct amdgpu_vm *vm)
>>>      struct amdgpu_bo_va_mapping *mapping, *tmp;
>>>      int i;
>>>
>>> -    amd_sched_entity_fini(vm->entity.sched, &vm->entity);
>>> -
>>>      if (!RB_EMPTY_ROOT(&vm->va)) {
>>>          dev_err(adev->dev, "still active bo inside vm\n");
>>>      }
>>> @@ -1706,6 +1704,8 @@ void amdgpu_vm_fini(struct amdgpu_device *adev,
>>> struct amdgpu_vm *vm)
>>>      }
>>>      amdgpu_vm_clear_freed(adev, vm);
>>>
>>> +    amd_sched_entity_fini(vm->entity.sched, &vm->entity);
>>> +
>>>      for (i = 0; i < amdgpu_vm_num_pdes(adev); i++) {
>>>          struct amdgpu_bo *pt = vm->page_tables[i].bo;
>>>
>>>
>>
>



More information about the amd-gfx mailing list