[PATCH 0/6] drm/sched: Fix memory leaks with cancel_job() callback

From: Philipp Stanner
Date: Tue Jul 01 2025 - 09:26:26 EST


Changes since the RFC:
- Rename helper function for drm_sched_fini(). (Tvrtko)
- Add Link to Tvrtko's RFC patch to patch 1.


Since a long time, drm_sched_fini() can leak jobs that are still in
drm_sched.pending_list.

This series solves the leaks in a backwards-compatible manner by adding
a new, optional callback. If that callback is implemented, the scheduler
uses it to cancel all jobs from pending_list and then frees them.


Philipp Stanner (6):
drm/sched: Avoid memory leaks with cancel_job() callback
drm/sched/tests: Port to cancel_job()
drm/sched: Warn if pending list is not empty
drm/nouveau: Make fence container helper usable driver-wide
drm/nouveau: Add new callback for scheduler teardown
drm/nouveau: Remove waitque for sched teardown

drivers/gpu/drm/nouveau/nouveau_fence.c | 35 ++++++----
drivers/gpu/drm/nouveau/nouveau_fence.h | 7 ++
drivers/gpu/drm/nouveau/nouveau_sched.c | 35 ++++++----
drivers/gpu/drm/nouveau/nouveau_sched.h | 9 +--
drivers/gpu/drm/nouveau/nouveau_uvmm.c | 8 +--
drivers/gpu/drm/scheduler/sched_main.c | 37 +++++++----
.../gpu/drm/scheduler/tests/mock_scheduler.c | 66 +++++++------------
include/drm/gpu_scheduler.h | 18 +++++
8 files changed, 122 insertions(+), 93 deletions(-)

--
2.49.0