public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: John Harrison <John.C.Harrison@Intel.com>
Cc: Intel-GFX@Lists.FreeDesktop.Org
Subject: Re: [PATCH 00/29] Replace seqno values with request structures
Date: Mon, 3 Nov 2014 18:07:37 +0100	[thread overview]
Message-ID: <20141103170737.GQ26941@phenom.ffwll.local> (raw)
In-Reply-To: <545289A8.9050303@Intel.com>

On Thu, Oct 30, 2014 at 06:55:36PM +0000, John Harrison wrote:
> Oops, forgot to update the text for the zero patch. This is no longer 'work
> in progress' and is now intended for proper review! The description should
> read as follows:
> 
> There is a general feeling that it is better to move away from using a
> simple
> integer 'seqno' value to track batch buffer completion. Instead, the request
> structure should be used. That provides for much more flexibility going
> forwards. Especially which things like a GPU scheduler (which can re-order
> batch
> buffers and hence seqnos after submission to the hardware), Android sync
> points
> and other such features which potentially make seqno usage more and more
> complex.
> 
> This patch set does the work of converting most of the driver to use request
> structures in preference to seqno values. The only place left that still
> uses
> seqnos is the semaphore code. It was decided to leave that alone for the
> time
> being as the semaphores are hardware based and the hardware only understands
> seqno values.
> 
> [Patches against drm-intel-nightly tree fetched 29/10/2014]

I've done a (very) quick readthrough and looks sane - all my bikesheds
seem to have been addressed. Or I've forgotten them again which means they
can't be that important ;-)

Anyway, please find some proper reviewer for this so I can vacuum it in.

Thanks, Daniel

