dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/8] drm/sched: Fix memory leaks with cancel_job() callback
@ 2025-07-10 12:54 Philipp Stanner
  2025-07-10 12:54 ` [PATCH v4 1/8] drm/panfrost: Fix scheduler workqueue bug Philipp Stanner
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Philipp Stanner @ 2025-07-10 12:54 UTC (permalink / raw)
  To: Danilo Krummrich, David Airlie, Simona Vetter, Matthew Brost,
	Philipp Stanner, Christian König, Maarten Lankhorst,
	Thomas Zimmermann, Tvrtko Ursulin, Pierre-Eric Pelloux-Prayer
  Cc: dri-devel, nouveau, linux-kernel, linux-media

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


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

end of thread, other threads:[~2025-07-10 15:12 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-10 12:54 [PATCH v4 0/8] drm/sched: Fix memory leaks with cancel_job() callback Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 1/8] drm/panfrost: Fix scheduler workqueue bug Philipp Stanner
2025-07-10 12:58   ` Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 2/8] drm/sched: Avoid memory leaks with cancel_job() callback Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 3/8] drm/sched/tests: Implement " Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 4/8] drm/sched/tests: Add unit test for cancel_job() Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 5/8] drm/sched: Warn if pending_list is not empty Philipp Stanner
2025-07-10 13:04   ` Danilo Krummrich
2025-07-10 12:54 ` [PATCH v4 6/8] drm/nouveau: Make fence container helper usable driver-wide Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 7/8] drm/nouveau: Add new callback for scheduler teardown Philipp Stanner
2025-07-10 12:54 ` [PATCH v4 8/8] drm/nouveau: Remove waitque for sched teardown Philipp Stanner
2025-07-10 15:11 ` [PATCH v4 0/8] drm/sched: Fix memory leaks with cancel_job() callback Philipp Stanner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).