[PATCH 00/19] wire acquire ctx through legacy modeset paths

Harry Wentland harry.wentland at amd.com
Tue Mar 28 00:31:06 UTC 2017


Patches 2-5, 9-12, 14-19: Reviewed-by: Harry Wentland <harry.wentland at amd.com>
Patches 1,13: Questions in response to those patches
Patches 6-8: Acked-by: Harry Wentland <harry.wentland at amd.com>

Looks like a nice cleanup.

Harry



On Wednesday, March 22, 2017 10:50:39 PM EDT Daniel Vetter wrote:
> Hi all,
> 
> This is something I kinda had on my todo list ever since atomic landed. The
> legacy_backoff() hack really doesn't work if you need to acquire additional
> locks, which does restrict drivers in how they handle and protect legacy
> paths, and kinda forces us to be overzealous with taking locks for legacy
> paths, just in case.
> 
> This patch set here fixes this, with 2 huge exceptions:
> - get/set_property calls aren't fixed. The locking in there is a mess and
> needs some serious attention. My goal would be that for atomic we take no
> lock at all, and entirely rely upon the magic of drm_modeset_lock and
> atomic to just grab the minimal set required to update a property.
> 
> - fbdev emulation helpers. It abused the modeset_lock_all bkl as its own
> lock, which prevents us from pushing it down just around the (atomic)
> modeset calls, and hence from switching over to handling the acquire
> context in an explicit fashion. Thierry started to fix this with the
> addition of proper locking for fbdev emulation, but it needs a pile more
> work.
> 
> Survived light testing with full ww mutex debugging, I'll rely on CI to
> catch the remaining mixups :-)
> 
> Cheers, Daniel
> 
> Daniel Vetter (19):
>   drm: Wire up proper acquire ctx for plane functions
>   drm: Add acquire ctx parameter to ->update_plane
>   drm: drm_plane_force_disable is not for atomic drivers
>   drm: Add acquire ctx parameter to ->plane_disable
>   drm/atomic-helper: remove backoff hack from disable/update_plane
>   drm/vmwgfx: Drop the cursor locking hack
>   drm/tegra: Don't use modeset_lock_crtc
>   drm/tilcdc: Drop calls to modeset_lock_crtc
>   drm: Make drm_modeset_lock_crtc internal
>   drm: Roll out acquire context for the page_flip ioctl
>   drm: Add acquire ctx parameter to ->page_flip(_target)
>   drm/atomic-helper: remove backoff hack from page_flip
>   drm: simplify the locking in the GETCRTC ioctl
>   drm: Remove drm_modeset_(un)lock_crtc
>   drm: Remove drm_modeset_legacy_acquire_ctx and crtc->acquire_ctx
>   drm: Restrict drm_mode_set_config_internal to non-atomic drivers
>   drm: Add explicit acquire ctx handling around ->set_config
>   drm: Add acquire ctx parameter to ->set_config
>   drm/atomic-helper: Remove the backoff hack from set_config
> 
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c |   8 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h    |   6 +-
>  drivers/gpu/drm/armada/armada_crtc.c        |   3 +-
>  drivers/gpu/drm/armada/armada_overlay.c     |   6 +-
>  drivers/gpu/drm/bochs/bochs_kms.c           |   3 +-
>  drivers/gpu/drm/drm_atomic.c                |  14 ---
>  drivers/gpu/drm/drm_atomic_helper.c         | 132
> +++++----------------------- drivers/gpu/drm/drm_crtc.c                  | 
> 61 ++++++++-----
>  drivers/gpu/drm/drm_crtc_helper.c           |   4 +-
>  drivers/gpu/drm/drm_modeset_lock.c          | 102 ---------------------
>  drivers/gpu/drm/drm_plane.c                 |  87 ++++++++++++++----
>  drivers/gpu/drm/drm_plane_helper.c          |  11 ++-
>  drivers/gpu/drm/gma500/gma_display.c        |   7 +-
>  drivers/gpu/drm/gma500/gma_display.h        |   3 +-
>  drivers/gpu/drm/i915/intel_display.c        |   9 +-
>  drivers/gpu/drm/i915/intel_pipe_crc.c       |   2 +-
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c   |   8 +-
>  drivers/gpu/drm/nouveau/dispnv04/crtc.c     |   7 +-
>  drivers/gpu/drm/nouveau/dispnv04/overlay.c  |  18 ++--
>  drivers/gpu/drm/nouveau/nouveau_display.c   |   3 +-
>  drivers/gpu/drm/nouveau/nouveau_display.h   |   4 +-
>  drivers/gpu/drm/radeon/radeon_display.c     |   8 +-
>  drivers/gpu/drm/shmobile/shmob_drm_crtc.c   |   3 +-
>  drivers/gpu/drm/shmobile/shmob_drm_plane.c  |   8 +-
>  drivers/gpu/drm/tegra/dc.c                  |   8 +-
>  drivers/gpu/drm/tilcdc/tilcdc_crtc.c        |  12 +--
>  drivers/gpu/drm/udl/udl_modeset.c           |   3 +-
>  drivers/gpu/drm/vc4/vc4_crtc.c              |   5 +-
>  drivers/gpu/drm/vc4/vc4_plane.c             |   6 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c         |  25 ------
>  drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c         |   3 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c        |   6 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c        |   6 +-
>  include/drm/drm_atomic_helper.h             |  15 ++--
>  include/drm/drm_crtc.h                      |  18 ++--
>  include/drm/drm_crtc_helper.h               |   3 +-
>  include/drm/drm_modeset_lock.h              |   5 --
>  include/drm/drm_plane.h                     |   7 +-
>  include/drm/drm_plane_helper.h              |   6 +-
>  39 files changed, 265 insertions(+), 380 deletions(-)




More information about the dri-devel mailing list