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

2021-06-08 Thread Felix Kuehling
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 
>
> Reviewed-by: Christian König  but Felix
> should probably take a look as well.

Reviewed-by: Felix Kuehling 

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,
>> -    );
>> +    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(, pd);
>> +    ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
>>   if (ret) {
>>   pr_err("failed to validate PD\n");
>>   return ret;
>> -- 
>> 2.31.1
>>
>
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

2021-06-08 Thread 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 


Reviewed-by: Christian König  but Felix should 
probably take a look as well.



---
  .../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_tdomain;
-   boolwait;
-};
-
  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,
-   );
+   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(, pd);
+   ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
if (ret) {
pr_err("failed to validate PD\n");
return ret;
--
2.31.1



___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

2021-06-08 Thread 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 
---
 .../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_tdomain;
-   boolwait;
-};
-
 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,
-   );
+   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(, pd);
+   ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
if (ret) {
pr_err("failed to validate PD\n");
return ret;
--
2.31.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx