[PATCH v3 1/1] drm/amdkfd: use allowed domain for vmbo validation

Felix Kuehling felix.kuehling at amd.com
Tue Jun 8 16:19:54 UTC 2021


Am 2021-06-08 um 9:08 a.m. schrieb Christian König:
> Am 08.06.21 um 15:06 schrieb Nirmoy Das:
>> Fixes handling when page tables are in system memory.
>>
>> v3: remove struct amdgpu_vm_parser.
>> v2: remove unwanted variable.
>>      change amdgpu_amdkfd_validate instead of amdgpu_amdkfd_bo_validate.
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
>
> Reviewed-by: Christian König <christian.koenig at amd.com> but Felix
> should probably take a look as well.

Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>

Thanks.


>
>> ---
>>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c  | 21 ++++---------------
>>   1 file changed, 4 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> index d6cb7cf76623..016815b7a773 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> @@ -47,12 +47,6 @@ static struct {
>>       spinlock_t mem_limit_lock;
>>   } kfd_mem_limit;
>>
>> -/* Struct used for amdgpu_amdkfd_bo_validate */
>> -struct amdgpu_vm_parser {
>> -    uint32_t        domain;
>> -    bool            wait;
>> -};
>> -
>>   static const char * const domain_bit_to_string[] = {
>>           "CPU",
>>           "GTT",
>> @@ -348,11 +342,9 @@ static int amdgpu_amdkfd_bo_validate(struct
>> amdgpu_bo *bo, uint32_t domain,
>>       return ret;
>>   }
>>
>> -static int amdgpu_amdkfd_validate(void *param, struct amdgpu_bo *bo)
>> +static int amdgpu_amdkfd_validate_vm_bo(void *_unused, struct
>> amdgpu_bo *bo)
>>   {
>> -    struct amdgpu_vm_parser *p = param;
>> -
>> -    return amdgpu_amdkfd_bo_validate(bo, p->domain, p->wait);
>> +    return amdgpu_amdkfd_bo_validate(bo, bo->allowed_domains, false);
>>   }
>>
>>   /* vm_validate_pt_pd_bos - Validate page table and directory BOs
>> @@ -366,20 +358,15 @@ static int vm_validate_pt_pd_bos(struct
>> amdgpu_vm *vm)
>>   {
>>       struct amdgpu_bo *pd = vm->root.base.bo;
>>       struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
>> -    struct amdgpu_vm_parser param;
>>       int ret;
>>
>> -    param.domain = AMDGPU_GEM_DOMAIN_VRAM;
>> -    param.wait = false;
>> -
>> -    ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate,
>> -                    &param);
>> +    ret = amdgpu_vm_validate_pt_bos(adev, vm,
>> amdgpu_amdkfd_validate_vm_bo, NULL);
>>       if (ret) {
>>           pr_err("failed to validate PT BOs\n");
>>           return ret;
>>       }
>>
>> -    ret = amdgpu_amdkfd_validate(&param, pd);
>> +    ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
>>       if (ret) {
>>           pr_err("failed to validate PD\n");
>>           return ret;
>> -- 
>> 2.31.1
>>
>


More information about the amd-gfx mailing list