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 00/27] Etnaviv job lifetime issue fixes
Date: Fri, 1 Dec 2017 11:35:57 +0100 [thread overview]
Message-ID: <20171201103624.6565-1-l.stach@pengutronix.de> (raw)
Hi all,
this series fixes the job (submit) lifetime issues exposed by the addition
of the performance counter sampling. After this series the submits are
properly reference counted and cleanup is moved to one central location,
which makes reasoning about the GPU submit path much easier. Lifetime of
the submit and cmdbuf are now the same, which allows to remove some
duplication that was necessary before due to different lifetimes of those
objects.
I confess that this series does more than strictly necessary to fix the
issue exposed by perfmon, but it also includes a lot of prep work for
other big changes to the submit path, which are still in the works.
Also I've cleaned up little things I mentioned while working my way through
those code paths. One more nice effect of this series is that it unlocks
some more concurrency between submits to different GPUs, so provides some
small performance improvements when running on X.Org, where both the 3D and
2D GPU are used. Benefits might be larger for upcoming SoCs with multiple
GPUs.
Please review. This is the base set of patches I would like to land in 4.16.
Regards,
Lucas
Lucas Stach (27):
drm/etnaviv: fix GPU vs sync point race
drm/etnaviv: split obj locks in different classes depending on the obj
type
drm/etnaviv: add lockdep annotation for userptr object population
drm/etnaviv: fold __etnaviv_gem_new into caller
drm/etnaviv: change return type of etnaviv_gem_obj_add to void
drm/etnaviv: get rid of userptr worker
drm/etnaviv: remove -EAGAIN handling from submit path
drm/etnaviv: remove stale TODO in etnaviv_gpu_submit
drm/etnaviv: don't flush workqueue in etnaviv_gpu_wait_obj_inactive
drm/etnaviv: remove switch_context member from etnaviv_gpu
drm/etnaviv: move workqueue to be per GPU
drm/etnaviv: hold GPU lock while inserting END command
drm/etnaviv: add lockdep annotations to buffer manipulation functions
drm/etnaviv: simplify submit_create
drm/etnaviv: move object fence attachment to gem_submit path
drm/etnaviv: rename submit fence to out_fence
drm/etnaviv: attach in fence to submit and move fence wait to
fence_sync
drm/etnaviv: move object unpinning to submit cleanup
drm/etnaviv: move ww_acquire_ctx out of submit object
drm/etnaviv: refcount the submit object
drm/etnaviv: move PMRs to submit object
drm/etnaviv: move exec_state to submit object
drm/etnaviv: use submit exec_state for perfmon sampling
drm/etnaviv: move cmdbuf into submit object
drm/etnaviv: move GPU active handling to bo pin/unpin
drm/etnaviv: couple runtime PM management to submit object lifetime
drm/etnaviv: re-enable perfmon support
drivers/gpu/drm/etnaviv/etnaviv_buffer.c | 40 ++++--
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c | 29 +---
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h | 18 +--
drivers/gpu/drm/etnaviv/etnaviv_drv.c | 22 +--
drivers/gpu/drm/etnaviv/etnaviv_drv.h | 14 +-
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 23 +--
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 197 ++++++--------------------
drivers/gpu/drm/etnaviv/etnaviv_gem.h | 22 +--
drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 7 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 199 ++++++++++++++------------
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 204 +++++++++------------------
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 11 +-
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c | 2 +-
drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 4 +-
drivers/gpu/drm/etnaviv/etnaviv_perfmon.h | 2 +-
15 files changed, 297 insertions(+), 497 deletions(-)
--
2.11.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2017-12-01 10:36 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 10:35 Lucas Stach [this message]
2017-12-01 10:35 ` [PATCH 01/27] drm/etnaviv: fix GPU vs sync point race Lucas Stach
2017-12-01 11:33 ` Philipp Zabel
2017-12-11 7:47 ` Christian Gmeiner
2017-12-01 10:35 ` [PATCH 02/27] drm/etnaviv: split obj locks in different classes depending on the obj type Lucas Stach
2017-12-01 11:33 ` Philipp Zabel
2017-12-11 7:48 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 03/27] drm/etnaviv: add lockdep annotation for userptr object population Lucas Stach
2017-12-11 10:46 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 04/27] drm/etnaviv: fold __etnaviv_gem_new into caller Lucas Stach
2017-12-01 11:34 ` Philipp Zabel
2017-12-11 10:47 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 05/27] drm/etnaviv: change return type of etnaviv_gem_obj_add to void Lucas Stach
2017-12-01 11:34 ` Philipp Zabel
2017-12-11 10:47 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 06/27] drm/etnaviv: get rid of userptr worker Lucas Stach
2017-12-01 16:38 ` Philipp Zabel
2017-12-01 16:51 ` Russell King - ARM Linux
2017-12-01 17:02 ` Lucas Stach
2017-12-01 10:36 ` [PATCH 07/27] drm/etnaviv: remove -EAGAIN handling from submit path Lucas Stach
2017-12-01 16:39 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 08/27] drm/etnaviv: remove stale TODO in etnaviv_gpu_submit Lucas Stach
2017-12-11 10:49 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 09/27] drm/etnaviv: don't flush workqueue in etnaviv_gpu_wait_obj_inactive Lucas Stach
2017-12-01 16:39 ` Philipp Zabel
2017-12-01 16:59 ` Russell King - ARM Linux
2017-12-01 17:12 ` Lucas Stach
2017-12-01 10:36 ` [PATCH 10/27] drm/etnaviv: remove switch_context member from etnaviv_gpu Lucas Stach
2017-12-01 16:40 ` Philipp Zabel
2017-12-11 10:51 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 11/27] drm/etnaviv: move workqueue to be per GPU Lucas Stach
2017-12-01 16:42 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 12/27] drm/etnaviv: hold GPU lock while inserting END command Lucas Stach
2017-12-01 16:43 ` Philipp Zabel
2017-12-11 10:48 ` Christian Gmeiner
2017-12-01 10:36 ` [PATCH 13/27] drm/etnaviv: add lockdep annotations to buffer manipulation functions Lucas Stach
2017-12-01 16:47 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 14/27] drm/etnaviv: simplify submit_create Lucas Stach
2017-12-01 16:47 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 15/27] drm/etnaviv: move object fence attachment to gem_submit path Lucas Stach
2017-12-11 9:17 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 16/27] drm/etnaviv: rename submit fence to out_fence Lucas Stach
2017-12-01 10:36 ` [PATCH 17/27] drm/etnaviv: attach in fence to submit and move fence wait to fence_sync Lucas Stach
2017-12-11 9:20 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 18/27] drm/etnaviv: move object unpinning to submit cleanup Lucas Stach
2017-12-11 9:23 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 19/27] drm/etnaviv: move ww_acquire_ctx out of submit object Lucas Stach
2017-12-15 18:34 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 20/27] drm/etnaviv: refcount the " Lucas Stach
2017-12-11 12:41 ` Philipp Zabel
2017-12-01 10:36 ` [PATCH 21/27] drm/etnaviv: move PMRs to " Lucas Stach
2017-12-01 10:36 ` [PATCH 22/27] drm/etnaviv: move exec_state " Lucas Stach
2017-12-01 10:36 ` [PATCH 23/27] drm/etnaviv: use submit exec_state for perfmon sampling Lucas Stach
2017-12-01 10:36 ` [PATCH 24/27] drm/etnaviv: move cmdbuf into submit object Lucas Stach
2017-12-01 10:36 ` [PATCH 25/27] drm/etnaviv: move GPU active handling to bo pin/unpin Lucas Stach
2017-12-01 10:36 ` [PATCH 26/27] drm/etnaviv: couple runtime PM management to submit object lifetime Lucas Stach
2017-12-01 10:36 ` [PATCH 27/27] drm/etnaviv: re-enable perfmon support Lucas Stach
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=20171201103624.6565-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.