A lot of the workloads create jobs with just one to two IBs, and if we re-order some struct members and shrink some others we can stop those allocations spilling into the 1k SLAB bucket. Before: sizeof(struct amdgpu_job) + 2 * sizeof(struct amdgpu_ib) = 480 + 80 = 560 After: sizeof(struct amdgpu_job) + 2 * sizeof(struct amdgpu_ib) = 448 + 64 = 512 It is not a huge gain in the big picture but every little helps. Tvrtko Ursulin (3): drm/amdgpu: Remove hole from struct amdgpu_ib drm/amdgpu: Reduce holes in struct amdgpu_job drm/amdgpu: Shrink struct amdgpu_job further drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 19 ++++++---- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 7 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 29 ++++++++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 6 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 41 ++++++++++----------- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 17 +++++---- 12 files changed, 75 insertions(+), 58 deletions(-) -- 2.48.0