lkml.org 
[lkml]   [2020]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v4 00/23] drm/msm: de-struct_mutex-ification
    Date
    From: Rob Clark <robdclark@chromium.org>

    This doesn't remove *all* the struct_mutex, but it covers the worst
    of it, ie. shrinker/madvise/free/retire. The submit path still uses
    struct_mutex, but it still needs *something* serialize a portion of
    the submit path, and lock_stat mostly just shows the lock contention
    there being with other submits. And there are a few other bits of
    struct_mutex usage in less critical paths (debugfs, etc). But this
    seems like a reasonable step in the right direction.

    v2: teach lockdep about shrinker locking patters (danvet) and
    convert to obj->resv locking (danvet)
    v3: fix get_vaddr locking for legacy userspace (relocs), devcoredump,
    and rd/hangrd
    v4: couple minor review comments (krh), fix deadlock with imported
    dma-buf's (ie. from v4l2, etc)

    Rob Clark (23):
    drm/msm: Fix a couple incorrect usages of get_vaddr_active()
    drm/msm/gem: Add obj->lock wrappers
    drm/msm/gem: Rename internal get_iova_locked helper
    drm/msm/gem: Move prototypes to msm_gem.h
    drm/msm/gem: Add some _locked() helpers
    drm/msm/gem: Move locking in shrinker path
    drm/msm/submit: Move copy_from_user ahead of locking bos
    drm/msm: Do rpm get sooner in the submit path
    drm/msm/gem: Switch over to obj->resv for locking
    drm/msm: Use correct drm_gem_object_put() in fail case
    drm/msm: Drop chatty trace
    drm/msm: Move update_fences()
    drm/msm: Add priv->mm_lock to protect active/inactive lists
    drm/msm: Document and rename preempt_lock
    drm/msm: Protect ring->submits with it's own lock
    drm/msm: Refcount submits
    drm/msm: Remove obj->gpu
    drm/msm: Drop struct_mutex from the retire path
    drm/msm: Drop struct_mutex in free_object() path
    drm/msm: Remove msm_gem_free_work
    drm/msm: Drop struct_mutex in madvise path
    drm/msm: Drop struct_mutex in shrinker path
    drm/msm: Don't implicit-sync if only a single ring

    drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 6 +-
    drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 12 +-
    drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 +-
    drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 1 +
    drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 1 +
    drivers/gpu/drm/msm/dsi/dsi_host.c | 1 +
    drivers/gpu/drm/msm/msm_debugfs.c | 7 +
    drivers/gpu/drm/msm/msm_drv.c | 21 +-
    drivers/gpu/drm/msm/msm_drv.h | 73 +-----
    drivers/gpu/drm/msm/msm_fbdev.c | 1 +
    drivers/gpu/drm/msm/msm_gem.c | 271 +++++++++++-----------
    drivers/gpu/drm/msm/msm_gem.h | 133 +++++++++--
    drivers/gpu/drm/msm/msm_gem_shrinker.c | 81 ++-----
    drivers/gpu/drm/msm/msm_gem_submit.c | 164 ++++++++-----
    drivers/gpu/drm/msm/msm_gpu.c | 110 +++++----
    drivers/gpu/drm/msm/msm_gpu.h | 5 +-
    drivers/gpu/drm/msm/msm_rd.c | 2 +-
    drivers/gpu/drm/msm/msm_ringbuffer.c | 3 +-
    drivers/gpu/drm/msm/msm_ringbuffer.h | 13 +-
    19 files changed, 506 insertions(+), 405 deletions(-)

    --
    2.26.2

    \
     
     \ /
      Last update: 2020-10-23 18:50    [W:8.304 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site