winsys/amdgpu: optimize slab allocation for 2 MB amdgpu page tables
authorMarek Olšák <marek.olsak@amd.com>
Wed, 21 Nov 2018 07:15:11 +0000 (02:15 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 29 Nov 2018 01:20:27 +0000 (20:20 -0500)
commit5f9ccf827e0aaff3c8571b3d226e33d6e98d4a6f
tree4273c3a821ef14750f8eb4949fa165ca51dafe9b
parentcf6835485cd57173b002186a8b3f51239e59e431
winsys/amdgpu: optimize slab allocation for 2 MB amdgpu page tables

- the slab buffer size increased from 128 KB to 2 MB (PTE fragment size)
- the max suballocated buffer size increased from 64 KB to 256 KB,
  this increases memory usage because it wastes memory
- the number of suballocators increased from 1 to 3 and they are layered
  on top of each other to minimize unused space in slabs

The final increase in memory usage is:
  DeusEx:MD:  1.8%
  DOTA 2:     1.75%
  DiRT Rally: 0.2%

The kernel driver will also receive fewer buffers.
src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
src/gallium/winsys/amdgpu/drm/amdgpu_winsys.h