Message ID | 20210514064039.1300558-1-chenhuacai@loongson.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/amdgpu: Fix GPU TLB update error when PAGE_SIZE > AMDGPU_PAGE_SIZE | expand |
Applied. Thanks! Alex On Fri, May 14, 2021 at 3:18 AM Christian König <christian.koenig@amd.com> wrote: > > Am 14.05.21 um 08:40 schrieb Huacai Chen: > > From: Yi Li <liyi@loongson.cn> > > > > When PAGE_SIZE is larger than AMDGPU_PAGE_SIZE, the number of GPU TLB > > entries which need to update in amdgpu_map_buffer() should be multiplied > > by AMDGPU_GPU_PAGES_IN_CPU_PAGE (PAGE_SIZE / AMDGPU_PAGE_SIZE). > > > > Signed-off-by: Yi Li <liyi@loongson.cn> > > Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> > > Reviewed-by: Christian König <christian.koenig@amd.com> > > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > > index 3bef0432cac2..a376a993e474 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > > @@ -225,7 +225,7 @@ static int amdgpu_ttm_map_buffer(struct ttm_buffer_object *bo, > > *addr += mm_cur->start & ~PAGE_MASK; > > > > num_dw = ALIGN(adev->mman.buffer_funcs->copy_num_dw, 8); > > - num_bytes = num_pages * 8; > > + num_bytes = num_pages * 8 * AMDGPU_GPU_PAGES_IN_CPU_PAGE; > > > > r = amdgpu_job_alloc_with_ib(adev, num_dw * 4 + num_bytes, > > AMDGPU_IB_POOL_DELAYED, &job); > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 3bef0432cac2..a376a993e474 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -225,7 +225,7 @@ static int amdgpu_ttm_map_buffer(struct ttm_buffer_object *bo, *addr += mm_cur->start & ~PAGE_MASK; num_dw = ALIGN(adev->mman.buffer_funcs->copy_num_dw, 8); - num_bytes = num_pages * 8; + num_bytes = num_pages * 8 * AMDGPU_GPU_PAGES_IN_CPU_PAGE; r = amdgpu_job_alloc_with_ib(adev, num_dw * 4 + num_bytes, AMDGPU_IB_POOL_DELAYED, &job);