[PATCH 0/2] drm/msm: fix dma-buf sharing on targets without per-process pgtables
Dmitry Baryshkov <[email protected]>
| Newsgroups | org.freedesktop.lists.dri-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <[email protected]> |
Targets without per-process pgtables -- everything pre-a6xx, plus a6xx parts where split pagetables are unavailable -- hand every DRM file the GPU's global VM. The rest of the driver still treats a context VM as private to that context, so closing a handle tears down mappings other files are still using, and frees the iova for immediate reuse. A dma-buf shared between two clients therefore keeps sampling an address that the next allocation has taken over. On a530 this is every ext_image_dma_buf_import sampling test, reading back all zeros. A VM shared between contexts needs the lazy, refcounted teardown the driver already implements for kms->vm. Rather than adding a second mechanism, the first patch makes that machinery reusable and the second one puts the shared GPU VM behind it. Signed-off-by: Dmitry Baryshkov <[email protected]> --- Dmitry Baryshkov (2): drm/msm: factor out a locking put_iova_spaces() wrapper drm/msm: don't tear down shared VM mappings on handle close drivers/gpu/drm/msm/msm_gem.c | 45 ++++++++++++++++++++++++++++--------------- drivers/gpu/drm/msm/msm_gpu.c | 4 +++- drivers/gpu/drm/msm/msm_gpu.h | 3 +++ 3 files changed, 36 insertions(+), 16 deletions(-) --- base-commit: 6b8c8af514d739d0335f5579b585e02babe8a727 change-id: 20260822-msm-fix-export-c4a4cd9239fc Best regards, -- With best wishes Dmitry