All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Roper <matthew.d.roper@intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v3 11/11] drm/i915/tgl: Implement Wa_1407901919
Date: Fri, 28 Feb 2020 14:07:14 -0800	[thread overview]
Message-ID: <20200228220714.GE174531@mdroper-desk1.amr.corp.intel.com> (raw)
In-Reply-To: <20200227220101.321671-11-jose.souza@intel.com>

On Thu, Feb 27, 2020 at 02:01:01PM -0800, José Roberto de Souza wrote:
> This will fix a memory coherence issue.
> 
> v3: using whitespace to make easy to read WA (Chris)
> 
> BSpec: 52890
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c |  8 ++++++++
>  drivers/gpu/drm/i915/i915_reg.h             | 20 +++++++++++---------
>  2 files changed, 19 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 3e375a3b7714..c59e1a604ab8 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -601,6 +601,14 @@ static void tgl_ctx_workarounds_init(struct intel_engine_cs *engine,
>  	 */
>  	wa_add(wal, FF_MODE2, FF_MODE2_TDS_TIMER_MASK,
>  	       FF_MODE2_TDS_TIMER_128, 0);
> +
> +	/* Wa_1407901919:tgl */
> +	wa_add(wal, ICL_HDC_MODE,
> +	       HDC_COHERENT_ACCESS_L1_CACHE_DIS |
> +	       HDC_DIS_L1_INVAL_FOR_NON_L1_CACHEABLE_W,

I'm not sure if this is what the workaround is asking for.  The way I
understood the workaround, the 2-dword STATE_COMPUTE_MODE instruction
has a couple bits that must be left at 0.  STATE_COMPUTE_MODE is
basically how we ultimately load the HDC_MODE registers (rather than
using a simple LRI like we do for a bunch of other registers), but the
workaround isn't asking us to worry about bits 13+14 in the HDC_MODE
register itself, but rather those flags bits on the instruction that
manipulates the register.

Every time there's a context switch, the hardware will generate a copy
of this instruction as part of the context image in writes to RAM; I'm
assuming these bits aren't set on those hardware-created instructions?
Assuming that's true, then I think this workaround would just be
userspace's responsibility --- if they submit an explicit
STATE_COMPUTE_MODE instruction that isn't just part of the context
image, they need to follow the workaround guidance here and leave two of
those bits set to 0.


Matt

> +	       0,
> +	       HDC_COHERENT_ACCESS_L1_CACHE_DIS |
> +	       HDC_DIS_L1_INVAL_FOR_NON_L1_CACHEABLE_W);
>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 80cf02a6eec1..28822585537b 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7883,15 +7883,17 @@ enum {
>  #define  GEN8_LQSC_FLUSH_COHERENT_LINES		(1 << 21)
>  
>  /* GEN8 chicken */
> -#define HDC_CHICKEN0				_MMIO(0x7300)
> -#define CNL_HDC_CHICKEN0			_MMIO(0xE5F0)
> -#define ICL_HDC_MODE				_MMIO(0xE5F4)
> -#define  HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE	(1 << 15)
> -#define  HDC_FENCE_DEST_SLM_DISABLE		(1 << 14)
> -#define  HDC_DONOT_FETCH_MEM_WHEN_MASKED	(1 << 11)
> -#define  HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT	(1 << 5)
> -#define  HDC_FORCE_NON_COHERENT			(1 << 4)
> -#define  HDC_BARRIER_PERFORMANCE_DISABLE	(1 << 10)
> +#define HDC_CHICKEN0					_MMIO(0x7300)
> +#define CNL_HDC_CHICKEN0				_MMIO(0xE5F0)
> +#define ICL_HDC_MODE					_MMIO(0xE5F4)
> +#define  HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE		REG_BIT(15)
> +#define  HDC_FENCE_DEST_SLM_DISABLE			REG_BIT(14)
> +#define  HDC_DIS_L1_INVAL_FOR_NON_L1_CACHEABLE_W	REG_BIT(13)
> +#define  HDC_COHERENT_ACCESS_L1_CACHE_DIS		REG_BIT(12)
> +#define  HDC_DONOT_FETCH_MEM_WHEN_MASKED		REG_BIT(11)
> +#define  HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT	REG_BIT(5)
> +#define  HDC_FORCE_NON_COHERENT				REG_BIT(4)
> +#define  HDC_BARRIER_PERFORMANCE_DISABLE		REG_BIT(10)
>  
>  #define GEN8_HDC_CHICKEN1			_MMIO(0x7304)
>  
> -- 
> 2.25.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-02-28 22:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 22:00 [Intel-gfx] [PATCH v3 01/11] drm/i915/tgl: Implement Wa_1409804808 José Roberto de Souza
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 02/11] drm/i915/tgl: Implement Wa_1806527549 José Roberto de Souza
2020-02-28 21:07   ` Matt Roper
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 03/11] drm/i915/tgl: Add Wa_1409085225, Wa_14010229206 José Roberto de Souza
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 04/11] drm/i915/tgl: Extend Wa_1606931601 for all steppings José Roberto de Souza
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 05/11] drm/i915/tgl: Add note to Wa_1607297627 José Roberto de Souza
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 06/11] drm/i915/tgl: Add note about Wa_1607063988 José Roberto de Souza
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 07/11] drm/i915/tgl: Fix the Wa number of a fix José Roberto de Souza
2020-02-28 21:10   ` Matt Roper
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 08/11] drm/i915/tgl: Add note about Wa_1409142259 José Roberto de Souza
2020-02-28 21:16   ` Matt Roper
2020-02-27 22:00 ` [Intel-gfx] [PATCH v3 09/11] drm/i915/tgl: Restrict Wa_1408615072 to A0 stepping José Roberto de Souza
2020-02-28 21:25   ` Matt Roper
2020-02-29  0:04     ` Souza, Jose
2020-02-29  0:29       ` Matt Roper
2020-02-29  0:45         ` Souza, Jose
2020-02-29  1:15           ` Matt Roper
2020-02-27 22:01 ` [Intel-gfx] [PATCH v3 10/11] drm/i915/tgl: Add Wa number to WaAllowPMDepthAndInvocationCountAccessFromUMD José Roberto de Souza
2020-02-27 22:35   ` Lionel Landwerlin
2020-02-27 22:01 ` [Intel-gfx] [PATCH v3 11/11] drm/i915/tgl: Implement Wa_1407901919 José Roberto de Souza
2020-02-28 22:07   ` Matt Roper [this message]
2020-02-28 22:10     ` Souza, Jose
2020-03-02 20:31       ` Rafael Antognolli
2020-02-28  2:31 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v3,01/11] drm/i915/tgl: Implement Wa_1409804808 Patchwork
2020-02-29 12:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2020-03-02 20:05   ` Souza, Jose

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=20200228220714.GE174531@mdroper-desk1.amr.corp.intel.com \
    --to=matthew.d.roper@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.souza@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 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.