Sean Paul
2021-Oct-01 18:36 UTC
[Nouveau] [PATCH v2 00/17] drm: cleanup: Use DRM_MODESET_LOCK_ALL_* helpers where possible
On Fri, Sep 24, 2021 at 08:43:07AM +0200, Fernando Ramos wrote:> Hi all, > > One of the things in the DRM TODO list ("Documentation/gpu/todo.rst") was to > "use DRM_MODESET_LOCAL_ALL_* helpers instead of boilerplate". That's what this > patch series is about. > > You will find two types of changes here: > > - Replacing "drm_modeset_lock_all_ctx()" (and surrounding boilerplate) with > "DRM_MODESET_LOCK_ALL_BEGIN()/END()" in the remaining places (as it has > already been done in previous commits such as b7ea04d2) > > - Replacing "drm_modeset_lock_all()" with "DRM_MODESET_LOCK_ALL_BEGIN()/END()" > in the remaining places (as it has already been done in previous commits > such as 57037094) > > Most of the changes are straight forward, except for a few cases in the "amd" > and "i915" drivers where some extra dancing was needed to overcome the > limitation that the DRM_MODESET_LOCK_ALL_BEGIN()/END() macros can only be used > once inside the same function (the reason being that the macro expansion > includes *labels*, and you can not have two labels named the same inside one > function) > > Notice that, even after this patch series, some places remain where > "drm_modeset_lock_all()" and "drm_modeset_lock_all_ctx()" are still present, > all inside drm core (which makes sense), except for two (in "amd" and "i915") > which cannot be replaced due to the way they are being used. > > Changes in v2: > > - Fix commit message typo > - Use the value returned by DRM_MODESET_LOCK_ALL_END when possible > - Split drm/i915 patch into two simpler ones > - Remove drm_modeset_(un)lock_all() > - Fix build problems in non-x86 platforms > > Fernando Ramos (17): > drm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/i915: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/msm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() drm/vmwgfx: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/tegra: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/shmobile: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/radeon: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/omapdrm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/nouveau: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/msm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() part 2 > drm/gma500: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm/amd: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > drm: cleanup: remove drm_modeset_(un)lock_all() > doc: drm: remove TODO entry regarding DRM_MODSET_LOCK_ALL cleanup >Thank you for revising, Fernando! I've pushed the set to drm-misc-next (along with the necessary drm-tip conflict resolutions). Sean> Documentation/gpu/todo.rst | 17 ---- > Documentation/locking/ww-mutex-design.rst | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 21 +++-- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 50 +++++----- > .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 25 ++--- > drivers/gpu/drm/drm_client_modeset.c | 14 ++- > drivers/gpu/drm/drm_crtc_helper.c | 18 ++-- > drivers/gpu/drm/drm_fb_helper.c | 10 +- > drivers/gpu/drm/drm_framebuffer.c | 6 +- > drivers/gpu/drm/drm_modeset_lock.c | 94 +------------------ > drivers/gpu/drm/gma500/psb_device.c | 18 ++-- > drivers/gpu/drm/i915/display/intel_audio.c | 16 ++-- > drivers/gpu/drm/i915/display/intel_display.c | 23 ++--- > .../drm/i915/display/intel_display_debugfs.c | 46 +++++---- > drivers/gpu/drm/i915/display/intel_overlay.c | 46 ++++----- > drivers/gpu/drm/i915/display/intel_pipe_crc.c | 7 +- > drivers/gpu/drm/i915/i915_drv.c | 13 ++- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 10 +- > .../gpu/drm/msm/disp/msm_disp_snapshot_util.c | 12 +-- > drivers/gpu/drm/nouveau/dispnv50/disp.c | 15 ++- > drivers/gpu/drm/omapdrm/omap_fb.c | 9 +- > drivers/gpu/drm/radeon/radeon_device.c | 21 +++-- > drivers/gpu/drm/radeon/radeon_dp_mst.c | 10 +- > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 +- > drivers/gpu/drm/tegra/dsi.c | 6 +- > drivers/gpu/drm/tegra/hdmi.c | 6 +- > drivers/gpu/drm/tegra/sor.c | 11 ++- > drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 11 ++- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++- > include/drm/drm_modeset_lock.h | 2 - > 30 files changed, 265 insertions(+), 292 deletions(-) > > > base-commit: 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f > -- > 2.33.0 >-- Sean Paul, Software Engineer, Google / Chromium OS
Ville Syrjälä
2021-Oct-01 19:00 UTC
[Nouveau] [PATCH v2 00/17] drm: cleanup: Use DRM_MODESET_LOCK_ALL_* helpers where possible
On Fri, Oct 01, 2021 at 02:36:55PM -0400, Sean Paul wrote:> On Fri, Sep 24, 2021 at 08:43:07AM +0200, Fernando Ramos wrote: > > Hi all, > > > > One of the things in the DRM TODO list ("Documentation/gpu/todo.rst") was to > > "use DRM_MODESET_LOCAL_ALL_* helpers instead of boilerplate". That's what this > > patch series is about. > > > > You will find two types of changes here: > > > > - Replacing "drm_modeset_lock_all_ctx()" (and surrounding boilerplate) with > > "DRM_MODESET_LOCK_ALL_BEGIN()/END()" in the remaining places (as it has > > already been done in previous commits such as b7ea04d2) > > > > - Replacing "drm_modeset_lock_all()" with "DRM_MODESET_LOCK_ALL_BEGIN()/END()" > > in the remaining places (as it has already been done in previous commits > > such as 57037094) > > > > Most of the changes are straight forward, except for a few cases in the "amd" > > and "i915" drivers where some extra dancing was needed to overcome the > > limitation that the DRM_MODESET_LOCK_ALL_BEGIN()/END() macros can only be used > > once inside the same function (the reason being that the macro expansion > > includes *labels*, and you can not have two labels named the same inside one > > function) > > > > Notice that, even after this patch series, some places remain where > > "drm_modeset_lock_all()" and "drm_modeset_lock_all_ctx()" are still present, > > all inside drm core (which makes sense), except for two (in "amd" and "i915") > > which cannot be replaced due to the way they are being used. > > > > Changes in v2: > > > > - Fix commit message typo > > - Use the value returned by DRM_MODESET_LOCK_ALL_END when possible > > - Split drm/i915 patch into two simpler ones > > - Remove drm_modeset_(un)lock_all() > > - Fix build problems in non-x86 platforms > > > > Fernando Ramos (17): > > drm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/i915: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/msm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() drm/vmwgfx: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/tegra: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/shmobile: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/radeon: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/omapdrm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/nouveau: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/msm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/i915: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() part 2 > > drm/gma500: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm/amd: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN() > > drm: cleanup: remove drm_modeset_(un)lock_all() > > doc: drm: remove TODO entry regarding DRM_MODSET_LOCK_ALL cleanup > > > > Thank you for revising, Fernando! I've pushed the set to drm-misc-next (along > with the necessary drm-tip conflict resolutions).Ugh. Did anyone actually review the locking changes this does? I shot the previous i915 stuff down because the commit messages did not address any of it. -- Ville Syrj?l? Intel