[PATCH 00/10] per-process address spaces for MMUv2
Lucas Stach
l.stach at pengutronix.de
Wed Dec 19 14:45:36 UTC 2018
Hi all,
the following patches finally implement one of the longstanding TODO
items in the etnaviv driver: per-process address spaces. They are only
enabled for MMUv2, as switching the MMU context on MMUv1 would require
a full stop of the FE, which I deemed too expensive to do on potentially
every submitted commandstream.
For now this only provides better isolation between GPU clients, but it
is also a big step in the direction of supporting softpin. Softpin will
later be used by GC7000 userspace drivers to deal with texture descriptors
without the need to add even more relocation interfaces to the etnaviv
UAPI.
The changes are big and pretty disruptive, so I acknowledge that they
aren't prime targets for a quick review, but I would appreciate a
second pairs of eyes on them.
FWIW, I've been running a variation of those patches for some time on
GC2000, GC3000 and GC7000.
Regards,
Lucas
Lucas Stach (10):
drm/etnaviv: move job context pointer to etnaviv_gem_submit
drm/etnaviv: mmuv2: don't map zero page
drm/etnaviv: split out cmdbuf mapping into address space
drm/etnaviv: share a single cmdbuf suballoc region across all GPUs
drm/etnaviv: replace MMU flush marker with flush sequence
drm/etnaviv: rework MMU handling
drm/etnaviv: split out starting of FE idle loop
drm/etnaviv: provide MMU context to etnaviv_gem_mapping_get
drm/etnaviv: implement per-process address spaces on MMUv2
drm/etnaviv: dump only failing submit
drivers/gpu/drm/etnaviv/etnaviv_buffer.c | 83 +++--
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c | 56 ++--
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h | 18 +-
drivers/gpu/drm/etnaviv/etnaviv_drv.c | 27 +-
drivers/gpu/drm/etnaviv/etnaviv_drv.h | 12 +-
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 63 ++--
drivers/gpu/drm/etnaviv/etnaviv_dump.h | 4 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 27 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.h | 6 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 11 +-
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 131 ++++----
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 12 +-
drivers/gpu/drm/etnaviv/etnaviv_iommu.c | 160 +++++-----
drivers/gpu/drm/etnaviv/etnaviv_iommu.h | 20 --
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c | 279 ++++++++---------
drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 301 ++++++++++++-------
drivers/gpu/drm/etnaviv/etnaviv_mmu.h | 109 +++++--
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
18 files changed, 717 insertions(+), 606 deletions(-)
delete mode 100644 drivers/gpu/drm/etnaviv/etnaviv_iommu.h
--
2.19.1
More information about the dri-devel
mailing list