[Intel-gfx] [PATCH] drm/i915/userptr: Drop struct_mutex before cleanup

Chris Wilson chris at chris-wilson.co.uk
Wed Oct 11 14:34:10 UTC 2017


Quoting Daniel Vetter (2017-10-11 15:25:21)
> On Wed, Oct 11, 2017 at 03:18:57PM +0100, Chris Wilson wrote:
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 9af5c369d19e..3bef650c3d62 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -616,9 +616,10 @@ static void i915_gem_fini(struct drm_i915_private *dev_priv)
> >       intel_uc_fini_hw(dev_priv);
> >       i915_gem_cleanup_engines(dev_priv);
> >       i915_gem_contexts_fini(dev_priv);
> > -     i915_gem_cleanup_userptr(dev_priv);
> 
> I think it'd be good if we could push locks like this down further,
> instead of sprawling them like this. Slow steps away from a bkl.

This locking only existed for lockdep and everything just gets clumped
together because that's easy. userptr itself still has that awful
interaction with having to unbind from an active gpu. Even if we manage
to wave a magic wand to get rid of the struct_mutex, we would still have
a lock in common with i915_gem_fault, all the GTT, and an untold sleep.
-Chris


More information about the Intel-gfx mailing list