aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
diff options
context:
space:
mode:
authorGravatar Christian König <christian.koenig@amd.com> 2022-09-29 14:04:01 +0200
committerGravatar Christian König <christian.koenig@amd.com> 2022-11-03 12:45:20 +0100
commit1728baa7e4e60054bf13dd9b1212d133cbd53b3f (patch)
tree9f1d480c5655e67c3a19c7d2dbd3eb55ad5f4d20 /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
parentdrm/amdgpu: use scheduler dependencies for UVD msgs (diff)
downloadlinux-1728baa7e4e60054bf13dd9b1212d133cbd53b3f.tar.gz
linux-1728baa7e4e60054bf13dd9b1212d133cbd53b3f.tar.bz2
linux-1728baa7e4e60054bf13dd9b1212d133cbd53b3f.zip
drm/amdgpu: use scheduler dependencies for CS
Entirely remove the sync obj in the job. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Luben Tuikov <luben.tuikov@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20221014084641.128280-11-christian.koenig@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 6c126797d6a4..16f7bcc9c654 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -107,7 +107,6 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, struct amdgpu_vm *vm,
(*job)->base.sched = &adev->rings[0]->sched;
(*job)->vm = vm;
- amdgpu_sync_create(&(*job)->sync);
amdgpu_sync_create(&(*job)->explicit_sync);
(*job)->vram_lost_counter = atomic_read(&adev->vram_lost_counter);
(*job)->vm_pd_addr = AMDGPU_BO_INVALID_OFFSET;
@@ -175,9 +174,7 @@ static void amdgpu_job_free_cb(struct drm_sched_job *s_job)
drm_sched_job_cleanup(s_job);
- amdgpu_sync_free(&job->sync);
amdgpu_sync_free(&job->explicit_sync);
-
dma_fence_put(&job->hw_fence);
}
@@ -203,7 +200,6 @@ void amdgpu_job_free(struct amdgpu_job *job)
drm_sched_job_cleanup(&job->base);
amdgpu_job_free_resources(job);
- amdgpu_sync_free(&job->sync);
amdgpu_sync_free(&job->explicit_sync);
if (job->gang_submit != &job->base.s_fence->scheduled)
dma_fence_put(job->gang_submit);
@@ -247,10 +243,9 @@ amdgpu_job_dependency(struct drm_sched_job *sched_job,
{
struct amdgpu_ring *ring = to_amdgpu_ring(s_entity->rq->sched);
struct amdgpu_job *job = to_amdgpu_job(sched_job);
- struct dma_fence *fence;
+ struct dma_fence *fence = NULL;
int r;
- fence = amdgpu_sync_get_fence(&job->sync);
while (!fence && job->vm && !job->vmid) {
r = amdgpu_vmid_grab(job->vm, ring, job, &fence);
if (r)
@@ -274,8 +269,6 @@ static struct dma_fence *amdgpu_job_run(struct drm_sched_job *sched_job)
job = to_amdgpu_job(sched_job);
finished = &job->base.s_fence->finished;
- BUG_ON(amdgpu_sync_peek_fence(&job->sync, NULL));
-
trace_amdgpu_sched_run_job(job);
/* Skip job if VRAM is lost and never resubmit gangs */