From: Rob Clark <robdclark@gmail.com> To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter <daniel@ffwll.ch>, Rob Clark <robdclark@chromium.org>, Abhinav Kumar <abhinavk@codeaurora.org>, Akhil P Oommen <akhilpo@codeaurora.org>, AngeloGioacchino Del Regno <kholk11@gmail.com>, Bjorn Andersson <bjorn.andersson@linaro.org>, Brian Masney <masneyb@onstation.org>, Christophe JAILLET <christophe.jaillet@wanadoo.fr>, Daniel Vetter <daniel.vetter@ffwll.ch>, Emil Velikov <emil.velikov@collabora.com>, Eric Anholt <eric@anholt.net>, freedreno@lists.freedesktop.org (open list:DRM DRIVER FOR MSM ADRENO GPU), "Gustavo A. R. Silva" <gustavoars@kernel.org>, Harigovindan P <harigovi@codeaurora.org>, Jonathan Marek <jonathan@marek.ca>, Jordan Crouse <jcrouse@codeaurora.org>, linaro-mm-sig@lists.linaro.org (moderated list:DMA BUFFER SHARING FRAMEWORK), linux-arm-msm@vger.kernel.org (open list:DRM DRIVER FOR MSM ADRENO GPU), linux-kernel@vger.kernel.org (open list), linux-media@vger.kernel.org (open list:DMA BUFFER SHARING FRAMEWORK), Liviu Dudau <liviu.dudau@arm.com>, Matthias Kaehlcke <mka@chromium.org>, Rajendra Nayak <rnayak@codeaurora.org>, Sam Ravnborg <sam@ravnborg.org>, Sharat Masetty <smasetty@codeaurora.org>, Thierry Reding <treding@nvidia.com>, Thomas Zimmermann <tzimmermann@suse.de> Subject: [PATCH v3 00/23] drm/msm: de-struct_mutex-ification Date: Mon, 19 Oct 2020 13:46:01 -0700 [thread overview] Message-ID: <20201019204636.139997-1-robdclark@gmail.com> (raw) 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 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 | 266 +++++++++++----------- 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 | 158 ++++++++----- 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, 495 insertions(+), 405 deletions(-) -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: Rob Clark <robdclark@gmail.com> To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Liviu Dudau <liviu.dudau@arm.com>, Akhil P Oommen <akhilpo@codeaurora.org>, Harigovindan P <harigovi@codeaurora.org>, AngeloGioacchino Del Regno <kholk11@gmail.com>, Sam Ravnborg <sam@ravnborg.org>, Emil Velikov <emil.velikov@collabora.com>, Rob Clark <robdclark@chromium.org>, Jonathan Marek <jonathan@marek.ca>, Matthias Kaehlcke <mka@chromium.org>, Thierry Reding <treding@nvidia.com>, "open list:DMA BUFFER SHARING FRAMEWORK" <linux-media@vger.kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, "open list:DRM DRIVER FOR MSM ADRENO GPU" <linux-arm-msm@vger.kernel.org>, Sharat Masetty <smasetty@codeaurora.org>, Abhinav Kumar <abhinavk@codeaurora.org>, "moderated list:DMA BUFFER SHARING FRAMEWORK" <linaro-mm-sig@lists.linaro.org>, Christophe JAILLET <christophe.jaillet@wanadoo.fr>, Bjorn Andersson <bjorn.andersson@linaro.org>, Rajendra Nayak <rnayak@codeaurora.org>, "Gustavo A. R. Silva" <gustavoars@kernel.org>, open list <linux-kernel@vger.kernel.org>, Brian Masney <masneyb@onstation.org>, "open list:DRM DRIVER FOR MSM ADRENO GPU" <freedreno@lists.freedesktop.org> Subject: [PATCH v3 00/23] drm/msm: de-struct_mutex-ification Date: Mon, 19 Oct 2020 13:46:01 -0700 [thread overview] Message-ID: <20201019204636.139997-1-robdclark@gmail.com> (raw) 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 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 | 266 +++++++++++----------- 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 | 158 ++++++++----- 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, 495 insertions(+), 405 deletions(-) -- 2.26.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2020-10-19 20:45 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-19 20:46 Rob Clark [this message] 2020-10-19 20:46 ` [PATCH v3 00/23] drm/msm: de-struct_mutex-ification Rob Clark 2020-10-19 20:46 ` [PATCH v3 01/23] drm/msm: Fix a couple incorrect usages of get_vaddr_active() Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 02/23] drm/msm/gem: Add obj->lock wrappers Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 03/23] drm/msm/gem: Rename internal get_iova_locked helper Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 04/23] drm/msm/gem: Move prototypes to msm_gem.h Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 05/23] drm/msm/gem: Add some _locked() helpers Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 06/23] drm/msm/gem: Move locking in shrinker path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-23 8:55 ` [Freedreno] " Kristian Høgsberg 2020-10-23 8:55 ` Kristian Høgsberg 2020-10-23 14:46 ` Rob Clark 2020-10-23 14:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 07/23] drm/msm/submit: Move copy_from_user ahead of locking bos Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-23 9:08 ` [Freedreno] " Kristian Høgsberg 2020-10-23 9:08 ` Kristian Høgsberg 2020-10-19 20:46 ` [PATCH v3 08/23] drm/msm: Do rpm get sooner in the submit path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 09/23] drm/msm/gem: Switch over to obj->resv for locking Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 10/23] drm/msm: Use correct drm_gem_object_put() in fail case Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 11/23] drm/msm: Drop chatty trace Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 12/23] drm/msm: Move update_fences() Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 13/23] drm/msm: Add priv->mm_lock to protect active/inactive lists Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 14/23] drm/msm: Document and rename preempt_lock Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 15/23] drm/msm: Protect ring->submits with it's own lock Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 16/23] drm/msm: Refcount submits Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 17/23] drm/msm: Remove obj->gpu Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 18/23] drm/msm: Drop struct_mutex from the retire path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 19/23] drm/msm: Drop struct_mutex in free_object() path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 20/23] drm/msm: Remove msm_gem_free_work Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 21/23] drm/msm: Drop struct_mutex in madvise path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 22/23] drm/msm: Drop struct_mutex in shrinker path Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-19 20:46 ` [PATCH v3 23/23] drm/msm: Don't implicit-sync if only a single ring Rob Clark 2020-10-19 20:46 ` Rob Clark 2020-10-23 10:58 ` [Freedreno] [PATCH v3 00/23] drm/msm: de-struct_mutex-ification Kristian Høgsberg 2020-10-23 10:58 ` Kristian Høgsberg
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201019204636.139997-1-robdclark@gmail.com \ --to=robdclark@gmail.com \ --cc=abhinavk@codeaurora.org \ --cc=akhilpo@codeaurora.org \ --cc=bjorn.andersson@linaro.org \ --cc=christophe.jaillet@wanadoo.fr \ --cc=daniel.vetter@ffwll.ch \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=emil.velikov@collabora.com \ --cc=eric@anholt.net \ --cc=freedreno@lists.freedesktop.org \ --cc=gustavoars@kernel.org \ --cc=harigovi@codeaurora.org \ --cc=jcrouse@codeaurora.org \ --cc=jonathan@marek.ca \ --cc=kholk11@gmail.com \ --cc=linaro-mm-sig@lists.linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=liviu.dudau@arm.com \ --cc=masneyb@onstation.org \ --cc=mka@chromium.org \ --cc=rnayak@codeaurora.org \ --cc=robdclark@chromium.org \ --cc=sam@ravnborg.org \ --cc=smasetty@codeaurora.org \ --cc=treding@nvidia.com \ --cc=tzimmermann@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.