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 v3 21/28] drm/i915: Remove the now redundant 'obj->ring'
Date: Mon, 1 Dec 2014 17:44:28 +0100	[thread overview]
Message-ID: <20141201164428.GC32117@phenom.ffwll.local> (raw)
In-Reply-To: <547C629C.5010000@Intel.com>

On Mon, Dec 01, 2014 at 12:44:12PM +0000, John Harrison wrote:
> On 28/11/2014 18:06, Daniel Vetter wrote:
> >On Fri, Nov 28, 2014 at 05:49:26PM +0000, John Harrison wrote:
> >>On 26/11/2014 13:43, Daniel Vetter wrote:
> >>>On Mon, Nov 24, 2014 at 06:49:43PM +0000, John.C.Harrison@Intel.com wrote:
> >>>>From: John Harrison <John.C.Harrison@Intel.com>
> >>>>
> >>>>The ring member of the object structure was always updated with the
> >>>>last_read_seqno member. Thus with the conversion to last_read_req, obj->ring is
> >>>>now a direct copy of obj->last_read_req->ring. This makes it somewhat redundant
> >>>>and potentially misleading (especially as there was no comment to explain its
> >>>>purpose).
> >>>>
> >>>>This checkin removes the redundant field. Many uses were simply testing for
> >>>>non-null to see if the object is active on the GPU. Some of these have been
> >>>>converted to check 'obj->active' instead. Others (where the last_read_req is
> >>>>about to be used anyway) have been changed to check obj->last_read_req. The rest
> >>>>simply pull the ring out from the request structure and proceed as before.
> >>>>
> >>>>For: VIZ-4377
> >>>>Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> >>>>Reviewed-by: Thomas Daniel <Thomas.Daniel@intel.com>
> >>>Ok merged up to this for now. I'd like to settle things a bit first (and
> >>>also figure out what to do with the trace_irq stuff).
> >>>
> >>>Thanks for patches&review,
> >>>Daniel
> >>Now that the 3.19 pull request has gone, are you going to continue merging
> >>these patches? Or is there something else you particularly want to wait for?
> >Well I'm still not convinced that those patches are what we want. For
> >android (and a few other things) we really want to support struct fence,
> >and that already provides all the necessary code to cache the completion
> >state. So I don't see why we have to do a detour just to get caching into
> >place if for the long-term plan we'll need to rip all that code out again
> >anyway. And the scheduler without fence/syncpt integration doesn't make a
> >lot of sense on Android I think.
> >
> >Now if there's a seriuos performance issue with requests without this then
> >maybe this detour makes sense. But I don't see any benchmark data attached
> >to justify the patches from that pov.
> >-Daniel
> 
> Firstly, not all the missing patches are about performance caching. For
> example, the kmalloc vs kzalloc patch is simply better code all round. The
> tracing patch is also a general purpose driver improvement and makes
> debugging/analysing the code easier.

No concern with those patches from my side except that they're after the
caching change. I can cherry-pick them but it looks a bit like that might
backfire if I also don't pick the request state caching.

> Re the caching. My argument is that the request implementation, as it
> stands, is a significant step backwards over the original seqno version. In
> the original code, someone had evidently seen fit to make the completion
> test a minimal inline function. In the half merged request version, it is a
> function call with register reading and list traversal. As the cached
> version is already written, tested and reviewed, I do not see a reason to
> discard it in order to write a completely new version at some unspecified
> point in the future that may or may not be quite a large piece of work.
> 
> Also, the scheduler is already ported on top of the full request patch set
> and is running in the GMin Android code base with native sync included.
> Having to rewrite the underlying code yet again is going to be a significant
> delay in something that needs to be shipped last month. Delaying that short
> term work for a long term goal is really undesirable at this point. The plan
> has always been to rework for long term awesomeness (such as dmabuf sync
> integration) after something basic is implemented and shipped.
> 
> Do you have time for a phone call or meeting to discuss this?

Yeah, probably easier to discuss in a mtg. Jon Ewins should be there too I
think.
-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

  reply	other threads:[~2014-12-01 16:44 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-24 18:49 [PATCH v3 00/28] Replace seqno values with request structures John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 01/28] drm/i915: Ensure OLS & PLR are always in sync John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 02/28] drm/i915: Add reference count to request structure John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 03/28] drm/i915: Add helper functions to aid seqno -> request transition John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 04/28] drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 05/28] drm/i915: Convert i915_gem_ring_throttle to use requests John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 06/28] drm/i915: Ensure requests stick around during waits John.C.Harrison
2014-11-26 12:27   ` John Harrison
2014-11-26 13:14     ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 07/28] drm/i915: Remove 'outstanding_lazy_seqno' John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 08/28] drm/i915: Make 'i915_gem_check_olr' actually check by request not seqno John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 09/28] drm/i915: Convert 'last_flip_req' to be a request not a seqno John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 10/28] drm/i915: Convert i915_wait_seqno to i915_wait_request John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 11/28] drm/i915: Add IRQ friendly request deference facility John.C.Harrison
2014-11-26  9:19   ` Daniel Vetter
2014-11-26 12:23     ` John Harrison
2014-11-26 12:35       ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 12/28] drm/i915: Convert mmio_flip::seqno to struct request John.C.Harrison
2014-11-26  9:23   ` Daniel Vetter
2014-11-26 12:12     ` John Harrison
2014-11-26 12:49       ` Daniel Vetter
2014-11-26 15:21         ` John Harrison
2014-11-26 18:22           ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 13/28] drm/i915: Convert __wait_seqno() to __wait_request() John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 14/28] drm/i915: Remove obsolete seqno parameter from 'i915_add_request' John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 15/28] drm/i915: Convert 'flip_queued_seqno' into 'flip_queued_request' John.C.Harrison
2014-11-26 13:07   ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 16/28] drm/i915: Convert trace functions from seqno to request John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 17/28] drm/i915: Convert 'trace_irq' to use requests rather than seqnos John.C.Harrison
2014-11-26 13:24   ` Daniel Vetter
2014-11-26 14:12     ` John Harrison
2014-11-26 14:31       ` Chris Wilson
2014-11-26 14:42       ` Daniel Vetter
2014-11-26 14:58         ` John Harrison
2014-11-26 18:23           ` Daniel Vetter
2014-11-26 18:25             ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 18/28] drm/i915: Convert 'ring_idle()' to use requests not seqnos John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 19/28] drm/i915: Connect requests to rings at creation not submission John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 20/28] drm/i915: Convert 'i915_seqno_passed' calls into 'i915_gem_request_completed' John.C.Harrison
2014-11-26 13:42   ` Daniel Vetter
2014-11-24 18:49 ` [PATCH v3 21/28] drm/i915: Remove the now redundant 'obj->ring' John.C.Harrison
2014-11-26 13:43   ` Daniel Vetter
2014-11-28 17:49     ` John Harrison
2014-11-28 18:06       ` Daniel Vetter
2014-12-01 12:44         ` John Harrison
2014-12-01 16:44           ` Daniel Vetter [this message]
2014-11-24 18:49 ` [PATCH v3 22/28] drm/i915: Cache request completion status John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 23/28] drm/i915: Zero fill the request structure John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 24/28] drm/i915: Spinlock protection for request list John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 25/28] drm/i915: Interrupt driven request completion John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 26/28] drm/i915: Remove obsolete parameter to i915_gem_request_completed() John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 27/28] drm/i915: Add unique id to the request structure for debugging John.C.Harrison
2014-11-24 18:49 ` [PATCH v3 28/28] drm/i915: Additional request structure tracing John.C.Harrison
2014-11-25 11:59 ` [PATCH v3 00/28] Replace seqno values with request structures Daniel, Thomas
2014-12-05 13:49 ` [PATCH v4 0/4] " John.C.Harrison
2014-12-05 13:49   ` [PATCH v4 1/4] drm/i915: Fix up seqno -> request merge issues John.C.Harrison
2014-12-05 20:37     ` Daniel Vetter
2014-12-05 13:49   ` [PATCH v4 2/4] drm/i915: Zero fill the request structure John.C.Harrison
2014-12-05 13:49   ` [PATCH v4 3/4] drm/i915: Add unique id to the request structure for debugging John.C.Harrison
2014-12-05 13:49   ` [PATCH v4 4/4] drm/i915: Additional request structure tracing John.C.Harrison
2014-12-05 19:01     ` shuang.he
2014-12-05 20:48     ` Daniel Vetter
2014-12-05 20:50       ` Daniel Vetter

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=20141201164428.GC32117@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