]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/sched: Use drm sched lockdep map for submit_wq
authorMatthew Brost <matthew.brost@intel.com>
Wed, 2 Oct 2024 13:16:38 +0000 (06:16 -0700)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 2 Oct 2024 15:53:45 +0000 (17:53 +0200)
Avoid leaking a lockdep map on each drm sched creation and destruction
by using a single lockdep map for all drm sched allocated submit_wq.

v2:
 - Use alloc_ordered_workqueue_lockdep_map (Tejun)

Cc: Luben Tuikov <ltuikov89@gmail.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20241002131639.3425022-2-matthew.brost@intel.com
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
drivers/gpu/drm/scheduler/sched_main.c

index 6f27cab0b76d923b962da1edca3ad9695d74ef73..eaef20f41786e6231fb21d0bd167728cb28bdd63 100644 (file)
 #define CREATE_TRACE_POINTS
 #include "gpu_scheduler_trace.h"
 
+#ifdef CONFIG_LOCKDEP
+static struct lockdep_map drm_sched_lockdep_map = {
+       .name = "drm_sched_lockdep_map"
+};
+#endif
+
 #define to_drm_sched_job(sched_job)            \
                container_of((sched_job), struct drm_sched_job, queue_node)
 
@@ -1269,7 +1275,12 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
                sched->submit_wq = submit_wq;
                sched->own_submit_wq = false;
        } else {
+#ifdef CONFIG_LOCKDEP
+               sched->submit_wq = alloc_ordered_workqueue_lockdep_map(name, 0,
+                                                                      &drm_sched_lockdep_map);
+#else
                sched->submit_wq = alloc_ordered_workqueue(name, 0);
+#endif
                if (!sched->submit_wq)
                        return -ENOMEM;