Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)

2018-06-05 Thread Zhang, Jerry (Junwei)

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 

(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 
Signed-off-by: Junwei Zhang 


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(>list, >list);
+before->bo_va = tmp->bo_va;
+list_add(>list, >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(>list, >list);
+after->bo_va = tmp->bo_va;
+list_add(>list, >bo_va->invalids);
  }
list_del(>list);





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


Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)

2018-06-05 Thread zhoucm1



On 2018年06月05日 16:14, Christian König wrote:

Am 05.06.2018 um 10:09 schrieb Junwei Zhang:

From: Christian König 

(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 
Signed-off-by: Junwei Zhang 


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(>list, >list);
+    before->bo_va = tmp->bo_va;
+    list_add(>list, >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(>list, >list);
+    after->bo_va = tmp->bo_va;
+    list_add(>list, >bo_va->invalids);
  }
    list_del(>list);




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


Re: [PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)

2018-06-05 Thread Christian König

Am 05.06.2018 um 10:09 schrieb Junwei Zhang:

From: Christian König 

(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 
Signed-off-by: Junwei Zhang 


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(>list, >list);
+   before->bo_va = tmp->bo_va;
+   list_add(>list, >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(>list, >list);
+   after->bo_va = tmp->bo_va;
+   list_add(>list, >bo_va->invalids);
}
  
  		list_del(>list);


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


[PATCH] drm/amdgpu: fix clear_all and replace handling in the VM (v2)

2018-06-05 Thread Junwei Zhang
From: Christian König 

(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 
Signed-off-by: Junwei Zhang 
---
 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(>list, >list);
+   before->bo_va = tmp->bo_va;
+   list_add(>list, >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(>list, >list);
+   after->bo_va = tmp->bo_va;
+   list_add(>list, >bo_va->invalids);
}
 
list_del(>list);
-- 
1.9.1

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