All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Alex Deucher <alexdeucher@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Alex Deucher <alexander.deucher@amd.com>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 08/35] drm: Protect dev->filelist with its own mutex
Date: Wed, 27 Apr 2016 09:08:41 +0200	[thread overview]
Message-ID: <20160427070841.GM2558@phenom.ffwll.local> (raw)
In-Reply-To: <20160427070609.GL2558@phenom.ffwll.local>

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@chris-wilson.co.uk> 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@amd.com>
> > >> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > >
> > > 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@chris-wilson.co.uk>
> > 
> > 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!

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

  reply	other threads:[~2016-04-27  7:08 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-26 17:29 [PATCH 00/35] Moar struct_mutex nuking Daniel Vetter
2016-04-26 17:29 ` [PATCH 01/35] drm: Give drm_agp_clear drm_legacy_ prefix Daniel Vetter
2016-04-26 21:09   ` Chris Wilson
2016-04-27  6:41     ` Daniel Vetter
2016-04-26 17:29 ` [PATCH 02/35] drm: Put legacy lastclose work into drm_legacy_dev_reinit Daniel Vetter
2016-04-26 21:31   ` Alex Deucher
2016-04-26 17:29 ` [PATCH 03/35] drm: Move drm_getmap into drm_bufs.c and give it a legacy prefix Daniel Vetter
2016-04-26 21:19   ` Chris Wilson
2016-04-26 21:32   ` Alex Deucher
2016-04-26 17:29 ` [PATCH 04/35] drm: Forbid legacy MAP functions for DRIVER_MODESET Daniel Vetter
2016-04-26 21:23   ` Chris Wilson
2016-04-26 21:35   ` Alex Deucher
2016-04-27  6:46     ` Daniel Vetter
2016-04-27  6:56       ` Daniel Vetter
2016-04-27  7:12         ` Dave Airlie
2016-04-27  7:55           ` Daniel Vetter
2016-04-27  7:21   ` [PATCH] drm: sti: remove useless call to dev->struct_mutex Daniel Vetter
2016-04-27  7:58     ` Daniel Vetter
2016-04-26 17:29 ` [PATCH 05/35] drm: Push struct_mutex into ->master_destroy Daniel Vetter
2016-04-26 20:54   ` Chris Wilson
2016-04-26 21:36   ` Alex Deucher
2016-04-26 17:29 ` [PATCH 06/35] drm: Hide master MAP cleanup in drm_bufs.c Daniel Vetter
2016-04-26 21:17   ` Chris Wilson
2016-04-26 21:41   ` Alex Deucher
2016-04-27  7:20   ` [PATCH] " Daniel Vetter
2016-04-27  8:15     ` Daniel Vetter
2016-04-26 17:29 ` [PATCH 07/35] drm: Make drm_vm_open/close_locked private to drm_vm.c Daniel Vetter
2016-04-26 21:42   ` Alex Deucher
2016-04-26 17:29 ` [PATCH 08/35] drm: Protect dev->filelist with its own mutex Daniel Vetter
2016-04-26 20:52   ` Chris Wilson
2016-04-26 21:45     ` [Intel-gfx] " Alex Deucher
2016-04-27  7:06       ` Daniel Vetter
2016-04-27  7:08         ` Daniel Vetter [this message]
2016-04-27  7:14           ` Deucher, Alexander
2016-04-27  7:17         ` [Intel-gfx] " Chris Wilson
2016-04-27  8:01           ` Daniel Vetter
2016-04-27  8:04             ` [Intel-gfx] " Chris Wilson
2016-04-27  8:17   ` Daniel Vetter
2016-04-26 17:29 ` [PATCH 09/35] drm/gem: support BO freeing without dev->struct_mutex Daniel Vetter
2016-04-26 19:47   ` Chris Wilson
2016-04-26 20:10     ` Daniel Vetter
2016-04-26 20:34       ` Chris Wilson
2016-04-26 21:52   ` Alex Deucher
2016-04-27  8:18     ` Daniel Vetter
2016-04-27  9:31   ` Lucas Stach
2016-04-27 11:21     ` Daniel Vetter
2016-04-27 11:50   ` [PATCH] " Daniel Vetter
2016-04-27 11:58     ` Chris Wilson
2016-04-27 12:12       ` Daniel Vetter
2016-04-27 12:19         ` Chris Wilson
2016-04-29  9:31     ` Daniel Vetter
2016-05-02  8:40       ` Daniel Vetter
2016-05-03 15:59         ` Alex Deucher
2016-05-04 10:26           ` Daniel Vetter
2016-04-29 11:18     ` ✗ Fi.CI.BAT: failure for " Patchwork
2016-04-29 11:39       ` Chris Wilson
2016-05-02  8:44     ` Patchwork
2016-05-02  8:48     ` Patchwork
2016-04-26 17:29 ` [PATCH 10/35] drm/amdgpu: Use lockless gem BO free callback Daniel Vetter
2016-04-26 17:29 ` [PATCH 11/35] drm/armada: " Daniel Vetter
2016-04-28 13:27   ` Russell King - ARM Linux
2016-04-26 17:29 ` [PATCH 12/35] drm/ast: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 13/35] drm/atmel: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 14/35] drm/bochs: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 15/35] drm/cirrus: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 16/35] drm/etnaviv: " Daniel Vetter
2016-04-27  9:32   ` Lucas Stach
2016-04-28 13:28   ` Russell King - ARM Linux
2016-04-26 17:29 ` [PATCH 17/35] drm/exynos: " Daniel Vetter
2016-05-10  6:52   ` Inki Dae
2016-04-26 17:29 ` [PATCH 18/35] drm/fls-dcu: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 19/35] drm/imx: " Daniel Vetter
2016-04-27 10:29   ` Philipp Zabel
2016-04-27 11:21     ` Daniel Vetter
2016-04-27 12:01       ` Philipp Zabel
2016-05-04 10:28         ` Daniel Vetter
2016-05-04 10:53           ` Philipp Zabel
2016-04-26 17:29 ` [PATCH 20/35] drm/mga200g: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 21/35] drm/nouveau: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 22/35] drm/qxl: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 23/35] drm/radeon: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 24/35] drm/rcar-du: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 25/35] drm/rockchip: " Daniel Vetter
2016-04-26 17:29 ` [PATCH 26/35] drm/shmob: " Daniel Vetter
     [not found] ` <1461691808-12414-1-git-send-email-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2016-04-26 17:30   ` [PATCH 27/35] drm/tegra: " Daniel Vetter
2016-05-10 13:33     ` Thierry Reding
     [not found]       ` <20160510133300.GA30323-EkSeR96xj6Pcmrwk2tT4+A@public.gmane.org>
2016-05-11  7:35         ` Daniel Vetter
2016-04-26 17:30 ` [PATCH 28/35] drm/tilcdc: " Daniel Vetter
2016-04-26 17:30 ` [PATCH 29/35] drm/vc4: Use drm_gem_object_unreference_unlocked Daniel Vetter
2016-04-26 17:30 ` [PATCH 30/35] drm/vc4: Use lockless gem BO free callback Daniel Vetter
2016-04-26 17:30 ` [PATCH 31/35] drm/vgem: " Daniel Vetter
2016-04-26 17:30 ` [PATCH 32/35] drm/virtio: " Daniel Vetter
2016-04-26 17:30 ` [PATCH 33/35] drm: sti: remove useless call to dev->struct_mutex Daniel Vetter
2016-04-26 17:30 ` [PATCH 34/35] drm/virtio: Use lockless gem BO free callback Daniel Vetter
2016-04-26 17:30 ` [PATCH 35/35] drm/rockchip: Use cma gem vm ops Daniel Vetter
2016-04-27 11:38   ` [PATCH 1/3] " Daniel Vetter
2016-04-27 11:38     ` [PATCH 2/3] drm/exynos: Nuke dummy fb->dirty callback Daniel Vetter
2016-05-10  6:48       ` Inki Dae
2016-04-27 11:38     ` [PATCH 3/3] drm/msm: " Daniel Vetter
2016-04-27  6:50 ` ✗ Fi.CI.BAT: failure for Moar struct_mutex nuking Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160427070841.GM2558@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=alexander.deucher@amd.com \
    --cc=alexdeucher@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.