All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/13] drm/scheduler: fix fence ref counting
@ 2022-09-29 13:21 Christian König
  2022-09-29 13:21 ` [PATCH 02/13] drm/scheduler: add drm_sched_job_add_resv_dependencies Christian König
                   ` (12 more replies)
  0 siblings, 13 replies; 22+ messages in thread
From: Christian König @ 2022-09-29 13:21 UTC (permalink / raw)
  To: dri-devel
  Cc: shansheng.wang, Christian König, luben.tuikov, WenChieh.Chien

We leaked dependency fences when processes were beeing killed.

Additional to that grab a reference to the last scheduled fence.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/scheduler/sched_entity.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
index 191c56064f19..1bb1437a8fed 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -207,6 +207,7 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,
 	struct drm_sched_job *job = container_of(cb, struct drm_sched_job,
 						 finish_cb);
 
+	dma_fence_put(f);
 	init_irq_work(&job->work, drm_sched_entity_kill_jobs_irq_work);
 	irq_work_queue(&job->work);
 }
@@ -234,8 +235,10 @@ static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)
 		struct drm_sched_fence *s_fence = job->s_fence;
 
 		/* Wait for all dependencies to avoid data corruptions */
-		while ((f = drm_sched_job_dependency(job, entity)))
+		while ((f = drm_sched_job_dependency(job, entity))) {
 			dma_fence_wait(f, false);
+			dma_fence_put(f);
+		}
 
 		drm_sched_fence_scheduled(s_fence);
 		dma_fence_set_error(&s_fence->finished, -ESRCH);
@@ -250,6 +253,7 @@ static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)
 			continue;
 		}
 
+		dma_fence_get(entity->last_scheduled);
 		r = dma_fence_add_callback(entity->last_scheduled,
 					   &job->finish_cb,
 					   drm_sched_entity_kill_jobs_cb);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread
* Fixes for scheduler hang when killing a process
@ 2022-10-14  8:46 Christian König
  2022-10-14  8:46 ` [PATCH 05/13] drm/amdgpu: drop amdgpu_sync from amdgpu_vmid_grab Christian König
  0 siblings, 1 reply; 22+ messages in thread
From: Christian König @ 2022-10-14  8:46 UTC (permalink / raw)
  To: luben.tuikov, dri-devel, amd-gfx

Hi guys,

rebased those patches on top of amd-staging-drm-next since the
amdgpu changes are quite substencial.

Please review and comment,
Christian.



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-10-24 10:55 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-29 13:21 [PATCH 01/13] drm/scheduler: fix fence ref counting Christian König
2022-09-29 13:21 ` [PATCH 02/13] drm/scheduler: add drm_sched_job_add_resv_dependencies Christian König
2022-09-30  2:05   ` Chien, WenChieh (Jay)
2022-09-30 12:12     ` Christian König
2022-09-29 13:21 ` [PATCH 03/13] drm/amdgpu: use drm_sched_job_add_resv_dependencies for moves Christian König
2022-09-29 13:21 ` [PATCH 04/13] drm/amdgpu: drop the fence argument from amdgpu_vmid_grab Christian König
2022-09-29 13:21 ` [PATCH 05/13] drm/amdgpu: drop amdgpu_sync " Christian König
2022-09-29 13:21 ` [PATCH 06/13] drm/amdgpu: cleanup scheduler job initialization Christian König
2022-09-29 13:21 ` [PATCH 07/13] drm/amdgpu: move explicit sync check into the CS Christian König
2022-09-29 13:21 ` [PATCH 08/13] drm/amdgpu: use scheduler depenencies for VM updates Christian König
2022-09-29 13:21 ` [PATCH 09/13] drm/amdgpu: use scheduler depenencies for UVD msgs Christian König
2022-09-29 13:21 ` [PATCH 10/13] drm/amdgpu: use scheduler depenencies for CS Christian König
2022-09-29 13:21 ` [PATCH 11/13] drm/scheduler: remove drm_sched_dependency_optimized Christian König
2022-09-29 13:21 ` [PATCH 12/13] drm/scheduler: rework entity flush, kill and fini Christian König
2022-09-29 19:20   ` Andrey Grodzovsky
2022-09-30 11:51     ` Christian König
2022-09-30 13:46       ` Andrey Grodzovsky
2022-09-29 13:21 ` [PATCH 13/13] drm/scheduler: rename dependency callback into prepare_job Christian König
2022-09-29 13:24 ` [PATCH 01/13] drm/scheduler: fix fence ref counting Christian König
2022-10-14  8:46 Fixes for scheduler hang when killing a process Christian König
2022-10-14  8:46 ` [PATCH 05/13] drm/amdgpu: drop amdgpu_sync from amdgpu_vmid_grab Christian König
2022-10-23  1:25   ` Luben Tuikov
2022-10-24 10:54     ` Christian König

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.