Ville Syrjälä
2021-Oct-01 22:05 UTC
[Nouveau] [PATCH v2 00/17] drm: cleanup: Use DRM_MODESET_LOCK_ALL_* helpers where possible
On Fri, Oct 01, 2021 at 04:48:15PM -0400, Sean Paul wrote:> On Fri, Oct 01, 2021 at 10:00:50PM +0300, Ville Syrj?l? wrote: > > 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. > > I reviewed the set on 9/17, I didn't see your feedback on that thread.It was much earlir than that. https://lists.freedesktop.org/archives/dri-devel/2021-June/313193.html And I think I might have also shot down a similar thing earlier. I was actually half considering sending a patch to nuke that misleading TODO item. I don't think anything which changes which locks are taken should be considred a starter level task. And the commit messages here don't seem to address any of it. -- Ville Syrj?l? Intel
Ville Syrjälä
2021-Oct-02 02:30 UTC
[Nouveau] [Intel-gfx] [PATCH v2 00/17] drm: cleanup: Use DRM_MODESET_LOCK_ALL_* helpers where possible
On Sat, Oct 02, 2021 at 01:05:47AM +0300, Ville Syrj?l? wrote:> On Fri, Oct 01, 2021 at 04:48:15PM -0400, Sean Paul wrote: > > On Fri, Oct 01, 2021 at 10:00:50PM +0300, Ville Syrj?l? wrote: > > > 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. > > > > I reviewed the set on 9/17, I didn't see your feedback on that thread. > > It was much earlir than that. > https://lists.freedesktop.org/archives/dri-devel/2021-June/313193.html > > And I think I might have also shot down a similar thing earlier. > > I was actually half considering sending a patch to nuke that > misleading TODO item. I don't think anything which changes > which locks are taken should be considred a starter level task. > And the commit messages here don't seem to address any of it.And i915 is now broken :( https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10680/fi-bwr-2160/boot.html -- Ville Syrj?l? Intel