The IMMEDIATE (page fault) and DIRECT (reset) pool should be used only
very rarely and by a single thread.

Saves roughly 1.25MiB of memory and GART space for each amdgpu device.

Signed-off-by: Christian König <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c   | 8 +++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 --
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index f1ed4a436f5b..334f95f8f339 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -351,14 +351,20 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned 
int num_ibs,
  */
 int amdgpu_ib_pool_init(struct amdgpu_device *adev)
 {
+       const int sizes[AMDGPU_IB_POOL_MAX] = {
+               [AMDGPU_IB_POOL_DELAYED] = SZ_1M,
+               [AMDGPU_IB_POOL_IMMEDIATE] = SZ_128K,
+               [AMDGPU_IB_POOL_DIRECT] = SZ_512K
+       };
        int r, i;
 
        if (adev->ib_pool_ready)
                return 0;
 
+
        for (i = 0; i < AMDGPU_IB_POOL_MAX; i++) {
                r = amdgpu_sa_bo_manager_init(adev, &adev->ib_pools[i],
-                                             AMDGPU_IB_POOL_SIZE, 256,
+                                             sizes[i], 256,
                                              AMDGPU_GEM_DOMAIN_GTT);
                if (r)
                        goto error;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
index 8f28b3bd7010..1a063a0a4280 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
@@ -68,8 +68,6 @@ enum amdgpu_ring_priority_level {
 
 #define to_amdgpu_ring(s) container_of((s), struct amdgpu_ring, sched)
 
-#define AMDGPU_IB_POOL_SIZE    (1024 * 1024)
-
 enum amdgpu_ring_type {
        AMDGPU_RING_TYPE_GFX            = AMDGPU_HW_IP_GFX,
        AMDGPU_RING_TYPE_COMPUTE        = AMDGPU_HW_IP_COMPUTE,
-- 
2.43.0

Reply via email to