#
1d8a5ca4 |
| 27-Jul-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Conversion to drm scheduler
For existing adrenos, there is one or more ringbuffer, depending on whether preemption is supported. When preemption is supported, each ringbuffer has it's own
drm/msm: Conversion to drm scheduler
For existing adrenos, there is one or more ringbuffer, depending on whether preemption is supported. When preemption is supported, each ringbuffer has it's own priority. A submitqueue (which maps to a gl context or vk queue in userspace) is mapped to a specific ring- buffer at creation time, based on the submitqueue's priority.
Each ringbuffer has it's own drm_gpu_scheduler. Each submitqueue maps to a drm_sched_entity. And each submit maps to a drm_sched_job.
Closes: https://gitlab.freedesktop.org/drm/msm/-/issues/4 Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20210728010632.2633470-10-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
030af2b0 |
| 27-Jul-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: drop drm_gem_object_put_locked()
No idea why we were still using this. It certainly hasn't been needed for some time. So drop the pointless twin codepaths.
Signed-off-by: Rob Clark <robd
drm/msm: drop drm_gem_object_put_locked()
No idea why we were still using this. It certainly hasn't been needed for some time. So drop the pointless twin codepaths.
Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20210728010632.2633470-4-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
e181ad43 |
| 12-Jul-2021 |
Gustavo A. R. Silva <gustavoars@kernel.org> |
drm/msm: Fix fall-through warning in msm_gem_new_impl()
Fix the following fall-through warning:
drivers/gpu/drm/msm/msm_gem.c: In function 'msm_gem_new_impl': drivers/gpu/drm/msm/msm_gem.c:1170:6:
drm/msm: Fix fall-through warning in msm_gem_new_impl()
Fix the following fall-through warning:
drivers/gpu/drm/msm/msm_gem.c: In function 'msm_gem_new_impl': drivers/gpu/drm/msm/msm_gem.c:1170:6: warning: this statement may fall through [-Wimplicit-fallthrough=] 1170 | if (priv->has_cached_coherent) | ^ drivers/gpu/drm/msm/msm_gem.c:1173:2: note: here 1173 | default: | ^~~~~~~
by replacing the /* fallthrough */ comment with fallthrough;
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
show more ...
|
#
60f800b2 |
| 02-Jul-2021 |
Christian König <ckoenig.leichtzumerken@gmail.com> |
drm/msm: always wait for the exclusive fence
Drivers also need to to sync to the exclusive fence when a shared one is present.
Completely untested since the driver won't even compile on !ARM.
Sign
drm/msm: always wait for the exclusive fence
Drivers also need to to sync to the exclusive fence when a shared one is present.
Completely untested since the driver won't even compile on !ARM.
Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210702111642.17259-5-christian.koenig@amd.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
show more ...
|
Revision tags: v5.10.42 |
|
#
37c68900 |
| 02-Jun-2021 |
Lee Jones <lee.jones@linaro.org> |
drm/msm/msm_gem: Demote kernel-doc abuses
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/msm_gem.c:364: warning: This comment starts with '/**', but isn't a kernel-doc commen
drm/msm/msm_gem: Demote kernel-doc abuses
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/msm_gem.c:364: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst drivers/gpu/drm/msm/msm_gem.c:763: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
Cc: Rob Clark <robdclark@gmail.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Sumit Semwal <sumit.semwal@linaro.org> Cc: "Christian König" <christian.koenig@amd.com> Cc: linux-arm-msm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org Cc: linux-media@vger.kernel.org Cc: linaro-mm-sig@lists.linaro.org Signed-off-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20210602143300.2330146-13-lee.jones@linaro.org Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
Revision tags: v5.10.41, v5.10.40, v5.10.39, v5.4.119, v5.10.36, v5.10.35, v5.10.34, v5.4.116, v5.10.33, v5.12 |
|
#
9ef36443 |
| 23-Apr-2021 |
Jonathan Marek <jonathan@marek.ca> |
drm/msm: deprecate MSM_BO_UNCACHED (map as writecombine instead)
There shouldn't be any reason to ever use uncached over writecombine, so just use writecombine for MSM_BO_UNCACHED.
Note: userspace
drm/msm: deprecate MSM_BO_UNCACHED (map as writecombine instead)
There shouldn't be any reason to ever use uncached over writecombine, so just use writecombine for MSM_BO_UNCACHED.
Note: userspace never used MSM_BO_UNCACHED anyway
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Acked-by: Jordan Crouse <jordan@cosmicpenguin.net> Link: https://lore.kernel.org/r/20210423190833.25319-6-jonathan@marek.ca Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
d12e3390 |
| 23-Apr-2021 |
Jonathan Marek <jonathan@marek.ca> |
drm/msm: add MSM_BO_CACHED_COHERENT
Add a new cache mode for creating coherent host-cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
drm/msm: add MSM_BO_CACHED_COHERENT
Add a new cache mode for creating coherent host-cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org> Link: https://lore.kernel.org/r/20210423190833.25319-5-jonathan@marek.ca Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
af9b3547 |
| 23-Apr-2021 |
Jonathan Marek <jonathan@marek.ca> |
drm/msm: use the right pgprot when mapping BOs in the kernel
Use the same logic as the userspace mapping.
This fixes msm_rd with cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Acked
drm/msm: use the right pgprot when mapping BOs in the kernel
Use the same logic as the userspace mapping.
This fixes msm_rd with cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Acked-by: Jordan Crouse <jordan@cosmicpenguin.net> Link: https://lore.kernel.org/r/20210423190833.25319-4-jonathan@marek.ca Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
8eaf9b02 |
| 23-Apr-2021 |
Jonathan Marek <jonathan@marek.ca> |
drm/msm: remove unnecessary mmap logic for cached BOs
No one knows what this is for anymore, so just remove it.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Acked-by: Jordan Crouse <jordan@cos
drm/msm: remove unnecessary mmap logic for cached BOs
No one knows what this is for anymore, so just remove it.
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Acked-by: Jordan Crouse <jordan@cosmicpenguin.net> Link: https://lore.kernel.org/r/20210423190833.25319-2-jonathan@marek.ca Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
45f56690 |
| 18-May-2021 |
Alexey Minnekhanov <alexeymin@postmarketos.org> |
drm/msm: Init mm_list before accessing it for use_vram path
Fix NULL pointer dereference caused by update_inactive() trying to list_del() an uninitialized mm_list who's prev/next pointers are NULL.
drm/msm: Init mm_list before accessing it for use_vram path
Fix NULL pointer dereference caused by update_inactive() trying to list_del() an uninitialized mm_list who's prev/next pointers are NULL.
Fixes: 64fcbde772c7 ("drm/msm: Track potentially evictable objects") Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org> Link: https://lore.kernel.org/r/20210518102624.1193955-1-alexeymin@postmarketos.org Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
d3fae3b3 |
| 02-Jun-2021 |
Christian König <christian.koenig@amd.com> |
dma-buf: drop the _rcu postfix on function names v3
The functions can be called both in _rcu context as well as while holding the lock.
v2: add some kerneldoc as suggested by Daniel v3: fix indenta
dma-buf: drop the _rcu postfix on function names v3
The functions can be called both in _rcu context as well as while holding the lock.
v2: add some kerneldoc as suggested by Daniel v3: fix indentation
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210602111714.212426-7-christian.koenig@amd.com
show more ...
|
#
fb5ce730 |
| 11-May-2021 |
Christian König <christian.koenig@amd.com> |
dma-buf: rename and cleanup dma_resv_get_list v2
When the comment needs to state explicitly that this is doesn't get a reference to the object then the function is named rather badly.
Rename the fu
dma-buf: rename and cleanup dma_resv_get_list v2
When the comment needs to state explicitly that this is doesn't get a reference to the object then the function is named rather badly.
Rename the function and use it in even more places.
v2: use dma_resv_shared_list as new name
Signed-off-by: Christian König <christian.koenig@amd.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210602111714.212426-5-christian.koenig@amd.com
show more ...
|
#
6edbd6ab |
| 10-May-2021 |
Christian König <christian.koenig@amd.com> |
dma-buf: rename and cleanup dma_resv_get_excl v3
When the comment needs to state explicitly that this doesn't get a reference to the object then the function is named rather badly.
Rename the funct
dma-buf: rename and cleanup dma_resv_get_excl v3
When the comment needs to state explicitly that this doesn't get a reference to the object then the function is named rather badly.
Rename the function and use rcu_dereference_check(), this way it can be used from both rcu as well as lock protected critical sections.
v2: improve kerneldoc as suggested by Daniel v3: use dma_resv_excl_fence as function name
Signed-off-by: Christian König <christian.koenig@amd.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Link: https://patchwork.freedesktop.org/patch/msgid/20210602111714.212426-4-christian.koenig@amd.com
show more ...
|
#
10f76165 |
| 26-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Do not unpin/evict exported dma-buf's
Our initial logic for excluding dma-bufs was not quite right. In particular we want msm_gem_get/put_pages() path used for exported dma-bufs to increme
drm/msm: Do not unpin/evict exported dma-buf's
Our initial logic for excluding dma-bufs was not quite right. In particular we want msm_gem_get/put_pages() path used for exported dma-bufs to increment/decrement the pin-count.
Also, in case the importer is vmap'ing the dma-buf, we need to be sure to update the object's status, because it is now no longer potentially evictable.
Fixes: 63f17ef83428 drm/msm: Support evicting GEM objects to swap Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210426235326.1230125-1-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
Revision tags: v5.10.32, v5.10.31, v5.10.30 |
|
#
63f17ef8 |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Support evicting GEM objects to swap
Now that tracking is wired up for potentially evictable GEM objects, wire up shrinker and the remaining GEM bits for unpinning backing pages of inactive
drm/msm: Support evicting GEM objects to swap
Now that tracking is wired up for potentially evictable GEM objects, wire up shrinker and the remaining GEM bits for unpinning backing pages of inactive objects.
Disabled by default for now, with an 'enable_eviction' module param to enable so that we can get some more testing on the range of generations (and iommu pairings) supported.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-9-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
81d4d597 |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Small msm_gem_purge() fix
Shoot down any mmap's *first* before put_pages(). Also add a WARN_ON that the object is locked (to make it clear that this doesn't race with msm_gem_fault()) and
drm/msm: Small msm_gem_purge() fix
Shoot down any mmap's *first* before put_pages(). Also add a WARN_ON that the object is locked (to make it clear that this doesn't race with msm_gem_fault()) and remove a redundant WARN_ON (since is_purgable() already covers that case).
Fixes: 68209390f116 ("drm/msm: shrinker support") Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-8-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
64fcbde7 |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Track potentially evictable objects
Objects that are potential for swapping out are (1) willneed (ie. if they are purgable/MADV_WONTNEED we can just free the pages without them having to la
drm/msm: Track potentially evictable objects
Objects that are potential for swapping out are (1) willneed (ie. if they are purgable/MADV_WONTNEED we can just free the pages without them having to land in swap), (2) not on an active list, (3) not dma-buf imported or exported, and (4) not vmap'd. This repurposes the purged list for objects that do not have backing pages (either because they have not been pinned for the first time yet, or in a later patch because they have been unpinned/evicted.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-7-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
f48f3563 |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Add $debugfs/gem stats on resident objects
Currently nearly everything, other than newly allocated objects which are not yet backed by pages, is pinned and resident in RAM. But it will be
drm/msm: Add $debugfs/gem stats on resident objects
Currently nearly everything, other than newly allocated objects which are not yet backed by pages, is pinned and resident in RAM. But it will be nice to have some stats on what is unpinned once that is supported.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-6-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
20d0ae2f |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Split iova purge and close
Currently these always go together, either when we purge MADV_WONTNEED objects or when the object is freed. But for unpin, we want to be able to purge (unmap fro
drm/msm: Split iova purge and close
Currently these always go together, either when we purge MADV_WONTNEED objects or when the object is freed. But for unpin, we want to be able to purge (unmap from iommu) the vma, while keeping the iova range allocated (so we can remap back to the same GPU virtual address when the object is re-pinned.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-5-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
b9a31d0d |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Clear msm_obj->sgt in put_pages()
Currently this doesn't matter since we keep the pages pinned until the object is destroyed. But when we start unpinning pages to allow objects to be evict
drm/msm: Clear msm_obj->sgt in put_pages()
Currently this doesn't matter since we keep the pages pinned until the object is destroyed. But when we start unpinning pages to allow objects to be evicted to swap, it will.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-4-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
90643a24 |
| 05-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: ratelimit GEM related WARN_ON()s
If you mess something up, you don't really need to see the same warn on splat 4000 times pumped out a slow debug UART port..
Signed-off-by: Rob Clark <robd
drm/msm: ratelimit GEM related WARN_ON()s
If you mess something up, you don't really need to see the same warn on splat 4000 times pumped out a slow debug UART port..
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210405174532.1441497-2-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
0054eeb7 |
| 06-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Fix spelling "purgable" -> "purgeable"
The previous patch fixes the user visible spelling. This one fixes the code. Oops.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://
drm/msm: Fix spelling "purgable" -> "purgeable"
The previous patch fixes the user visible spelling. This one fixes the code. Oops.
Signed-off-by: Rob Clark <robdclark@chromium.org> Link: https://lore.kernel.org/r/20210406151816.1515329-1-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
f1902c6b |
| 06-Apr-2021 |
Colin Ian King <colin.king@canonical.com> |
drm/msm: Fix spelling mistake "Purgable" -> "Purgeable"
There is a spelling mistake in debugfs gem stats. Fix it. Also re-align output to cater for the extra 1 character.
Signed-off-by: Colin Ian K
drm/msm: Fix spelling mistake "Purgable" -> "Purgeable"
There is a spelling mistake in debugfs gem stats. Fix it. Also re-align output to cater for the extra 1 character.
Signed-off-by: Colin Ian King <colin.king@canonical.com> Link: https://lore.kernel.org/r/20210406133939.425987-1-colin.king@canonical.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
25ed38b3 |
| 02-Apr-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Drop mm_lock in scan loop
lock_stat + mmm_donut[1] say that this reduces contention on mm_lock significantly (~350x lower waittime-max, and ~100x lower waittime-avg)
[1] https://chromium.g
drm/msm: Drop mm_lock in scan loop
lock_stat + mmm_donut[1] say that this reduces contention on mm_lock significantly (~350x lower waittime-max, and ~100x lower waittime-avg)
[1] https://chromium.googlesource.com/chromiumos/platform/microbenchmarks/+/refs/heads/main/mmm_donut.py
Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20210402211226.875726-1-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|
#
528107c8 |
| 31-Mar-2021 |
Rob Clark <robdclark@chromium.org> |
drm/msm: Improved debugfs gem stats
The last patch lost the breakdown of active vs inactive GEM objects in $debugfs/gem. But we can add some better stats to summarize not just active vs inactive, b
drm/msm: Improved debugfs gem stats
The last patch lost the breakdown of active vs inactive GEM objects in $debugfs/gem. But we can add some better stats to summarize not just active vs inactive, but also purgable/purged to make up for that.
Signed-off-by: Rob Clark <robdclark@chromium.org> Tested-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20210401012722.527712-5-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
show more ...
|