On Wed, Oct 02, 2024 at 06:16:38AM -0700, Matthew Brost wrote: > 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@xxxxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Signed-off-by: Matthew Brost <matthew.brost@xxxxxxxxx> Good catch, Acked-by: Danilo Krummrich <dakr@xxxxxxxxxx> > --- > drivers/gpu/drm/scheduler/sched_main.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c > index 36db5c7736fc..e32b0f7d7e94 100644 > --- a/drivers/gpu/drm/scheduler/sched_main.c > +++ b/drivers/gpu/drm/scheduler/sched_main.c > @@ -87,6 +87,12 @@ > #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) > > @@ -1270,7 +1276,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; > > -- > 2.34.1 >