> 
> 
> On 30/10/2014 18:40, John.C.Harrison@Intel.com wrote:
> >From: John Harrison <John.C.Harrison@Intel.com>
> >
> >Work in progress for replacing seqno usage with requst structures.
> >
> >There is a general feeling that it is better to move away from using a simple
> >integer 'seqno' value to track batch buffer completion. Instead, the request
> >structure should be used. That provides for much more flexibility going
> >forwards. Especially which things like a GPU scheduler (which can re-order batch
> >buffers and hence seqnos after submission to the hardware), Android sync points
> >and other such features which potentially make seqno usage more and more
> >complex.
> >
> >The current set of patches do most of the seqno to request structure conversion.
> >There are still a couple of direct seqno comparisons in the semaphore code. The
> >final conversion of a seqno test into a 'completed' flag inside the request
> >structure is still do to as well. Along with whatever changes are required to
> >maintain such a flag.
> >
> >The patches are being posted now to make sure that the various people involved
> >agree that it is heading in the right direction.
> >
> >[Patches against drm-intel-nightly tree fetched 11/09/2014]
> >
> >John Harrison (29):
> >   drm/i915: Remove redundant parameter to i915_gem_object_wait_rendering__tail()
> >   drm/i915: Ensure OLS & PLR are always in sync
> >   drm/i915: Add reference count to request structure
> >   drm/i915: Add helper functions to aid seqno -> request transition
> >   drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req
> >   drm/i915: Convert i915_gem_ring_throttle to use requests
> >   drm/i915: Ensure requests stick around during waits
> >   drm/i915: Remove 'outstanding_lazy_seqno'
> >   drm/i915: Make 'i915_gem_check_olr' actually check by request not seqno
> >   drm/i915: Convert 'last_flip_req' to be a request not a seqno
> >   drm/i915: Convert i915_wait_seqno to i915_wait_request
> >   drm/i915: Convert __wait_seqno() to __wait_request()
> >   drm/i915: Remove obsolete seqno parameter from 'i915_add_request'
> >   drm/i915: Convert mmio_flip::seqno to struct request
> >   drm/i915: Add IRQ friendly request deference facility
> >   drm/i915: Convert 'flip_queued_seqno' into 'flip_queued_request'
> >   drm/i915: Convert trace functions from seqno to request
> >   drm/i915: Convert 'trace_irq' to use requests rather than seqnos
> >   drm/i915: Convert 'ring_idle()' to use requests not seqnos
> >   drm/i915: Connect requests to rings at creation not submission
> >   drm/i915: Convert 'i915_seqno_passed' calls into 'i915_gem_request_completed'
> >   drm/i915: Remove the now redundant 'obj->ring'
> >   drm/i915: Cache request completion status
> >   drm/i915: Zero fill the request structure
> >   drm/i915: Spinlock protection for request list
> >   drm/i915: Add uniq id to request structure for debugging
> >   drm/i915: Interrupt driven request completion
> >   drm/i915: Remove obsolete parameter to i915_gem_request_completed()
> >   WIP: Defer seqno allocation until actual hardware submission time
> >
> >  drivers/gpu/drm/i915/i915_debugfs.c          |   20 +-
> >  drivers/gpu/drm/i915/i915_drv.h              |   89 ++++++-
> >  drivers/gpu/drm/i915/i915_gem.c              |  356 +++++++++++++++++---------
> >  drivers/gpu/drm/i915/i915_gem_context.c      |    3 +-
> >  drivers/gpu/drm/i915/i915_gem_execbuffer.c   |   10 +-
> >  drivers/gpu/drm/i915/i915_gem_gtt.h          |    4 +-
> >  drivers/gpu/drm/i915/i915_gem_render_state.c |    2 +-
> >  drivers/gpu/drm/i915/i915_gem_tiling.c       |    2 +-
> >  drivers/gpu/drm/i915/i915_gpu_error.c        |    7 +-
> >  drivers/gpu/drm/i915/i915_irq.c              |   14 +-
> >  drivers/gpu/drm/i915/i915_trace.h            |   47 ++--
> >  drivers/gpu/drm/i915/intel_display.c         |   53 ++--
> >  drivers/gpu/drm/i915/intel_drv.h             |    4 +-
> >  drivers/gpu/drm/i915/intel_lrc.c             |   59 +++--
> >  drivers/gpu/drm/i915/intel_overlay.c         |   24 +-
> >  drivers/gpu/drm/i915/intel_ringbuffer.c      |   82 +++---
> >  drivers/gpu/drm/i915/intel_ringbuffer.h      |   25 +-
> >  17 files changed, 505 insertions(+), 296 deletions(-)
> >
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

      reply	other threads:[~2014-11-03 17:07 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-30 18:40 [PATCH 00/29] Replace seqno values with request structures John.C.Harrison
2014-10-30 18:40 ` [PATCH 01/29] drm/i915: Remove redundant parameter to i915_gem_object_wait_rendering__tail() John.C.Harrison
2014-11-03 17:03   ` Daniel Vetter
2014-10-30 18:40 ` [PATCH 02/29] drm/i915: Ensure OLS & PLR are always in sync John.C.Harrison
2014-10-30 18:40 ` [PATCH 03/29] drm/i915: Add reference count to request structure John.C.Harrison
2014-10-30 18:40 ` [PATCH 04/29] drm/i915: Add helper functions to aid seqno -> request transition John.C.Harrison
2014-10-30 18:40 ` [PATCH 05/29] drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req John.C.Harrison
2014-11-11 11:39   ` Daniel, Thomas
2014-10-30 18:40 ` [PATCH 06/29] drm/i915: Convert i915_gem_ring_throttle to use requests John.C.Harrison
2014-10-30 18:40 ` [PATCH 07/29] drm/i915: Ensure requests stick around during waits John.C.Harrison
2014-10-30 18:41 ` [PATCH 08/29] drm/i915: Remove 'outstanding_lazy_seqno' John.C.Harrison
2014-10-30 18:41 ` [PATCH 09/29] drm/i915: Make 'i915_gem_check_olr' actually check by request not seqno John.C.Harrison
2014-10-30 18:41 ` [PATCH 10/29] drm/i915: Convert 'last_flip_req' to be a request not a seqno John.C.Harrison
2014-10-30 18:41 ` [PATCH 11/29] drm/i915: Convert i915_wait_seqno to i915_wait_request John.C.Harrison
2014-10-30 18:41 ` [PATCH 12/29] drm/i915: Convert __wait_seqno() to __wait_request() John.C.Harrison
2014-10-30 18:41 ` [PATCH 13/29] drm/i915: Remove obsolete seqno parameter from 'i915_add_request' John.C.Harrison
2014-10-30 18:41 ` [PATCH 14/29] drm/i915: Convert mmio_flip::seqno to struct request John.C.Harrison
2014-10-30 18:41 ` [PATCH 15/29] drm/i915: Add IRQ friendly request deference facility John.C.Harrison
2014-11-11 11:54   ` Daniel, Thomas
2014-10-30 18:41 ` [PATCH 16/29] drm/i915: Convert 'flip_queued_seqno' into 'flip_queued_request' John.C.Harrison
2014-10-30 18:41 ` [PATCH 17/29] drm/i915: Convert trace functions from seqno to request John.C.Harrison
2014-10-30 18:41 ` [PATCH 18/29] drm/i915: Convert 'trace_irq' to use requests rather than seqnos John.C.Harrison
2014-10-30 18:41 ` [PATCH 19/29] drm/i915: Convert 'ring_idle()' to use requests not seqnos John.C.Harrison
2014-10-30 18:41 ` [PATCH 20/29] drm/i915: Connect requests to rings at creation not submission John.C.Harrison
2014-10-30 18:41 ` [PATCH 21/29] drm/i915: Convert 'i915_seqno_passed' calls into 'i915_gem_request_completed' John.C.Harrison
2014-10-30 18:41 ` [PATCH 22/29] drm/i915: Remove the now redundant 'obj->ring' John.C.Harrison
2014-10-30 18:41 ` [PATCH 23/29] drm/i915: Cache request completion status John.C.Harrison
2014-10-30 18:41 ` [PATCH 24/29] drm/i915: Zero fill the request structure John.C.Harrison
2014-10-30 18:41 ` [PATCH 25/29] drm/i915: Spinlock protection for request list John.C.Harrison
2014-10-30 18:41 ` [PATCH 26/29] drm/i915: Add uniq id to request structure for debugging John.C.Harrison
2014-10-30 18:41 ` [PATCH 27/29] drm/i915: Interrupt driven request completion John.C.Harrison
2014-10-30 18:41 ` [PATCH 28/29] drm/i915: Remove obsolete parameter to i915_gem_request_completed() John.C.Harrison
2014-10-30 18:41 ` [PATCH 29/29] WIP: Defer seqno allocation until actual hardware submission time John.C.Harrison
2014-11-04 11:12   ` [PATCH 29/29] WIP: Defer seqno allocation until actual shuang.he
2014-10-30 18:55 ` [PATCH 00/29] Replace seqno values with request structures John Harrison
2014-11-03 17:07   ` Daniel Vetter [this message]

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=20141103170737.GQ26941@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=Intel-GFX@Lists.FreeDesktop.Org \
    --cc=John.C.Harrison@Intel.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