From: Lucas Stach <l.stach@pengutronix.de>
To: etnaviv@lists.freedesktop.org
Cc: patchwork-lst@pengutronix.de, kernel@pengutronix.de,
dri-devel@lists.freedesktop.org,
Russell King <linux+etnaviv@armlinux.org.uk>
Subject: [PATCH v2 0/8] per-process address spaces for MMUv2
Date: Wed, 17 Apr 2019 15:50:15 +0200 [thread overview]
Message-ID: <20190417135023.26977-1-l.stach@pengutronix.de> (raw)
Hi all,
v1 cover letter:
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.
Changes since v1:
- fixed an issue where a debugsfs read could run into a kernel NULL
ptr dereference due to no current MMU context
- fixed an issue where the current MMU context could be destroyed
due to the DRM client going away, while it is still in use by
an active GPU job
- more extensive testing on GC880, GC2000, GC3000 and GC7000
Regards,
Lucas
Lucas Stach (8):
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 | 16 +-
drivers/gpu/drm/etnaviv/etnaviv_drv.c | 50 ++-
drivers/gpu/drm/etnaviv/etnaviv_drv.h | 12 +-
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 64 ++--
drivers/gpu/drm/etnaviv/etnaviv_dump.h | 4 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 27 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.h | 5 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 12 +-
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 134 ++++-----
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 | 2 +-
18 files changed, 740 insertions(+), 606 deletions(-)
delete mode 100644 drivers/gpu/drm/etnaviv/etnaviv_iommu.h
--
2.20.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2019-04-17 13:50 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-17 13:50 Lucas Stach [this message]
2019-04-17 13:50 ` [PATCH v2 1/8] drm/etnaviv: split out cmdbuf mapping into address space Lucas Stach
2019-04-23 16:44 ` Philipp Zabel
2019-04-17 13:50 ` [PATCH v2 2/8] drm/etnaviv: share a single cmdbuf suballoc region across all GPUs Lucas Stach
2019-04-23 17:04 ` Philipp Zabel
2019-04-17 13:50 ` [PATCH v2 3/8] drm/etnaviv: replace MMU flush marker with flush sequence Lucas Stach
2019-04-23 17:13 ` Philipp Zabel
2019-04-17 13:50 ` [PATCH v2 4/8] drm/etnaviv: rework MMU handling Lucas Stach
2019-05-03 10:29 ` Guido Günther
2019-04-17 13:50 ` [PATCH v2 5/8] drm/etnaviv: split out starting of FE idle loop Lucas Stach
2019-04-25 9:30 ` Philipp Zabel
2019-04-17 13:50 ` [PATCH v2 6/8] drm/etnaviv: provide MMU context to etnaviv_gem_mapping_get Lucas Stach
2019-04-25 9:35 ` Philipp Zabel
2019-04-17 13:50 ` [PATCH v2 7/8] drm/etnaviv: implement per-process address spaces on MMUv2 Lucas Stach
2019-04-17 13:50 ` [PATCH v2 8/8] drm/etnaviv: dump only failing submit Lucas Stach
2019-05-03 11:10 ` [PATCH v2 0/8] per-process address spaces for MMUv2 Guido Günther
2019-05-10 15:07 ` Guido Günther
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190417135023.26977-1-l.stach@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=etnaviv@lists.freedesktop.org \
--cc=kernel@pengutronix.de \
--cc=linux+etnaviv@armlinux.org.uk \
--cc=patchwork-lst@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).