[PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)
Zhang, Jerry (Junwei)
Jerry.Zhang at amd.com
Tue Jun 5 08:23:39 UTC 2018
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 at 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 at amd.com>
>>> Signed-off-by: Junwei Zhang <Jerry.Zhang at 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);
>>
>
More information about the amd-gfx
mailing list