diff options
author | 2020-01-21 15:53:53 +0100 | |
---|---|---|
committer | 2020-01-30 17:15:42 -0500 | |
commit | 977f7e1068be60f3cac7d80ab18692341f3b7fc5 (patch) | |
tree | 8757fc2776958d486614e857d71e9c31b88a2e6f /drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | |
parent | drm/amdgpu: Enable DISABLE_BARRIER_WAITCNT for Arcturus (diff) | |
download | linux-977f7e1068be60f3cac7d80ab18692341f3b7fc5.tar.gz linux-977f7e1068be60f3cac7d80ab18692341f3b7fc5.tar.bz2 linux-977f7e1068be60f3cac7d80ab18692341f3b7fc5.zip |
drm/amdgpu: allocate entities on demand
Currently we pre-allocate entities and fences for all the HW IPs on
context creation and some of which are might never be used.
This patch tries to resolve entity/fences wastage by creating entity
only when needed.
v2: allocate memory for entity and fences together
Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h index a6cd9d4b078c..de490f183af2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h @@ -29,10 +29,12 @@ struct drm_device; struct drm_file; struct amdgpu_fpriv; +#define AMDGPU_MAX_ENTITY_NUM 4 + struct amdgpu_ctx_entity { uint64_t sequence; - struct dma_fence **fences; struct drm_sched_entity entity; + struct dma_fence *fences[]; }; struct amdgpu_ctx { @@ -42,7 +44,7 @@ struct amdgpu_ctx { unsigned reset_counter_query; uint32_t vram_lost_counter; spinlock_t ring_lock; - struct amdgpu_ctx_entity *entities[AMDGPU_HW_IP_NUM]; + struct amdgpu_ctx_entity *entities[AMDGPU_HW_IP_NUM][AMDGPU_MAX_ENTITY_NUM]; bool preamble_presented; enum drm_sched_priority init_priority; enum drm_sched_priority override_priority; |