mirror of https://gitee.com/openkylin/linux.git
drm/amdgpu: use sched fence if possible
when preemption feature lands, the SA bo should rely on sched fence, because hw fence will be invalid after its job preempted or skipped. Signed-off-by: Monk Liu <Monk.Liu@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
73cfa5f5ce
commit
676d8c24f3
|
@ -70,9 +70,12 @@ int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size,
|
||||||
void amdgpu_job_free(struct amdgpu_job *job)
|
void amdgpu_job_free(struct amdgpu_job *job)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
struct fence *f;
|
||||||
|
/* use sched fence if available */
|
||||||
|
f = (job->base.s_fence)? &job->base.s_fence->base : job->fence;
|
||||||
|
|
||||||
for (i = 0; i < job->num_ibs; ++i)
|
for (i = 0; i < job->num_ibs; ++i)
|
||||||
amdgpu_sa_bo_free(job->adev, &job->ibs[i].sa_bo, job->fence);
|
amdgpu_sa_bo_free(job->adev, &job->ibs[i].sa_bo, f);
|
||||||
fence_put(job->fence);
|
fence_put(job->fence);
|
||||||
|
|
||||||
amdgpu_bo_unref(&job->uf.bo);
|
amdgpu_bo_unref(&job->uf.bo);
|
||||||
|
|
Loading…
Reference in New Issue