All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v2.1 0/3] Explicity steer l3bank multicast reads when necessary
@ 2021-06-16  0:42 Matt Roper
  2021-06-16  0:42 ` [Intel-gfx] [PATCH v2.1 1/3] drm/i915: extract steered reg access to common function Matt Roper
                   ` (12 more replies)
  0 siblings, 13 replies; 20+ messages in thread
From: Matt Roper @ 2021-06-16  0:42 UTC (permalink / raw)
  To: intel-gfx

We've recently learned that when steering reads of multicast registers
that use 'subslice' replication, it's not only important to steer to a
subslice that isn't fused off, but also to steer to the lowest-numbered
subslice.  This is because when Render Power Gating is enabled, grabbing
forcewake will only cause the hardware to power up a single subslice
(referred to as the "minconfig") until/unless a real workload is being
run on the EUs.  If we try to read back a value from a register instance
other than the minconfig subslice, the read operation will either return
0 or random garbage.

Unfortunately this extra requirement to steer to the minconfig means
that the steering target we use for subslice-replicated registers may
not select a valid instance for l3bank-replicated registers.  In cases
where the two types of multicast registers do not have compatible
steering targets, we'll initialize the steering control register to the
proper subslice target at driver load, and then explicitly re-steer
individual reads of l3bank registers as they occur at runtime.

This series sets up an infrastructure to handle explicit resteering of
multiple multicast register types, and then applies it to l3bank
registers.  Our next upcoming platform (which we'll probably start
upstreaming soon) will bring several more types of multicast registers,
each with their own steering criteria, so the infrastructure here is
partially in preparation for those extra multicast types that will be
arriving soon.

v2:
 - Use {} as table terminator and check for end==0 instead of 0xFFFFFF
   on loop iteration.  (Rodrigo)
 - Use gt->uncore instead of gt->i915->uncore.  (Tvrtko)
 - Now that wa_list_verify() uses _fw accessors we need to explicitly
   grab forcewake.

v2.1:
 - Rebase

Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

Daniele Ceraolo Spurio (1):
  drm/i915: extract steered reg access to common function

Matt Roper (2):
  drm/i915: Add GT support for multiple types of multicast steering
  drm/i915: Add support for explicit L3BANK steering

 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  41 +-----
 drivers/gpu/drm/i915/gt/intel_gt.c            | 102 +++++++++++++++
 drivers/gpu/drm/i915/gt/intel_gt.h            |   8 ++
 drivers/gpu/drm/i915/gt/intel_gt_types.h      |  26 ++++
 drivers/gpu/drm/i915/gt/intel_workarounds.c   | 123 ++++++++----------
 .../gpu/drm/i915/gt/selftest_workarounds.c    |   2 +-
 drivers/gpu/drm/i915/intel_uncore.c           |  55 ++++++++
 drivers/gpu/drm/i915/intel_uncore.h           |   6 +
 8 files changed, 251 insertions(+), 112 deletions(-)

-- 
2.25.4

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2021-06-17 21:07 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-16  0:42 [Intel-gfx] [PATCH v2.1 0/3] Explicity steer l3bank multicast reads when necessary Matt Roper
2021-06-16  0:42 ` [Intel-gfx] [PATCH v2.1 1/3] drm/i915: extract steered reg access to common function Matt Roper
2021-06-16  0:42 ` [Intel-gfx] [PATCH v2.1 2/3] drm/i915: Add GT support for multiple types of multicast steering Matt Roper
2021-06-16 14:24   ` Rodrigo Vivi
2021-06-16 16:30     ` Matt Roper
2021-06-16 16:36   ` [Intel-gfx] [PATCH v3 " Matt Roper
2021-06-16  0:42 ` [Intel-gfx] [PATCH v2.1 3/3] drm/i915: Add support for explicit L3BANK steering Matt Roper
2021-06-16 14:30   ` Rodrigo Vivi
2021-06-17  0:55   ` [Intel-gfx] [PATCH v3 " Matt Roper
2021-06-17 20:54     ` [Intel-gfx] [PATCH v4 " Matt Roper
2021-06-16  0:55 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Explicity steer l3bank multicast reads when necessary (rev3) Patchwork
2021-06-16  1:25 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-16  6:46 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-16 19:29 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Explicity steer l3bank multicast reads when necessary (rev4) Patchwork
2021-06-16 20:00 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-16 23:23 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-17  1:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Explicity steer l3bank multicast reads when necessary (rev5) Patchwork
2021-06-17  1:54 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-17  6:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-17 21:07 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Explicity steer l3bank multicast reads when necessary (rev6) Patchwork

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.