All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 03/17] drm/i915/ringbuffer: Fix context restore upon reset
Date: Mon, 11 Jun 2018 13:28:21 +0300	[thread overview]
Message-ID: <152871290100.1718.3598535879434166387@jlahtine-desk.ger.corp.intel.com> (raw)
In-Reply-To: <20180610194325.13467-4-chris@chris-wilson.co.uk>

Quoting Chris Wilson (2018-06-10 22:43:11)
> The discovery with trying to enable full-ppgtt was that we were
> completely failing to the load both the mm and context following the
> reset. Although we were performing mmio to set the PP_DIR (per-process
> GTT) and CCID (context), these were taking no effect (the assumption was
> that this would trigger reload of the context and restore the page
> tables). It was not until we performed the LRI + MI_SET_CONTEXT in a
> following context switch would anything occur.
> 
> Since we are then required to reset the context image and PP_DIR using
> CS commands, we place those commands into every batch. The hardware
> should recognise the no-ops and eliminate the expensive context loads,
> but we still have to pay the cost of using cross-powerwell register
> writes. In practice, this has no effect on actual context switch times,
> and only adds a few hundred nanoseconds to no-op switches. We can improve
> the latter by eliminating the w/a around known no-op switches, but there
> is an ulterior motive to keeping them.
> 
> Always emitting the context switch at the beginning of the request (and
> relying on HW to skip unneeded switches) does have one key advantage.
> Should we implement request reordering on Haswell, we will not know in
> advance what the previous executing context was on the GPU and so we
> would not be able to elide the MI_SET_CONTEXT commands ourselves and
> always have to emit them. Having our hand forced now actually prepares
> us for later.

Please comment about the destiny of the tracepoint for the sake of the
bisecter that will end up here to look for a lost tracepoint :)

Also, you could throw a Testcase: this affects.

> 
> v2: Sandybridge has to agree to use LRI as well.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Cc: Matthew Auld <matthew.william.auld@gmail.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-06-11 10:28 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-10 19:43 Haswell full-ppgtt Chris Wilson
2018-06-10 19:43 ` [PATCH 01/17] drm/i915: Apply batch location restrictions before pinning Chris Wilson
2018-06-11  9:57   ` Joonas Lahtinen
2018-06-11 10:08     ` Chris Wilson
2018-06-10 19:43 ` [PATCH 02/17] drm/i915/ringbuffer: Brute force context restore Chris Wilson
2018-06-11 10:00   ` Tvrtko Ursulin
2018-06-11 10:04     ` Chris Wilson
2018-06-11 10:23       ` Tvrtko Ursulin
2018-06-11 10:33         ` Chris Wilson
2018-06-11 10:07   ` Mika Kuoppala
2018-06-11 10:11   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 03/17] drm/i915/ringbuffer: Fix context restore upon reset Chris Wilson
2018-06-11 10:28   ` Joonas Lahtinen [this message]
2018-06-10 19:43 ` [PATCH 04/17] drm/i915: Wrap around the tail offset before setting ring->tail Chris Wilson
2018-06-11 10:16   ` Mika Kuoppala
2018-06-11 10:26     ` Chris Wilson
2018-06-11 10:40       ` Mika Kuoppala
2018-06-11 10:30   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 05/17] drm/i915/gtt: Invalidate GGTT caches after writing the gen6 page directories Chris Wilson
2018-06-11 10:37   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 06/17] drm/i915/ringbuffer: Serialize load of PD_DIR Chris Wilson
2018-06-11 10:12   ` Chris Wilson
2018-06-11 10:43   ` Joonas Lahtinen
2018-06-11 10:47     ` Chris Wilson
2018-06-10 19:43 ` [PATCH 07/17] drm/i915/gtt: Subclass gen6_hw_ppgtt Chris Wilson
2018-06-10 19:43 ` [PATCH 08/17] drm/i915/gtt: Onionify error handling for gen6_ppgtt_create Chris Wilson
2018-06-11 10:48   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 09/17] drm/i915/gtt: Make gen6 page directories evictable Chris Wilson
2018-06-11 10:56   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 10/17] drm/i915/gtt: Only keep gen6 page directories pinned while active Chris Wilson
2018-06-10 19:43 ` [PATCH 11/17] drm/i915/gtt: Lazily allocate page directories for gen7 Chris Wilson
2018-06-11 11:03   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 12/17] drm/i915/gtt: Free unused page tables on unbind the context Chris Wilson
2018-06-11 11:09   ` Joonas Lahtinen
2018-06-10 19:43 ` [PATCH 13/17] drm/i915/gtt: Skip initializing PT with scratch if full Chris Wilson
2018-06-10 19:43 ` [PATCH 14/17] drm/i915/gtt: Cache the PTE encoding of the scratch page Chris Wilson
2018-06-10 19:43 ` [PATCH 15/17] drm/i915/gtt: Reduce a pair of runtime asserts Chris Wilson
2018-06-10 19:43 ` [PATCH 16/17] drm/i915/gtt: Skip clearing the GGTT under gen6+ full-ppgtt Chris Wilson
2018-06-11  9:28   ` Matthew Auld
2018-06-10 19:43 ` [PATCH 17/17] drm/i915/gtt: Enable full-ppgtt by default everywhere Chris Wilson
2018-06-10 20:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/17] drm/i915: Apply batch location restrictions before pinning Patchwork
2018-06-10 20:05 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-06-10 20:18 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-10 21:10 ` ✓ Fi.CI.IGT: " Patchwork

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=152871290100.1718.3598535879434166387@jlahtine-desk.ger.corp.intel.com \
    --to=joonas.lahtinen@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.