[Intel-gfx] [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 Intel-gfx
mailing list