[RFC PATCH 0/2] drm: etnaviv: Unmap gems on gem_close
Daniel Vetter
daniel at ffwll.ch
Thu Oct 29 14:08:09 UTC 2020
On Thu, Oct 29, 2020 at 2:54 PM Guido Günther <agx at sigxcpu.org> wrote:
>
> This is meant as a RFC since i'm not sure if this is the right
> way to fix the problem:
>
> So far the unmap from gpu address space only happened when dropping the
> last ref in gem_free_object_unlocked, however that is skipped if there's
> still multiple handles to the same GEM object.
>
> Since userspace (here mesa) in the case of softpin hands back the memory
> region to the pool of available GPU virtual memory closing the handle
> via DRM_IOCTL_GEM_CLOSE this can lead to etnaviv_iommu_insert_exact
> failing later since userspace thinks the vaddr is available while the
> kernel thinks it isn't making the submit fail like
>
> [E] submit failed: -14 (No space left on device) (etna_cmd_stream_flush:244)
>
> Fix this by unmapping the memory via the .gem_close_object callback.
>
> The patch is against 5.9 and will need to be redone for drm-misc-next due to
> the conversion to GEM object functions but i'm happy to do that it looks like
> the right approach.
>
> I can trigger the problem when plugging/unplugging a DP screen driven by DCSS
> while DSI is driven by mxsfb. It preferably happens with 4k since this
> allocates bigger chunks.
>
> I also folded in a commit checking for the context->lock in
> etnaviv_iommu_insert_exact and etnaviv_iommu_remove_mapping too to make it
> match etnaviv_iommu_find_iova.
>
> Guido Günther (2):
> drm: etnaviv: Add lockdep annotations for context lock
> drm: etnaviv: Unmap gems on gem_close
Can you pls resubmit with dri-devel on cc? This is kinda a general
problem of letting userspace manage the gpu VA.
-Daniel
>
> drivers/gpu/drm/etnaviv/etnaviv_drv.c | 1 +
> drivers/gpu/drm/etnaviv/etnaviv_drv.h | 1 +
> drivers/gpu/drm/etnaviv/etnaviv_gem.c | 32 +++++++++++++++++++++++++++
> drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 4 ++++
> 4 files changed, 38 insertions(+)
>
> --
> 2.28.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the etnaviv
mailing list