On Tue, Jan 19, 2016 at 8:03 AM, Christian König <deathsimple@xxxxxxxxxxx> wrote: > Am 19.01.2016 um 09:59 schrieb Michel Dänzer: >> >> From: Michel Dänzer <michel.daenzer@xxxxxxx> >> >> It can be big, depending on the VM address space size, which is tunable >> via the vm_size module parameter. >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93721 >> Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> > > > I actually wanted to address this by reducing sizeof(struct amdgpu_vm_pt), > but once more never got the time to do so. > > Patch is Reviewed-by: Christian König <christian.koenig@xxxxxxx> > Applied. Thanks, Alex > >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 +++---- >> 1 file changed, 3 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >> index aefc668..9599f75 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >> @@ -1282,7 +1282,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, >> struct amdgpu_vm *vm) >> { >> const unsigned align = min(AMDGPU_VM_PTB_ALIGN_SIZE, >> AMDGPU_VM_PTE_COUNT * 8); >> - unsigned pd_size, pd_entries, pts_size; >> + unsigned pd_size, pd_entries; >> int i, r; >> for (i = 0; i < AMDGPU_MAX_RINGS; ++i) { >> @@ -1300,8 +1300,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, >> struct amdgpu_vm *vm) >> pd_entries = amdgpu_vm_num_pdes(adev); >> /* allocate page table array */ >> - pts_size = pd_entries * sizeof(struct amdgpu_vm_pt); >> - vm->page_tables = kzalloc(pts_size, GFP_KERNEL); >> + vm->page_tables = drm_calloc_large(pd_entries, sizeof(struct >> amdgpu_vm_pt)); >> if (vm->page_tables == NULL) { >> DRM_ERROR("Cannot allocate memory for page table >> array\n"); >> return -ENOMEM; >> @@ -1361,7 +1360,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, >> struct amdgpu_vm *vm) >> for (i = 0; i < amdgpu_vm_num_pdes(adev); i++) >> amdgpu_bo_unref(&vm->page_tables[i].entry.robj); >> - kfree(vm->page_tables); >> + drm_free_large(vm->page_tables); >> amdgpu_bo_unref(&vm->page_directory); >> fence_put(vm->page_directory_fence); > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel