drm/msm: separate iova allocation and mapping
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest8 of 9 patches 0 repliesNew
- v16 patches 0 repliesSuperseded
8 of 9 patches are in this archive. The cover letter announces 9.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/9 | drm/msm: Add a common function to free kernel buffer objectsdrivers/ drivers/ drivers/ +4 more | +26 | 0 replies | |
| 2/9 | drm/msm: Remove sgt from the mmu unmap functiondrivers/ drivers/ drivers/ +2 more | +6 | 0 replies | |
| 3/9 | drm/msm: Split msm_gem_get_iova into two stepsdrivers/ drivers/ drivers/ +1 more | +86 | 0 replies | |
| 4/9 | drm/msm: Clean up and enhance the output of the 'gem' debugfs nodedrivers/ | +14 | 0 replies | |
| 5/9 | drm/msm: Add msm_gem_get_and_pin_iova()drivers/ drivers/ drivers/ +9 more | +36 | 0 replies | |
| 7/9 | drm/msm: Add a name field for gem objectsdrivers/ drivers/ drivers/ +8 more | +43 | 0 replies | |
| 8/9 | drm/msm: Add a name field to struct drm_msm_gem_newdrivers/ drivers/ drivers/ +1 more | +19 | 0 replies | |
| 9/9 | drm/msm/gpu: Map the ringbuffer in the iova at create timedrivers/ drivers/ | +2 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 0/9] drm/msm: separate iova allocation and mapping
Currently in the msm driver iova addresses are mapped in the IOMMU at allocation time and stay there for the life of the buffer. This may not be desirable for long lived user space buffers that could be temporarily swapped or moved.
This first set of patches breaks up the allocation and mapping into distinct steps and adds reference counting for pinning and unpinning the memory. Future code can use this information to manipulate the memory when it isn't in use.
Revision 2 adds an additional 2 patches to add a description to each buffer object so the output from the debugfs file gives a clue as to what the buffer is used for. This is useful for debugging leaks and will also be helpful when we start to figure out how to shrink or move memory around.
The last patch fixes an annoyance where the ringbuffer iova was refcounted every time the GPU started. It isn't harmful but it sticks out like a sore thumb when debugging.
Jordan Crouse (9):
drm/msm: Add a common function to free kernel buffer objects drm/msm: Remove sgt from the mmu unmap function drm/msm: Split msm_gem_get_iova into two steps
drm/msm: Clean up and enhance the output of the 'gem' debugfs node drm/msm: Add msm_gem_get_and_pin_iova()
drm/msm: Count how many times iova memory is pinned drm/msm: Add a name field for gem objects
drm/msm: Add a name field to struct drm_msm_gem_new drm/msm/gpu: Map the ringbuffer in the iova at create time
drivers/gpu/drm/msm/adreno/a5xx_debugfs.c | 6 +- drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 33 ++-- drivers/gpu/drm/msm/adreno/a5xx_power.c | 15 +- drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 16 +- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 5 +- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 8 - drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 6 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 4 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 4 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 6 +- drivers/gpu/drm/msm/msm_drv.c | 9 +- drivers/gpu/drm/msm/msm_drv.h | 20 ++- drivers/gpu/drm/msm/msm_fb.c | 6 +- drivers/gpu/drm/msm/msm_fbdev.c | 2 +- drivers/gpu/drm/msm/msm_gem.c | 193 ++++++++++++++++------ drivers/gpu/drm/msm/msm_gem.h | 4 + drivers/gpu/drm/msm/msm_gem_submit.c | 4 +- drivers/gpu/drm/msm/msm_gem_vma.c | 95 ++++++++--- drivers/gpu/drm/msm/msm_gpu.c | 18 +- drivers/gpu/drm/msm/msm_iommu.c | 3 +- drivers/gpu/drm/msm/msm_mmu.h | 3 +- drivers/gpu/drm/msm/msm_ringbuffer.c | 14 +- include/uapi/drm/msm_drm.h | 1 + 23 files changed, 302 insertions(+), 173 deletions(-)
Signature · 6 lines
2.18.0 _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno