From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 03/23] drm/i915: Remove lrc default desc from GEM context
Date: Thu, 1 Aug 2019 16:29:53 +0100 [thread overview]
Message-ID: <1fcdbd8b-acf4-5493-24b5-16eca782d997@linux.intel.com> (raw)
In-Reply-To: <156465803327.5400.3625959459348155022@skylake-alporthouse-com>
On 01/08/2019 12:13, Chris Wilson wrote:
> Quoting Chris Wilson (2019-08-01 11:57:06)
>> Quoting Tvrtko Ursulin (2019-08-01 09:53:15)
>>> We could store it in ce then. We already have well defined control
>>> points for when vm changes when all are updated.
>>
>> We are storing it in ce; it's not like we recompute it all that often,
>> and when we do it's because we have rebound the vma.
>>
>>> If done like this then it looks like assigning ctx->hw_id could also do
>>> the default_desc update, so that we can avoid even more work done at pin
>>> time.
>>
>> What ctx->hw_id? You are imagining things again :-p
>>
>> Remember that we only do this on first pin from idle, not every pin.
>
> Fwiw, I quickly looked at only doing it if the vma is rebound, but
> that's move branches just to save a couple. The low frequency at which
> we have to actually compute this (walk a few more branches inside an
> already branchy contxt_pin) doesn't seem to justify the extra storage for
> me. It's not like we are recomputing lrc_desc on every submit as it once
> was.
On every submit if last request got retired in the meantime, no, for
instance bursty loads? Yeah it is very inconsequential but at some point
we made an effort to cache as much as possible what is invariant so it
saddens me a bit to remove that.
For instance Icelake engine dependent stuff sneaked into
intel_lrc.c/lrc_desriptors at some point, which is also against the
spirit of caching. If we were to move the cached value in ce then we
would be able to remove that and have it once again minimal in there.
Not only just minimal, but not separated in two separate places. I guess
this patch improves things in that respect - consolidates the lrc_desc
computation once again.
I did not get the part about VMA re-binding. I did not suggest to move
the lrca offset into cache as well. I was just thinking about the gen,
engine and vm dependent bits could naturally go into
i915_gem_context.c/default_desc_template. Just need to take (engine,
hw_id, vm).
And virtual engine would have to re-compute it when moving engines. Hm..
we don't seem to do that? Only when pinning we set it up based on
sibling[0] so how it all works? We don't re-pin when moving engine I
thought.
Aside that, if you are still not convinced my argument makes sense, you
can have my ack.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-08-01 15:29 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 18:38 [PATCH 01/23] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt Chris Wilson
2019-07-23 18:38 ` [PATCH 02/23] drm/i915/gt: Provide a local intel_context.vm Chris Wilson
2019-07-23 18:38 ` [PATCH 03/23] drm/i915: Remove lrc default desc from GEM context Chris Wilson
2019-07-24 9:20 ` Tvrtko Ursulin
2019-08-01 8:37 ` Tvrtko Ursulin
2019-08-01 8:41 ` Chris Wilson
2019-08-01 8:53 ` Tvrtko Ursulin
2019-08-01 10:57 ` Chris Wilson
2019-08-01 11:13 ` Chris Wilson
2019-08-01 15:29 ` Tvrtko Ursulin [this message]
2019-08-01 15:48 ` Chris Wilson
2019-08-01 16:00 ` Chris Wilson
2019-08-01 16:22 ` Tvrtko Ursulin
2019-08-01 16:36 ` Chris Wilson
2019-07-23 18:38 ` [PATCH 04/23] drm/i915: Push the ring creation flags to the backend Chris Wilson
2019-07-24 11:11 ` Tvrtko Ursulin
2019-07-26 8:43 ` Chris Wilson
2019-07-29 12:59 ` Tvrtko Ursulin
2019-07-30 9:38 ` Chris Wilson
2019-08-01 8:42 ` Tvrtko Ursulin
2019-08-01 8:45 ` Chris Wilson
2019-08-01 8:46 ` Chris Wilson
2019-07-23 18:38 ` [PATCH 05/23] drm/i915: Flush extra hard after writing relocations through the GTT Chris Wilson
2019-07-23 18:38 ` [PATCH 06/23] drm/i915: Hide unshrinkable context objects from the shrinker Chris Wilson
2019-07-23 18:38 ` [PATCH 07/23] drm/i915/gt: Move the [class][inst] lookup for engines onto the GT Chris Wilson
2019-07-25 21:21 ` Daniele Ceraolo Spurio
2019-07-26 9:22 ` Tvrtko Ursulin
2019-07-26 9:33 ` Chris Wilson
2019-07-26 9:51 ` Tvrtko Ursulin
2019-07-26 9:57 ` Chris Wilson
2019-07-23 18:38 ` [PATCH 08/23] drm/i915: Introduce for_each_user_engine() Chris Wilson
2019-07-23 18:38 ` [PATCH 09/23] drm/i915: Use intel_engine_lookup_user for probing HAS_BSD etc Chris Wilson
2019-07-23 18:38 ` [PATCH 10/23] drm/i915: Isolate i915_getparam_ioctl() Chris Wilson
2019-07-23 18:38 ` [PATCH 11/23] drm/i915: Only include active engines in the capture state Chris Wilson
2019-07-23 18:38 ` [PATCH 12/23] drm/i915: Teach execbuffer to take the engine wakeref not GT Chris Wilson
2019-07-23 18:38 ` [PATCH 13/23] drm/i915/gt: Track timeline activeness in enter/exit Chris Wilson
2019-07-23 18:38 ` [PATCH 14/23] drm/i915/gt: Convert timeline tracking to spinlock Chris Wilson
2019-07-23 18:38 ` [PATCH 15/23] drm/i915/gt: Guard timeline pinning with its own mutex Chris Wilson
2019-07-23 18:38 ` [PATCH 16/23] drm/i915/gt: Add to timeline requires the timeline mutex Chris Wilson
2019-07-23 18:38 ` [PATCH 17/23] drm/i915: Protect request retirement with timeline->mutex Chris Wilson
2019-07-23 18:38 ` [PATCH 18/23] drm/i915: Replace struct_mutex for batch pool serialisation Chris Wilson
2019-07-23 18:38 ` [PATCH 19/23] drm/i915/gt: Mark context->active_count as protected by timeline->mutex Chris Wilson
2019-07-23 18:38 ` [PATCH 20/23] drm/i915: Forgo last_fence active request tracking Chris Wilson
2019-07-23 18:38 ` [PATCH 21/23] drm/i915/overlay: Switch to using i915_active tracking Chris Wilson
2019-07-23 18:38 ` [PATCH 22/23] drm/i915: Extract intel_frontbuffer active tracking Chris Wilson
2019-07-23 18:38 ` [PATCH 23/23] drm/i915: Markup expected timeline locks for i915_active Chris Wilson
2019-07-23 20:16 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/23] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt Patchwork
2019-07-23 20:27 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-07-23 20:38 ` ✓ Fi.CI.BAT: success " Patchwork
2019-07-24 4:13 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-07-24 8:56 ` [PATCH 01/23] " Tvrtko Ursulin
2019-07-24 9:27 ` Chris Wilson
2019-07-24 9:37 ` Chris Wilson
2019-07-24 9:47 ` Chris Wilson
2019-07-24 9:54 ` Tvrtko Ursulin
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=1fcdbd8b-acf4-5493-24b5-16eca782d997@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
/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