public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 00/18] dev->struct_mutex crusade
@ 2015-07-09 21:32 Daniel Vetter
  2015-07-09 21:32 ` [PATCH 01/18] drm/gem: rip out drm vma accounting for gem mmaps Daniel Vetter
                   ` (19 more replies)
  0 siblings, 20 replies; 52+ messages in thread
From: Daniel Vetter @ 2015-07-09 21:32 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development

Hi all,

I wanted to take another look at struct_mutex usage in modern (gem) drivers and
noticed that for a fair lot we're very to be completely struct_mutex free.

This pile here is the the simple part, which mostly just removes code and
mutex_lock/unlock calls. All the patches here are independent and can be merged
in any order whatsoever. My plan is to send out a pull request for all those not
picked up by driver maintainers in 2-3 weeks or so, assuming no one complains.

Of course review & comments still very much welcome.

The more tricky 2nd part of this (and that one's not yet done) is to rework the
gem mmap handler to use the same kref_get_unless_zero trick as ttm. With that
there's no core requirement to hold struct_mutex over the final unref, which
means we can make that one lockless. I plan to add a gem_object_free_unlocked
for all the drivers which don't have any need for this lock.

Also there's a few more drivers which can be made struct_mutex free easily, I'll
propably stitch together poc patches for those.

Cheers, Daniel

Daniel Vetter (18):
  drm/gem: rip out drm vma accounting for gem mmaps
  drm/cma-helper: Fix locking in drm_fb_cma_debugfs_show
  drm/gem: Be more friendly with locking checks
  drm/ast: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/bochs: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/mga200g: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/mga200g: Hold a proper reference for cursor_set
  drm/cirrus: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/cma-helper: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/rockchip: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/armada: Don't grab dev->struct_mutex for in mmap offset ioctl
  drm/nouveau: Don't take dev->struct_mutex in fbcon init
  drm/nouveau: Don't take dev->struct_mutex in ttm_fini
  drm/qxl: Don't take dev->struct_mutex in bo_force_delete
  drm/radeon: Don't take dev->struct_mutex in bo_force_delete
  drm/radeon: Don't take dev->struct_mutex in pm functions
  drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete
  drm/amdgpu: don't grab dev->struct_mutex in pm functions

 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c  |  4 +---
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c      |  2 --
 drivers/gpu/drm/armada/armada_gem.c         | 11 ++++-------
 drivers/gpu/drm/ast/ast_main.c              | 16 +++++-----------
 drivers/gpu/drm/bochs/bochs_mm.c            | 16 ++++------------
 drivers/gpu/drm/cirrus/cirrus_main.c        | 15 ++++-----------
 drivers/gpu/drm/drm_fb_cma_helper.c         | 16 ++--------------
 drivers/gpu/drm/drm_gem.c                   | 13 ++-----------
 drivers/gpu/drm/drm_gem_cma_helper.c        |  9 +--------
 drivers/gpu/drm/mgag200/mgag200_cursor.c    | 22 ++++++++++------------
 drivers/gpu/drm/mgag200/mgag200_main.c      | 16 ++++------------
 drivers/gpu/drm/nouveau/nouveau_fbcon.c     | 11 +++--------
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  2 --
 drivers/gpu/drm/qxl/qxl_object.c            |  4 +---
 drivers/gpu/drm/radeon/radeon_object.c      |  4 +---
 drivers/gpu/drm/radeon/radeon_pm.c          |  5 -----
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 13 ++++---------
 17 files changed, 46 insertions(+), 133 deletions(-)

-- 
2.1.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2015-08-10 12:00 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-09 21:32 [PATCH 00/18] dev->struct_mutex crusade Daniel Vetter
2015-07-09 21:32 ` [PATCH 01/18] drm/gem: rip out drm vma accounting for gem mmaps Daniel Vetter
2015-07-11 21:11   ` Chris Wilson
2015-07-14 10:21     ` Daniel Vetter
2015-08-10 11:32   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 02/18] drm/cma-helper: Fix locking in drm_fb_cma_debugfs_show Daniel Vetter
2015-08-10 10:41   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 03/18] drm/gem: Be more friendly with locking checks Daniel Vetter
2015-08-10 10:42   ` Thierry Reding
2015-08-10 11:43     ` Daniel Vetter
2015-07-09 21:32 ` [PATCH 04/18] drm/ast: Don't grab dev->struct_mutex for in mmap offset ioctl Daniel Vetter
2015-08-10 10:46   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 05/18] drm/bochs: " Daniel Vetter
2015-08-10 10:45   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 06/18] drm/mga200g: " Daniel Vetter
2015-08-10 10:46   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 07/18] drm/mga200g: Hold a proper reference for cursor_set Daniel Vetter
2015-08-10 10:46   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 08/18] drm/cirrus: Don't grab dev->struct_mutex for in mmap offset ioctl Daniel Vetter
2015-08-10 10:53   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 09/18] drm/cma-helper: " Daniel Vetter
2015-08-10 10:54   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 10/18] drm/rockchip: " Daniel Vetter
2015-08-10 10:58   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 11/18] drm/armada: " Daniel Vetter
2015-08-10 10:59   ` Thierry Reding
2015-08-10 11:15   ` Russell King - ARM Linux
2015-07-09 21:32 ` [PATCH 12/18] drm/nouveau: Don't take dev->struct_mutex in fbcon init Daniel Vetter
2015-08-10 10:59   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 13/18] drm/nouveau: Don't take dev->struct_mutex in ttm_fini Daniel Vetter
2015-08-10 10:59   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 14/18] drm/qxl: Don't take dev->struct_mutex in bo_force_delete Daniel Vetter
2015-08-10 10:59   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 15/18] drm/radeon: " Daniel Vetter
2015-08-10 11:00   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 16/18] drm/radeon: Don't take dev->struct_mutex in pm functions Daniel Vetter
2015-08-10 11:00   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 17/18] drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete Daniel Vetter
2015-08-10 10:53   ` Thierry Reding
2015-07-09 21:32 ` [PATCH 18/18] drm/amdgpu: don't grab dev->struct_mutex in pm functions Daniel Vetter
2015-07-10  0:20   ` shuang.he
2015-08-10 11:00   ` Thierry Reding
2015-07-15 13:38 ` [PATCH 1/2] drm/tegra: don't take dev->struct_mutex in mmap offset ioctl Daniel Vetter
2015-07-15 13:38   ` [PATCH 2/2] drm/tegra: Use drm_gem_object_reference_unlocked Daniel Vetter
2015-07-19 10:43     ` shuang.he
2015-08-10 10:30   ` [PATCH 1/2] drm/tegra: don't take dev->struct_mutex in mmap offset ioctl Thierry Reding
2015-08-10 11:31     ` Daniel Vetter
2015-08-10 11:38       ` Thierry Reding
2015-08-10 11:35 ` [PATCH 00/18] dev->struct_mutex crusade Thierry Reding
2015-08-10 11:53   ` Chris Wilson
2015-08-10 11:56     ` Thierry Reding
2015-08-10 12:00   ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox