[PATCH v4 0/8] drm/sched: Fix memory leaks with cancel_job() callback
Philipp Stanner
phasta at kernel.org
Thu Jul 10 12:54:04 UTC 2025
Changes in v4:
- Change dev_err() to dev_warn() in pending_list emptyness check.
Changes in v3:
- Remove forgotten copy-past artifacts. (Tvrtko)
- Remove forgotten done_list struct member. (Tvrtko)
- Slightly adjust commit message of patch 7.
- Add RBs. (Maira, Danilo, Tvrtko)
Changes in v2:
- Add new unit test to test cancel_job()'s behavior. (Tvrtko)
- Add RB from Maíra
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 (8):
drm/panfrost: Fix scheduler workqueue bug
drm/sched: Avoid memory leaks with cancel_job() callback
drm/sched/tests: Implement cancel_job() callback
drm/sched/tests: Add unit test for 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/panfrost/panfrost_job.c | 2 +-
drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++----
.../gpu/drm/scheduler/tests/mock_scheduler.c | 68 +++++++------------
drivers/gpu/drm/scheduler/tests/sched_tests.h | 1 -
drivers/gpu/drm/scheduler/tests/tests_basic.c | 42 ++++++++++++
include/drm/gpu_scheduler.h | 18 +++++
11 files changed, 167 insertions(+), 95 deletions(-)
--
2.49.0
More information about the dri-devel
mailing list