diff options
author | Christian König <christian.koenig@amd.com> | 2016-06-29 09:10:31 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-07-07 15:06:10 -0400 |
commit | a5fb4ec29c74a16ce1c269e52bc85ca86ee41e81 (patch) | |
tree | 108330ce5b0181d0cef561187daf7894297bf7f8 | |
parent | a79a5bdcefc4d283b58eef46804c43c88789dd1f (diff) |
drm/amdgpu: earlier free SA resources
Keep the time we don't have a fence associated with the resource smaller.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 4 |
3 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 4fc879e594aa..9f70546594a8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -760,6 +760,7 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, unsigned num_ibs, | |||
760 | int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size, | 760 | int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size, |
761 | struct amdgpu_job **job); | 761 | struct amdgpu_job **job); |
762 | 762 | ||
763 | void amdgpu_job_free_resources(struct amdgpu_job *job); | ||
763 | void amdgpu_job_free(struct amdgpu_job *job); | 764 | void amdgpu_job_free(struct amdgpu_job *job); |
764 | int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, | 765 | int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, |
765 | struct amd_sched_entity *entity, void *owner, | 766 | struct amd_sched_entity *entity, void *owner, |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 475c95f670f8..0db32e3b13c0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -855,6 +855,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, | |||
855 | p->fence = fence_get(fence); | 855 | p->fence = fence_get(fence); |
856 | cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence); | 856 | cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence); |
857 | job->uf_sequence = cs->out.handle; | 857 | job->uf_sequence = cs->out.handle; |
858 | amdgpu_job_free_resources(job); | ||
858 | 859 | ||
859 | trace_amdgpu_cs_ioctl(job); | 860 | trace_amdgpu_cs_ioctl(job); |
860 | amd_sched_entity_push_job(&job->base); | 861 | amd_sched_entity_push_job(&job->base); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 347962ea17ab..cdcfda6618d0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |||
@@ -79,7 +79,7 @@ int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size, | |||
79 | return r; | 79 | return r; |
80 | } | 80 | } |
81 | 81 | ||
82 | static void amdgpu_job_free_resources(struct amdgpu_job *job) | 82 | void amdgpu_job_free_resources(struct amdgpu_job *job) |
83 | { | 83 | { |
84 | struct fence *f; | 84 | struct fence *f; |
85 | unsigned i; | 85 | unsigned i; |
@@ -127,6 +127,7 @@ int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, | |||
127 | job->owner = owner; | 127 | job->owner = owner; |
128 | job->ctx = entity->fence_context; | 128 | job->ctx = entity->fence_context; |
129 | *f = fence_get(fence); | 129 | *f = fence_get(fence); |
130 | amdgpu_job_free_resources(job); | ||
130 | amd_sched_entity_push_job(&job->base); | 131 | amd_sched_entity_push_job(&job->base); |
131 | 132 | ||
132 | return 0; | 133 | return 0; |
@@ -179,7 +180,6 @@ static struct fence *amdgpu_job_run(struct amd_sched_job *sched_job) | |||
179 | 180 | ||
180 | err: | 181 | err: |
181 | job->fence = fence; | 182 | job->fence = fence; |
182 | amdgpu_job_free_resources(job); | ||
183 | return fence; | 183 | return fence; |
184 | } | 184 | } |
185 | 185 | ||