dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Ville Syrjala <ville.syrjala@linux.intel.com>
To: dri-devel@lists.freedesktop.org
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	intel-gfx@lists.freedesktop.org
Subject: [PATCH 0/4] drm/atomic: Lockless blocking commits
Date: Fri, 16 Sep 2022 19:33:27 +0300	[thread overview]
Message-ID: <20220916163331.6849-1-ville.syrjala@linux.intel.com> (raw)

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

I've talked about making blocking commits lockless a few
times in the past, so here's finally an attempt at it.
The main benefit I see from this is that TEST_ONLY commits
no longer getting blocked on the mutexes by parallel blocking
commits.

I have a small test here that spools up two threads,
one does just TEST_ONLY commits in a loop, the other
does either blocking or non-blocking page flips. Results
came out as follows on a snb machine here:

test-only-vs-non-blocking:
-85319 TEST_ONLY commits in 2000000 usecs, 23 usecs / commit
+87144 TEST_ONLY commits in 2000006 usecs, 22 usecs / commit

test-only-vs-blocking:
-219 TEST_ONLY commits in 2001768 usecs, 9140 usecs / commit
+82442 TEST_ONLY commits in 2000011 usecs, 24 usecs / commit

Now, I have no idea if anyone actually cares about lack
of parallelism due to locked blocking commits or not. Hence
Cc'd some compositor folks as well. I guess this is more of
an RFC at this point.

Also curious to see if CI goes up in smoke or not...

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Simon Ser <contact@emersion.fr>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: Jonas Ådahl <jadahl@gmail.com>

Ville Syrjälä (4):
  drm/atomic: Treat a nonblocking commit following a blocking commit as
    blocking commit
  drm/i915: Don't reuse commit_work for the cleanup
  drm/atomic: Allow lockless blocking commits
  drm/i915: Make blocking commits lockless

 drivers/gpu/drm/drm_atomic.c                  | 32 +++++++++++++++++--
 drivers/gpu/drm/drm_atomic_helper.c           | 19 +++++++----
 drivers/gpu/drm/drm_atomic_uapi.c             | 11 +++++--
 drivers/gpu/drm/i915/display/intel_display.c  | 15 +++------
 .../drm/i915/display/intel_display_types.h    |  1 +
 include/drm/drm_atomic.h                      |  8 +++++
 6 files changed, 64 insertions(+), 22 deletions(-)

-- 
2.35.1


             reply	other threads:[~2022-09-16 16:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 16:33 Ville Syrjala [this message]
2022-09-16 16:33 ` [PATCH 1/4] drm/atomic: Treat a nonblocking commit following a blocking commit as blocking commit Ville Syrjala
2022-09-16 16:33 ` [PATCH 2/4] drm/i915: Don't reuse commit_work for the cleanup Ville Syrjala
2022-09-16 16:33 ` [PATCH 3/4] drm/atomic: Allow lockless blocking commits Ville Syrjala
2022-09-16 16:33 ` [PATCH 4/4] drm/i915: Make blocking commits lockless Ville Syrjala
2022-09-20  7:34 ` [PATCH 0/4] drm/atomic: Lockless blocking commits Pekka Paalanen
2022-09-26 15:32   ` Ville Syrjälä

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=20220916163331.6849-1-ville.syrjala@linux.intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=pekka.paalanen@collabora.com \
    /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).