On Wed, Oct 02, 2024 at 04:16:00PM +0200, Danilo Krummrich wrote: > 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, > Thanks. I'm likely to merge this patch through drm-xe-next rather than drm-misc assuming it is ok with the drm-misc maintainers. I've pinged Maarten about this. Any objection on your end if I do this? Matt > 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 > >