RE: [Intel-gfx] [PATCH 08/35] drm: Protect dev->filelist with its own mutex

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Daniel Vetter [mailto:daniel.vetter@xxxxxxxx] On Behalf Of Daniel
> Vetter
> Sent: Wednesday, April 27, 2016 3:09 AM
> To: Alex Deucher
> Cc: Chris Wilson; Daniel Vetter; DRI Development; Deucher, Alexander; Intel
> Graphics Development; Daniel Vetter
> Subject: Re: [Intel-gfx] [PATCH 08/35] drm: Protect dev->filelist with its own
> mutex
> 
> On Wed, Apr 27, 2016 at 09:06:09AM +0200, Daniel Vetter wrote:
> > On Tue, Apr 26, 2016 at 05:45:44PM -0400, Alex Deucher wrote:
> > > On Tue, Apr 26, 2016 at 4:52 PM, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> wrote:
> > > > On Tue, Apr 26, 2016 at 07:29:41PM +0200, Daniel Vetter wrote:
> > > >> amdgpu gained dev->struct_mutex usage, and that's because it's
> walking
> > > >> the dev->filelist list. Protect that list with it's own lock to take
> > > >> one more step towards getting rid of struct_mutex usage in drivers
> > > >> once and for all.
> > > >>
> > > >> While doing the conversion I noticed that 2 debugfs files in i915
> > > >> completely lacked appropriate locking. Fix that up too.
> > > >>
> > > >> v2: don't forget to switch to
> drm_gem_object_unreference_unlocked.
> > > >>
> > > >> Cc: Alex Deucher <alexander.deucher@xxxxxxx>
> > > >> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
> > > >
> > > > Just wondering if this worth converting over. Opening/closing isn't
> > > > going to be high contention, I hope, though we can certainly write
> > > > stress cases for it! The goal for drivers to stop using the struct_mutex
> > > > as their BKL, which doesn't preclude keeping the struct_mutex around
> for
> > > > where it makes sense to have a single mutex rather than a multitude.
> > > >
> > > > I have some misgivings over this, but only because I think its overkill.
> > > > Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> > >
> > > I agree with Chris' sentiments.
> >
> > It's not to have more speed or less contention, but just to have fewer
> > things to worry about when reviewing locking. Hence orthogonal locks for
> > independent parts.
> >
> > My goal is that in the end dev->struct_mutex is only used by some existing
> > drivers for their internals, plus all the legacy core stuff. And never
> > even used by modern drivers. New locks are pretty cheap, and not
> dragging
> > in the entire legacy horror show has benefits.
> >
> > When/once I tackle the one thing left (master locking) I might move the
> > master handling under this lock too (since it's closely related to open
> > files). Not sure yet.
> 
> Oh and the main reason I did it here: Much easier to review using git grep
> struct_mutex than auditing codepaths. With this drivers have no reason to
> ever grab struct_mutex (not even for debugfs or similar), since the last
> remaining bit (master control) really shouldn't be a concern for drivers
> ever.
> 
> That also makes reviewing new drivers simpler: Contains struct_mutex?
> Reject it!

I'm convinced!  Thanks for cleaning this up.

Alex

> 
> Cheers, Daniel
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux