All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)
@ 2018-06-05  8:09 Junwei Zhang
       [not found] ` <1528186178-15257-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Junwei Zhang @ 2018-06-05  8:09 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: Junwei Zhang, Christian König, christian.koenig-5C7GfCeVMHo

From: Christian König <ckoenig.leichtzumerken@gmail.com>

(comments: I cannot receive amdgfx mail recently and reply the mail directly,
so send it out with my update v2, tested with Unigine Heaven, glmark2, gputest,
some cases from vulkan PRT test) 

v2: store bo_va as well

We need to put the lose ends on the invalid list because it is possible
that we need to split up huge pages for them.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 850cd66..cc9d486 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -2172,7 +2172,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
 			before->last = saddr - 1;
 			before->offset = tmp->offset;
 			before->flags = tmp->flags;
-			list_add(&before->list, &tmp->list);
+			before->bo_va = tmp->bo_va;
+			list_add(&before->list, &tmp->bo_va->invalids);
 		}
 
 		/* Remember mapping split at the end */
@@ -2182,7 +2183,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
 			after->offset = tmp->offset;
 			after->offset += after->start - tmp->start;
 			after->flags = tmp->flags;
-			list_add(&after->list, &tmp->list);
+			after->bo_va = tmp->bo_va;
+			list_add(&after->list, &tmp->bo_va->invalids);
 		}
 
 		list_del(&tmp->list);
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)
       [not found] ` <1528186178-15257-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
@ 2018-06-05  8:14   ` Christian König
       [not found]     ` <55e7af64-9289-a7be-cd61-9b48f25593f0-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Christian König @ 2018-06-05  8:14 UTC (permalink / raw)
  To: Junwei Zhang, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	Zhou, David(ChunMing)
  Cc: Christian König

Am 05.06.2018 um 10:09 schrieb Junwei Zhang:
> From: Christian König <ckoenig.leichtzumerken@gmail.com>
>
> (comments: I cannot receive amdgfx mail recently and reply the mail directly,
> so send it out with my update v2, tested with Unigine Heaven, glmark2, gputest,
> some cases from vulkan PRT test)
>
> v2: store bo_va as well
>
> We need to put the lose ends on the invalid list because it is possible
> that we need to split up huge pages for them.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>

Good catch that assigning the bo_va is also missing. David can you take 
a look and give a review?

Since I'm a co-author I can't do it myself.

Thanks,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 850cd66..cc9d486 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2172,7 +2172,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
>   			before->last = saddr - 1;
>   			before->offset = tmp->offset;
>   			before->flags = tmp->flags;
> -			list_add(&before->list, &tmp->list);
> +			before->bo_va = tmp->bo_va;
> +			list_add(&before->list, &tmp->bo_va->invalids);
>   		}
>   
>   		/* Remember mapping split at the end */
> @@ -2182,7 +2183,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
>   			after->offset = tmp->offset;
>   			after->offset += after->start - tmp->start;
>   			after->flags = tmp->flags;
> -			list_add(&after->list, &tmp->list);
> +			after->bo_va = tmp->bo_va;
> +			list_add(&after->list, &tmp->bo_va->invalids);
>   		}
>   
>   		list_del(&tmp->list);

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)
       [not found]     ` <55e7af64-9289-a7be-cd61-9b48f25593f0-5C7GfCeVMHo@public.gmane.org>
@ 2018-06-05  8:20       ` zhoucm1
       [not found]         ` <988ffafd-f335-c6ed-14fc-da91211c306d-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: zhoucm1 @ 2018-06-05  8:20 UTC (permalink / raw)
  To: Christian König, Junwei Zhang,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Zhou, David(ChunMing)
  Cc: Christian König



On 2018年06月05日 16:14, Christian König wrote:
> Am 05.06.2018 um 10:09 schrieb Junwei Zhang:
>> From: Christian König <ckoenig.leichtzumerken@gmail.com>
>>
>> (comments: I cannot receive amdgfx mail recently and reply the mail 
>> directly,
>> so send it out with my update v2, tested with Unigine Heaven, 
>> glmark2, gputest,
>> some cases from vulkan PRT test)
>>
>> v2: store bo_va as well
>>
>> We need to put the lose ends on the invalid list because it is possible
>> that we need to split up huge pages for them.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
>
> Good catch that assigning the bo_va is also missing. David can you 
> take a look and give a review?
Feel free add my RB on it, it looks very good.

Regards,
David Zhou
>
> Since I'm a co-author I can't do it myself.
>
> Thanks,
> Christian.
>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index 850cd66..cc9d486 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -2172,7 +2172,8 @@ int amdgpu_vm_bo_clear_mappings(struct 
>> amdgpu_device *adev,
>>               before->last = saddr - 1;
>>               before->offset = tmp->offset;
>>               before->flags = tmp->flags;
>> -            list_add(&before->list, &tmp->list);
>> +            before->bo_va = tmp->bo_va;
>> +            list_add(&before->list, &tmp->bo_va->invalids);
>>           }
>>             /* Remember mapping split at the end */
>> @@ -2182,7 +2183,8 @@ int amdgpu_vm_bo_clear_mappings(struct 
>> amdgpu_device *adev,
>>               after->offset = tmp->offset;
>>               after->offset += after->start - tmp->start;
>>               after->flags = tmp->flags;
>> -            list_add(&after->list, &tmp->list);
>> +            after->bo_va = tmp->bo_va;
>> +            list_add(&after->list, &tmp->bo_va->invalids);
>>           }
>>             list_del(&tmp->list);
>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)
       [not found]         ` <988ffafd-f335-c6ed-14fc-da91211c306d-5C7GfCeVMHo@public.gmane.org>
