From: Daniel Vetter <daniel@ffwll.ch>
To: "Daniel, Thomas" <thomas.daniel@intel.com>
Cc: "Intel-GFX@Lists.FreeDesktop.Org" <Intel-GFX@Lists.FreeDesktop.Org>
Subject: Re: [PATCH v2 00/28] Replace seqno values with request structures
Date: Fri, 21 Nov 2014 21:56:06 +0100 [thread overview]
Message-ID: <20141121205606.GF25711@phenom.ffwll.local> (raw)
In-Reply-To: <20141121205237.GE25711@phenom.ffwll.local>
On Fri, Nov 21, 2014 at 09:52:37PM +0100, Daniel Vetter wrote:
> On Thu, Nov 20, 2014 at 09:32:34AM +0000, Daniel, Thomas wrote:
> > > -----Original Message-----
> > > From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf
> > > Of Daniel Vetter
> > > Sent: Wednesday, November 19, 2014 7:29 PM
> > > To: Harrison, John C
> > > Cc: Intel-GFX@Lists.FreeDesktop.Org
> > > Subject: Re: [Intel-gfx] [PATCH v2 00/28] Replace seqno values with request
> > > structures
> > >
> > > On Fri, Nov 14, 2014 at 12:18:51PM +0000, John.C.Harrison@Intel.com wrote:
> > > > From: John Harrison <John.C.Harrison@Intel.com>
> > > >
> > > > 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.
> > > >
> > > > v2: Rebased to newer nightly tree which significantly changed some of
> > > > the display MMIO flip code (including making __wait_request public and
> > > > renaming it).
> > > >
> > > > [Patches against drm-intel-nightly tree fetched 13/11/2014]
> > > >
> > > > John Harrison (28):
> > > > 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: Add IRQ friendly request deference facility
> > > > drm/i915: Convert mmio_flip::seqno to struct request
> > > > drm/i915: Convert __wait_seqno() to __wait_request()
> > > > drm/i915: Remove obsolete seqno parameter from 'i915_add_request'
> > > > 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: Interrupt driven request completion
> > > > drm/i915: Remove obsolete parameter to
> > > i915_gem_request_completed()
> > > > drm/i915: Add unique id to the request structure for debugging
> > > > drm/i915: Additional request structure tracing
> > >
> > > Erhm this stuff is blocking refactoring work since I don't want to wreak major
> > > havoc with the codebase to avoid rebase hell for you. That means reviewing
> > > and merging early, even if the tail of the patch series isn't 100% clear yet.
> > >
> > > Imo everything past patch 21 is fairly optional icing on the cake here.
> > > And if there early patches are non-controversial then I'd like them to pull in
> > > even if there's some detail missing in a patch in the middle.
> > >
> > > But I haven't seen r-b tags anywhere really :(
> > Well there is some review discussion going on, but my remaining gripe
> > about a double init for a new list isn't a showstopper. So in the
> > interests of unblocking other work I will give my r-b to this v2
> > patchset.
> >
> > Reviewed-by: Thomas Daniel <Thomas.Daniel@intel.com>
>
> Ok, I've tried to vacuum this up but it conflicts. And this kind of
> large-scale refactoring isn't really the stuff I feel safe to fix up while
> applying. So can you please rebase this (perhaps together with Thomas just
> to make sure there's not last minute screwup and the r-b is still valid)?
Aside, for rebasing just do the up to patch 21 since I'm kinda not yet
sold on the caching. I think we should directly go to struct fence (which
we need anyway for android syncpts) which already has state caching. And
even if we merge these patches I prefer to give the first batch a bit of
time on the line to hang out and dry.
-Daniel
--
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
prev parent reply other threads:[~2014-11-21 20:55 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 12:18 [PATCH v2 00/28] Replace seqno values with request structures John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 01/28] drm/i915: Ensure OLS & PLR are always in sync John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 02/28] drm/i915: Add reference count to request structure John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 03/28] drm/i915: Add helper functions to aid seqno -> request transition John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 04/28] drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 05/28] drm/i915: Convert i915_gem_ring_throttle to use requests John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 06/28] drm/i915: Ensure requests stick around during waits John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 07/28] drm/i915: Remove 'outstanding_lazy_seqno' John.C.Harrison
2014-11-14 12:18 ` [PATCH v2 08/28] drm/i915: Make 'i915_gem_check_olr' actually check by request not seqno John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 09/28] drm/i915: Convert 'last_flip_req' to be a request not a seqno John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 10/28] drm/i915: Convert i915_wait_seqno to i915_wait_request John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 11/28] drm/i915: Add IRQ friendly request deference facility John.C.Harrison
2014-11-18 9:34 ` Daniel, Thomas
2014-11-19 12:25 ` John Harrison
2014-11-19 13:28 ` Daniel, Thomas
2014-11-19 17:05 ` John Harrison
2014-11-19 17:28 ` Daniel, Thomas
2014-11-19 18:08 ` Dave Gordon
2014-11-14 12:19 ` [PATCH v2 12/28] drm/i915: Convert mmio_flip::seqno to struct request John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 13/28] drm/i915: Convert __wait_seqno() to __wait_request() John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 14/28] drm/i915: Remove obsolete seqno parameter from 'i915_add_request' John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 15/28] drm/i915: Convert 'flip_queued_seqno' into 'flip_queued_request' John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 16/28] drm/i915: Convert trace functions from seqno to request John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 17/28] drm/i915: Convert 'trace_irq' to use requests rather than seqnos John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 18/28] drm/i915: Convert 'ring_idle()' to use requests not seqnos John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 19/28] drm/i915: Connect requests to rings at creation not submission John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 20/28] drm/i915: Convert 'i915_seqno_passed' calls into 'i915_gem_request_completed' John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 21/28] drm/i915: Remove the now redundant 'obj->ring' John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 22/28] drm/i915: Cache request completion status John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 23/28] drm/i915: Zero fill the request structure John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 24/28] drm/i915: Spinlock protection for request list John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 25/28] drm/i915: Interrupt driven request completion John.C.Harrison
2014-11-18 9:40 ` Daniel, Thomas
2014-11-19 12:29 ` John Harrison
2014-11-14 12:19 ` [PATCH v2 26/28] drm/i915: Remove obsolete parameter to i915_gem_request_completed() John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 27/28] drm/i915: Add unique id to the request structure for debugging John.C.Harrison
2014-11-14 12:19 ` [PATCH v2 28/28] drm/i915: Additional request structure tracing John.C.Harrison
2014-11-14 20:54 ` [PATCH v2 28/28] drm/i915: Additional request structure shuang.he
2014-11-19 19:28 ` [PATCH v2 00/28] Replace seqno values with request structures Daniel Vetter
2014-11-20 9:32 ` Daniel, Thomas
2014-11-21 20:52 ` Daniel Vetter
2014-11-21 20:56 ` 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=20141121205606.GF25711@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=Intel-GFX@Lists.FreeDesktop.Org \
--cc=thomas.daniel@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