[PATCH v4 0/8] drm/sched: Fix memory leaks with cancel_job() callback
Philipp Stanner
phasta at mailbox.org
Thu Jul 10 15:11:58 UTC 2025
On Thu, 2025-07-10 at 14:54 +0200, Philipp Stanner wrote:
> 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(-)
>
Pushed to drm-misc-next, with an RB from Tvrtko I had forgot, and
without the misplaced panfrost patch.
Thanks guys. Good to see that we finally solved this issue. Had been
around for quite some time. We celebrate that with a beer or sth at XDC
:)
P.
More information about the dri-devel
mailing list