@ 2018-06-05  8:23           ` Zhang, Jerry (Junwei)
  0 siblings, 0 replies; 4+ messages in thread
From: Zhang, Jerry (Junwei) @ 2018-06-05  8:23 UTC (permalink / raw)
  To: zhoucm1, Christian König,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Zhou, David(ChunMing)
  Cc: Christian König

On 06/05/2018 04:20 PM, zhoucm1 wrote:
>
>
> On 2018年06月05日 16:14, Christian König wrote:
>> Am 05.06.2018 um 10:09 schrieb Junwei Zhang:
>>> From: Christian König <ckoenig.leichtzumerken@gmail.com>
>>>
>>> (comments: I cannot receive amdgfx mail recently and reply the mail directly,
>>> so send it out with my update v2, tested with Unigine Heaven, glmark2, gputest,
>>> some cases from vulkan PRT test)
>>>
>>> v2: store bo_va as well
>>>
>>> We need to put the lose ends on the invalid list because it is possible
>>> that we need to split up huge pages for them.
>>>
>>> Signed-off-by: Christian König <christian.koenig@amd.com>
>>> Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
>>
>> Good catch that assigning the bo_va is also missing. David can you take a look
>> and give a review?
> Feel free add my RB on it, it looks very good.

Thanks you all.
I will apply the patch.

Jerry

>
> Regards,
> David Zhou
>>
>> Since I'm a co-author I can't do it myself.
>>
>> Thanks,
>> Christian.
>>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
>>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> index 850cd66..cc9d486 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>> @@ -2172,7 +2172,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device
>>> *adev,
>>>               before->last = saddr - 1;
>>>               before->offset = tmp->offset;
>>>               before->flags = tmp->flags;
>>> -            list_add(&before->list, &tmp->list);
>>> +            before->bo_va = tmp->bo_va;
>>> +            list_add(&before->list, &tmp->bo_va->invalids);
>>>           }
>>>             /* Remember mapping split at the end */
>>> @@ -2182,7 +2183,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device
>>> *adev,
>>>               after->offset = tmp->offset;
>>>               after->offset += after->start - tmp->start;
>>>               after->flags = tmp->flags;
>>> -            list_add(&after->list, &tmp->list);
>>> +            after->bo_va = tmp->bo_va;
>>> +            list_add(&after->list, &tmp->bo_va->invalids);
>>>           }
>>>             list_del(&tmp->list);
>>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-05  8:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-05  8:09 [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2) Junwei Zhang
     [not found] ` <1528186178-15257-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
2018-06-05  8:14   ` Christian König
     [not found]     ` <55e7af64-9289-a7be-cd61-9b48f25593f0-5C7GfCeVMHo@public.gmane.org>
2018-06-05  8:20       ` zhoucm1
     [not found]         ` <988ffafd-f335-c6ed-14fc-da91211c306d-5C7GfCeVMHo@public.gmane.org>
2018-06-05  8:23           ` Zhang, Jerry (Junwei)

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.