On Thu, 18 Mar 2021 at 08:49, Christian König christian.koenig@amd.com wrote:
Am 17.03.21 um 17:08 schrieb Daniel Gomez:
If userptr pages have been pinned but not bounded, they remain uncleared.
Signed-off-by: Daniel Gomez daniel@qtec.com
Good catch, not sure if that can ever happen in practice but better save than sorry.
Thanks! We actually had a case with clEnqueueWriteBuffer where the driver was leaking. I can see the problem also affects to the radeon driver so, I'll send a patch for that one as well.
Reviewed-by: Christian König christian.koenig@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 9fd2157b133a..50c2b4827c13 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -1162,13 +1162,13 @@ static void amdgpu_ttm_backend_unbind(struct ttm_bo_device *bdev, struct amdgpu_ttm_tt *gtt = (void *)ttm; int r;
if (!gtt->bound)
return;
/* if the pages have userptr pinning then clear that first */ if (gtt->userptr) amdgpu_ttm_tt_unpin_userptr(bdev, ttm);
if (!gtt->bound)
return;
if (gtt->offset == AMDGPU_BO_INVALID_OFFSET) return;