* [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
@ 2022-06-13 7:59 Lang Yu
2022-06-13 8:03 ` Christian König
0 siblings, 1 reply; 6+ messages in thread
From: Lang Yu @ 2022-06-13 7:59 UTC (permalink / raw)
To: amd-gfx
Cc: Alex Deucher, Felix Kuehling, Huang Rui, Lang Yu, Christian Koenig
We don't need to validate and map root PD specially here,
it would be validated and mapped by amdgpu_vm_validate_pt_bos
if it is evicted.
The special case is when turning a GFX VM to a compute VM,
if vm_update_mode changed, we need to map the root PD again.
So just move root PD mapping to amdgpu_vm_make_compute.
v2:
- Don't rename vm_validate_pt_pd_bos and make it public.
Signed-off-by: Lang Yu <Lang.Yu@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
2 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 6a3bd8b9a08f..3805eef9ab69 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
return ret;
}
- ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
- if (ret) {
- pr_err("failed to validate PD\n");
- return ret;
- }
-
vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
- if (vm->use_cpu_for_update) {
- ret = amdgpu_bo_kmap(pd, NULL);
- if (ret) {
- pr_err("failed to kmap PD, ret=%d\n", ret);
- return ret;
- }
- }
-
return 0;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 703552f9a6d7..08fda57f5aa2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
} else {
vm->update_funcs = &amdgpu_vm_sdma_funcs;
}
+
+ r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
+ if (r)
+ goto unreserve_bo;
+
dma_fence_put(vm->last_update);
vm->last_update = NULL;
vm->is_compute_context = true;
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
2022-06-13 7:59 [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos Lang Yu
@ 2022-06-13 8:03 ` Christian König
2022-06-13 8:26 ` Lang Yu
0 siblings, 1 reply; 6+ messages in thread
From: Christian König @ 2022-06-13 8:03 UTC (permalink / raw)
To: Lang Yu, amd-gfx; +Cc: Alex Deucher, Felix Kuehling, Huang Rui
Am 13.06.22 um 09:59 schrieb Lang Yu:
> We don't need to validate and map root PD specially here,
> it would be validated and mapped by amdgpu_vm_validate_pt_bos
> if it is evicted.
I'm not sure if that's correct. Traditionally we have handled the root
PD differently to the rest in the VM.
It doesn't make much sense any more today, but I need to double check if
that isn't still the case.
Christian.
>
> The special case is when turning a GFX VM to a compute VM,
> if vm_update_mode changed, we need to map the root PD again.
> So just move root PD mapping to amdgpu_vm_make_compute.
>
> v2:
> - Don't rename vm_validate_pt_pd_bos and make it public.
>
> Signed-off-by: Lang Yu <Lang.Yu@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
> 2 files changed, 5 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> index 6a3bd8b9a08f..3805eef9ab69 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> @@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
> return ret;
> }
>
> - ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
> - if (ret) {
> - pr_err("failed to validate PD\n");
> - return ret;
> - }
> -
> vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
>
> - if (vm->use_cpu_for_update) {
> - ret = amdgpu_bo_kmap(pd, NULL);
> - if (ret) {
> - pr_err("failed to kmap PD, ret=%d\n", ret);
> - return ret;
> - }
> - }
> -
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 703552f9a6d7..08fda57f5aa2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
> } else {
> vm->update_funcs = &amdgpu_vm_sdma_funcs;
> }
> +
> + r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
> + if (r)
> + goto unreserve_bo;
> +
> dma_fence_put(vm->last_update);
> vm->last_update = NULL;
> vm->is_compute_context = true;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
2022-06-13 8:03 ` Christian König
@ 2022-06-13 8:26 ` Lang Yu
2022-06-13 8:30 ` Christian König
0 siblings, 1 reply; 6+ messages in thread
From: Lang Yu @ 2022-06-13 8:26 UTC (permalink / raw)
To: Christian König; +Cc: Alex Deucher, Felix Kuehling, Huang Rui, amd-gfx
On 06/13/ , Christian König wrote:
> Am 13.06.22 um 09:59 schrieb Lang Yu:
> > We don't need to validate and map root PD specially here,
> > it would be validated and mapped by amdgpu_vm_validate_pt_bos
> > if it is evicted.
>
> I'm not sure if that's correct. Traditionally we have handled the root PD
> differently to the rest in the VM.
>
> It doesn't make much sense any more today, but I need to double check if
> that isn't still the case.
From my observations, if root PD is evicted. amdgpu_vm_validate_pt_bos
will validate and map it.
And amdgpu_cs_list_validate always validates root PD after
amdgpu_vm_validate_pt_bos has done that, it is actually unnecessary.
Do you think it's worth skiping root PD validation in
amdgpu_cs_list_validate? Thanks!
Regards,
Lang
> Christian.
>
> >
> > The special case is when turning a GFX VM to a compute VM,
> > if vm_update_mode changed, we need to map the root PD again.
> > So just move root PD mapping to amdgpu_vm_make_compute.
> >
> > v2:
> > - Don't rename vm_validate_pt_pd_bos and make it public.
> >
> > Signed-off-by: Lang Yu <Lang.Yu@amd.com>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
> > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
> > 2 files changed, 5 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > index 6a3bd8b9a08f..3805eef9ab69 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > @@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
> > return ret;
> > }
> > - ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
> > - if (ret) {
> > - pr_err("failed to validate PD\n");
> > - return ret;
> > - }
> > -
> > vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
> > - if (vm->use_cpu_for_update) {
> > - ret = amdgpu_bo_kmap(pd, NULL);
> > - if (ret) {
> > - pr_err("failed to kmap PD, ret=%d\n", ret);
> > - return ret;
> > - }
> > - }
> > -
> > return 0;
> > }
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > index 703552f9a6d7..08fda57f5aa2 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > @@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
> > } else {
> > vm->update_funcs = &amdgpu_vm_sdma_funcs;
> > }
> > +
> > + r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
> > + if (r)
> > + goto unreserve_bo;
> > +
> > dma_fence_put(vm->last_update);
> > vm->last_update = NULL;
> > vm->is_compute_context = true;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
2022-06-13 8:26 ` Lang Yu
@ 2022-06-13 8:30 ` Christian König
2022-06-13 8:41 ` Lang Yu
0 siblings, 1 reply; 6+ messages in thread
From: Christian König @ 2022-06-13 8:30 UTC (permalink / raw)
To: Lang Yu, Christian König
Cc: Alex Deucher, Felix Kuehling, Huang Rui, amd-gfx
Am 13.06.22 um 10:26 schrieb Lang Yu:
> On 06/13/ , Christian König wrote:
>> Am 13.06.22 um 09:59 schrieb Lang Yu:
>>> We don't need to validate and map root PD specially here,
>>> it would be validated and mapped by amdgpu_vm_validate_pt_bos
>>> if it is evicted.
>> I'm not sure if that's correct. Traditionally we have handled the root PD
>> differently to the rest in the VM.
>>
>> It doesn't make much sense any more today, but I need to double check if
>> that isn't still the case.
> From my observations, if root PD is evicted. amdgpu_vm_validate_pt_bos
> will validate and map it.
>
> And amdgpu_cs_list_validate always validates root PD after
> amdgpu_vm_validate_pt_bos has done that, it is actually unnecessary.
> Do you think it's worth skiping root PD validation in
> amdgpu_cs_list_validate? Thanks!
No, it's just your change is completely irrelevant and just complicates
things.
Validating a BO twice should have basically no overhead at all.
And especially adding the manual call to map_table() in
amdgpu_vm_make_compute() is a no-go. We don't want such specific
handling for compute contexts.
Regards,
Christian.
>
> Regards,
> Lang
>
>
>> Christian.
>>
>>> The special case is when turning a GFX VM to a compute VM,
>>> if vm_update_mode changed, we need to map the root PD again.
>>> So just move root PD mapping to amdgpu_vm_make_compute.
>>>
>>> v2:
>>> - Don't rename vm_validate_pt_pd_bos and make it public.
>>>
>>> Signed-off-by: Lang Yu <Lang.Yu@amd.com>
>>> ---
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
>>> 2 files changed, 5 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>> index 6a3bd8b9a08f..3805eef9ab69 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>> @@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
>>> return ret;
>>> }
>>> - ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
>>> - if (ret) {
>>> - pr_err("failed to validate PD\n");
>>> - return ret;
>>> - }
>>> -
>>> vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
>>> - if (vm->use_cpu_for_update) {
>>> - ret = amdgpu_bo_kmap(pd, NULL);
>>> - if (ret) {
>>> - pr_err("failed to kmap PD, ret=%d\n", ret);
>>> - return ret;
>>> - }
>>> - }
>>> -
>>> return 0;
>>> }
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> index 703552f9a6d7..08fda57f5aa2 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> @@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
>>> } else {
>>> vm->update_funcs = &amdgpu_vm_sdma_funcs;
>>> }
>>> +
>>> + r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
>>> + if (r)
>>> + goto unreserve_bo;
>>> +
>>> dma_fence_put(vm->last_update);
>>> vm->last_update = NULL;
>>> vm->is_compute_context = true;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
2022-06-13 8:30 ` Christian König
@ 2022-06-13 8:41 ` Lang Yu
2022-06-13 8:50 ` Christian König
0 siblings, 1 reply; 6+ messages in thread
From: Lang Yu @ 2022-06-13 8:41 UTC (permalink / raw)
To: Christian König
Cc: Alex Deucher, Felix Kuehling, Huang Rui, Christian König, amd-gfx
On 06/13/ , Christian König wrote:
> Am 13.06.22 um 10:26 schrieb Lang Yu:
> > On 06/13/ , Christian König wrote:
> > > Am 13.06.22 um 09:59 schrieb Lang Yu:
> > > > We don't need to validate and map root PD specially here,
> > > > it would be validated and mapped by amdgpu_vm_validate_pt_bos
> > > > if it is evicted.
> > > I'm not sure if that's correct. Traditionally we have handled the root PD
> > > differently to the rest in the VM.
> > >
> > > It doesn't make much sense any more today, but I need to double check if
> > > that isn't still the case.
> > From my observations, if root PD is evicted. amdgpu_vm_validate_pt_bos
> > will validate and map it.
> >
> > And amdgpu_cs_list_validate always validates root PD after
> > amdgpu_vm_validate_pt_bos has done that, it is actually unnecessary.
> > Do you think it's worth skiping root PD validation in
> > amdgpu_cs_list_validate? Thanks!
>
> No, it's just your change is completely irrelevant and just complicates
> things.
>
> Validating a BO twice should have basically no overhead at all.
>
> And especially adding the manual call to map_table() in
> amdgpu_vm_make_compute() is a no-go. We don't want such specific handling
> for compute contexts.
That's because when turning a GFX VM to a compute VM, if vm_update_mode changed,
we need to map the root PD again.
If we always validate and map it in vm_validate_pt_pd_bos, that's so confused.
Regards,
Lang
> Regards,
> Christian.
>
> >
> > Regards,
> > Lang
> >
> >
> > > Christian.
> > >
> > > > The special case is when turning a GFX VM to a compute VM,
> > > > if vm_update_mode changed, we need to map the root PD again.
> > > > So just move root PD mapping to amdgpu_vm_make_compute.
> > > >
> > > > v2:
> > > > - Don't rename vm_validate_pt_pd_bos and make it public.
> > > >
> > > > Signed-off-by: Lang Yu <Lang.Yu@amd.com>
> > > > ---
> > > > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
> > > > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
> > > > 2 files changed, 5 insertions(+), 14 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > > > index 6a3bd8b9a08f..3805eef9ab69 100644
> > > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> > > > @@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
> > > > return ret;
> > > > }
> > > > - ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
> > > > - if (ret) {
> > > > - pr_err("failed to validate PD\n");
> > > > - return ret;
> > > > - }
> > > > -
> > > > vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
> > > > - if (vm->use_cpu_for_update) {
> > > > - ret = amdgpu_bo_kmap(pd, NULL);
> > > > - if (ret) {
> > > > - pr_err("failed to kmap PD, ret=%d\n", ret);
> > > > - return ret;
> > > > - }
> > > > - }
> > > > -
> > > > return 0;
> > > > }
> > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > > > index 703552f9a6d7..08fda57f5aa2 100644
> > > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > > > @@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
> > > > } else {
> > > > vm->update_funcs = &amdgpu_vm_sdma_funcs;
> > > > }
> > > > +
> > > > + r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
> > > > + if (r)
> > > > + goto unreserve_bo;
> > > > +
> > > > dma_fence_put(vm->last_update);
> > > > vm->last_update = NULL;
> > > > vm->is_compute_context = true;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos
2022-06-13 8:41 ` Lang Yu
@ 2022-06-13 8:50 ` Christian König
0 siblings, 0 replies; 6+ messages in thread
From: Christian König @ 2022-06-13 8:50 UTC (permalink / raw)
To: Lang Yu
Cc: Alex Deucher, Felix Kuehling, Huang Rui, Christian König, amd-gfx
Am 13.06.22 um 10:41 schrieb Lang Yu:
> On 06/13/ , Christian König wrote:
>> Am 13.06.22 um 10:26 schrieb Lang Yu:
>>> On 06/13/ , Christian König wrote:
>>>> Am 13.06.22 um 09:59 schrieb Lang Yu:
>>>>> We don't need to validate and map root PD specially here,
>>>>> it would be validated and mapped by amdgpu_vm_validate_pt_bos
>>>>> if it is evicted.
>>>> I'm not sure if that's correct. Traditionally we have handled the root PD
>>>> differently to the rest in the VM.
>>>>
>>>> It doesn't make much sense any more today, but I need to double check if
>>>> that isn't still the case.
>>> From my observations, if root PD is evicted. amdgpu_vm_validate_pt_bos
>>> will validate and map it.
>>>
>>> And amdgpu_cs_list_validate always validates root PD after
>>> amdgpu_vm_validate_pt_bos has done that, it is actually unnecessary.
>>> Do you think it's worth skiping root PD validation in
>>> amdgpu_cs_list_validate? Thanks!
>> No, it's just your change is completely irrelevant and just complicates
>> things.
>>
>> Validating a BO twice should have basically no overhead at all.
>>
>> And especially adding the manual call to map_table() in
>> amdgpu_vm_make_compute() is a no-go. We don't want such specific handling
>> for compute contexts.
> That's because when turning a GFX VM to a compute VM, if vm_update_mode changed,
> we need to map the root PD again.
Ah, ok that sounds valid. But please add a comment explaining this.
> If we always validate and map it in vm_validate_pt_pd_bos, that's so confused.
It's indeed not really clean, we shouldn't leak requirements like this
outside of the VM code.
Regards,
Christian.
>
> Regards,
> Lang
>
>> Regards,
>> Christian.
>>
>>> Regards,
>>> Lang
>>>
>>>
>>>> Christian.
>>>>
>>>>> The special case is when turning a GFX VM to a compute VM,
>>>>> if vm_update_mode changed, we need to map the root PD again.
>>>>> So just move root PD mapping to amdgpu_vm_make_compute.
>>>>>
>>>>> v2:
>>>>> - Don't rename vm_validate_pt_pd_bos and make it public.
>>>>>
>>>>> Signed-off-by: Lang Yu <Lang.Yu@amd.com>
>>>>> ---
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 --------------
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
>>>>> 2 files changed, 5 insertions(+), 14 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>>>> index 6a3bd8b9a08f..3805eef9ab69 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>>>>> @@ -425,22 +425,8 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
>>>>> return ret;
>>>>> }
>>>>> - ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
>>>>> - if (ret) {
>>>>> - pr_err("failed to validate PD\n");
>>>>> - return ret;
>>>>> - }
>>>>> -
>>>>> vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
>>>>> - if (vm->use_cpu_for_update) {
>>>>> - ret = amdgpu_bo_kmap(pd, NULL);
>>>>> - if (ret) {
>>>>> - pr_err("failed to kmap PD, ret=%d\n", ret);
>>>>> - return ret;
>>>>> - }
>>>>> - }
>>>>> -
>>>>> return 0;
>>>>> }
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>>> index 703552f9a6d7..08fda57f5aa2 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>>> @@ -2225,6 +2225,11 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
>>>>> } else {
>>>>> vm->update_funcs = &amdgpu_vm_sdma_funcs;
>>>>> }
>>>>> +
>>>>> + r = vm->update_funcs->map_table(to_amdgpu_bo_vm(vm->root.bo));
>>>>> + if (r)
>>>>> + goto unreserve_bo;
>>>>> +
>>>>> dma_fence_put(vm->last_update);
>>>>> vm->last_update = NULL;
>>>>> vm->is_compute_context = true;
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-06-13 8:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-13 7:59 [PATCH v2] drm/amdkfd: simplify vm_validate_pt_pd_bos Lang Yu
2022-06-13 8:03 ` Christian König
2022-06-13 8:26 ` Lang Yu
2022-06-13 8:30 ` Christian König
2022-06-13 8:41 ` Lang Yu
2022-06-13 8:50 ` Christian König
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.