public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries
@ 2016-01-25 14:16 tim.gore
  2016-01-25 14:16 ` [PATCH 1/3] drm/i915: add function for GT related workarounds tim.gore
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: tim.gore @ 2016-01-25 14:16 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

These 3 patches introduce a performance workaround that
can have significant impact (> 10%) on some OCL workloads.
It is split into 3 patches as follows.
 1) The first patch introduces a new function to collect
   together workarounds that are GT specific and apply
   globally across the GPU (as opposed to per ring or per
   context). This function is called at driver load and
   on resume (from suspend) and after a GPU reset, so it
   can host worarounds that are clobbered by these events.
   This new function was suggested by Mika Kuoppala.
2) The second patch adds WaIncreaseDefaultTLBEntries for
   gen8 GPU's to the above function.
3) Finally add WaIncreaseDefaultTLBEntries for gen9.


Tim Gore (3):
  drm/i915: add function for GT related workarounds
  drm/i915/gen8: add WaIncreaseDefaultTLBEntries
  drm/i915/gen9: add WaIncreaseDefaultTLBEntries

 drivers/gpu/drm/i915/i915_gem_gtt.c | 21 +++++++++++++++++++++
 drivers/gpu/drm/i915/i915_reg.h     |  7 +++++++
 2 files changed, 28 insertions(+)

-- 
1.9.1

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

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

* [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
@ 2016-01-25 14:16 ` tim.gore
  2016-01-25 14:39   ` Mika Kuoppala
  2016-01-25 14:16 ` [PATCH 2/3] drm/i915/gen8: add WaIncreaseDefaultTLBEntries tim.gore
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: tim.gore @ 2016-01-25 14:16 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

Add a function that is a place for workarounds that are
GT related but not required per ring. This function is
called on driver load and also after a reset and on
resume, so it is safe for workarounds that get clobbered
in these situations.

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 7377b67..fe960d5 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct i915_address_space *vm,
 	list_add_tail(&vm->global_link, &dev_priv->vm_list);
 }
 
+void gtt_write_workarounds(struct drm_device *dev)
+{
+	struct drm_i915_private *dev_priv = dev->dev_private;
+
+	/* This function is for gtt related workarounds. This function is
+	 * called on driver load and after a GPU reset, so you can place
+	 * workarounds here even if they get overwritten by GPU reset.
+	 */
+}
+
 int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -2148,6 +2158,8 @@ int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
 
 int i915_ppgtt_init_hw(struct drm_device *dev)
 {
+	gtt_write_workarounds(dev);
+
 	/* In the case of execlists, PPGTT is enabled by the context descriptor
 	 * and the PDPs are contained within the context itself.  We don't
 	 * need to do anything here. */
-- 
1.9.1

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

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

* [PATCH 2/3] drm/i915/gen8: add WaIncreaseDefaultTLBEntries
  2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
  2016-01-25 14:16 ` [PATCH 1/3] drm/i915: add function for GT related workarounds tim.gore
@ 2016-01-25 14:16 ` tim.gore
  2016-01-25 14:16 ` [PATCH 3/3] drm/i915/gen9: " tim.gore
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: tim.gore @ 2016-01-25 14:16 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

Add WaIncreaseDefaultTLBEntries:chv,bdw.
This workaround provides significant perfromance boost
for some OpenCL workloads by adjusting the L3_LRA_1_GPGPU
register.
This is for bdw/chv. Further patches will provide the
workaround for other sku's.

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++++
 drivers/gpu/drm/i915/i915_reg.h     | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index fe960d5..be87318 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2140,6 +2140,11 @@ void gtt_write_workarounds(struct drm_device *dev)
 	 * called on driver load and after a GPU reset, so you can place
 	 * workarounds here even if they get overwritten by GPU reset.
 	 */
+	/* WaIncreaseDefaultTLBEntries:chv,bdw */
+	if (IS_BROADWELL(dev))
+		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW);
+	else if (IS_CHERRYVIEW(dev))
+		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV);
 }
 
 int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 0a98889..513e2980 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8159,4 +8159,9 @@ enum skl_disp_power_wells {
 #define GEN9_VEBOX_MOCS(i)	_MMIO(0xcb00 + (i) * 4)	/* Video MOCS registers */
 #define GEN9_BLT_MOCS(i)	_MMIO(0xcc00 + (i) * 4)	/* Blitter MOCS registers */
 
+/* gamt regs */
+#define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
+#define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW  0x67F1427F /* max/min for LRA1/2 */
+#define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV  0x5FF101FF /* max/min for LRA1/2 */
+
 #endif /* _I915_REG_H_ */
-- 
1.9.1

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

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

* [PATCH 3/3] drm/i915/gen9: add WaIncreaseDefaultTLBEntries
  2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
  2016-01-25 14:16 ` [PATCH 1/3] drm/i915: add function for GT related workarounds tim.gore
  2016-01-25 14:16 ` [PATCH 2/3] drm/i915/gen8: add WaIncreaseDefaultTLBEntries tim.gore
@ 2016-01-25 14:16 ` tim.gore
  2016-01-25 14:40   ` Mika Kuoppala
  2016-01-27 15:32 ` ✓ Fi.CI.BAT: success for drm/i915: " Patchwork
  2016-01-28 13:47 ` Patchwork
  4 siblings, 1 reply; 14+ messages in thread
From: tim.gore @ 2016-01-25 14:16 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

Add WaIncreaseDefaultTLBEntries:skl,bxt.
This workaround provides significant perfromance boost
for some OpenCL workloads by adjusting the L3_LRA_1_GPGPU
register.
This is for skl/bxt. Further patches will provide the
workaround for other sku's.

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++++
 drivers/gpu/drm/i915/i915_reg.h     | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index be87318..6c8f936 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2145,6 +2145,10 @@ void gtt_write_workarounds(struct drm_device *dev)
 		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW);
 	else if (IS_CHERRYVIEW(dev))
 		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV);
+	else if (IS_SKYLAKE(dev))
+		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL);
+	else if (IS_BROXTON(dev))
+		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT);
 }
 
 int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 513e2980..b0516e2 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8163,5 +8163,7 @@ enum skl_disp_power_wells {
 #define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
 #define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW  0x67F1427F /* max/min for LRA1/2 */
 #define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV  0x5FF101FF /* max/min for LRA1/2 */
+#define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL  0x67F1427F /*    "        " */
+#define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT  0x5FF101FF /*    "        " */
 
 #endif /* _I915_REG_H_ */
-- 
1.9.1

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

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 14:16 ` [PATCH 1/3] drm/i915: add function for GT related workarounds tim.gore
@ 2016-01-25 14:39   ` Mika Kuoppala
  2016-01-25 14:43     ` Gore, Tim
  0 siblings, 1 reply; 14+ messages in thread
From: Mika Kuoppala @ 2016-01-25 14:39 UTC (permalink / raw)
  To: tim.gore, intel-gfx

tim.gore@intel.com writes:

> From: Tim Gore <tim.gore@intel.com>
>
> Add a function that is a place for workarounds that are
> GT related but not required per ring. This function is
> called on driver load and also after a reset and on
> resume, so it is safe for workarounds that get clobbered
> in these situations.
>
> Signed-off-by: Tim Gore <tim.gore@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 7377b67..fe960d5 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct i915_address_space *vm,
>  	list_add_tail(&vm->global_link, &dev_priv->vm_list);
>  }
>  
> +void gtt_write_workarounds(struct drm_device *dev)
> +{

static void

This can be squashed with 2/3.

-Mika

> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +
> +	/* This function is for gtt related workarounds. This function is
> +	 * called on driver load and after a GPU reset, so you can place
> +	 * workarounds here even if they get overwritten by GPU reset.
> +	 */
> +}
> +
>  int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -2148,6 +2158,8 @@ int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
>  
>  int i915_ppgtt_init_hw(struct drm_device *dev)
>  {
> +	gtt_write_workarounds(dev);
> +
>  	/* In the case of execlists, PPGTT is enabled by the context descriptor
>  	 * and the PDPs are contained within the context itself.  We don't
>  	 * need to do anything here. */
> -- 
> 1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 3/3] drm/i915/gen9: add WaIncreaseDefaultTLBEntries
  2016-01-25 14:16 ` [PATCH 3/3] drm/i915/gen9: " tim.gore
@ 2016-01-25 14:40   ` Mika Kuoppala
  0 siblings, 0 replies; 14+ messages in thread
From: Mika Kuoppala @ 2016-01-25 14:40 UTC (permalink / raw)
  To: tim.gore, intel-gfx

tim.gore@intel.com writes:

> From: Tim Gore <tim.gore@intel.com>
>
> Add WaIncreaseDefaultTLBEntries:skl,bxt.
> This workaround provides significant perfromance boost
> for some OpenCL workloads by adjusting the L3_LRA_1_GPGPU
> register.
> This is for skl/bxt. Further patches will provide the
> workaround for other sku's.
>
> Signed-off-by: Tim Gore <tim.gore@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++++
>  drivers/gpu/drm/i915/i915_reg.h     | 2 ++
>  2 files changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index be87318..6c8f936 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2145,6 +2145,10 @@ void gtt_write_workarounds(struct drm_device *dev)
>  		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW);
>  	else if (IS_CHERRYVIEW(dev))
>  		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV);
> +	else if (IS_SKYLAKE(dev))
> +		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL);
> +	else if (IS_BROXTON(dev))
> +		I915_WRITE(GEN8_L3_LRA_1_GPGPU, GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT);
>  }

You forgot to add these to the Wa comment.

-Mika

>  
>  int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 513e2980..b0516e2 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -8163,5 +8163,7 @@ enum skl_disp_power_wells {
>  #define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
>  #define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW  0x67F1427F /* max/min for LRA1/2 */
>  #define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV  0x5FF101FF /* max/min for LRA1/2 */
> +#define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL  0x67F1427F /*    "        " */
> +#define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT  0x5FF101FF /*    "        " */
>  
>  #endif /* _I915_REG_H_ */
> -- 
> 1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 14:39   ` Mika Kuoppala
@ 2016-01-25 14:43     ` Gore, Tim
  2016-01-25 16:17       ` Chris Wilson
  0 siblings, 1 reply; 14+ messages in thread
From: Gore, Tim @ 2016-01-25 14:43 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx@lists.freedesktop.org



Tim Gore 
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ


> -----Original Message-----
> From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
> Sent: Monday, January 25, 2016 2:39 PM
> To: Gore, Tim; intel-gfx@lists.freedesktop.org
> Cc: Gore, Tim; arun.siluvery@linux.intel.com
> Subject: Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
> 
> tim.gore@intel.com writes:
> 
> > From: Tim Gore <tim.gore@intel.com>
> >
> > Add a function that is a place for workarounds that are GT related but
> > not required per ring. This function is called on driver load and also
> > after a reset and on resume, so it is safe for workarounds that get
> > clobbered in these situations.
> >
> > Signed-off-by: Tim Gore <tim.gore@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > index 7377b67..fe960d5 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
> i915_address_space *vm,
> >  	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
> >
> > +void gtt_write_workarounds(struct drm_device *dev) {
> 
> static void
> 
> This can be squashed with 2/3.
> 
> -Mika
> 
Do you mean all squashed together, into a single patch?

  Tim

> > +	struct drm_i915_private *dev_priv = dev->dev_private;
> > +
> > +	/* This function is for gtt related workarounds. This function is
> > +	 * called on driver load and after a GPU reset, so you can place
> > +	 * workarounds here even if they get overwritten by GPU reset.
> > +	 */
> > +}
> > +
> >  int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt
> > *ppgtt)  {
> >  	struct drm_i915_private *dev_priv = dev->dev_private; @@ -2148,6
> > +2158,8 @@ int i915_ppgtt_init(struct drm_device *dev, struct
> > i915_hw_ppgtt *ppgtt)
> >
> >  int i915_ppgtt_init_hw(struct drm_device *dev)  {
> > +	gtt_write_workarounds(dev);
> > +
> >  	/* In the case of execlists, PPGTT is enabled by the context
> descriptor
> >  	 * and the PDPs are contained within the context itself.  We don't
> >  	 * need to do anything here. */
> > --
> > 1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 14:43     ` Gore, Tim
@ 2016-01-25 16:17       ` Chris Wilson
  2016-01-25 16:41         ` Arun Siluvery
  0 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2016-01-25 16:17 UTC (permalink / raw)
  To: Gore, Tim; +Cc: intel-gfx@lists.freedesktop.org

On Mon, Jan 25, 2016 at 02:43:06PM +0000, Gore, Tim wrote:
> 
> 
> Tim Gore 
> Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ
> 
> 
> > -----Original Message-----
> > From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
> > Sent: Monday, January 25, 2016 2:39 PM
> > To: Gore, Tim; intel-gfx@lists.freedesktop.org
> > Cc: Gore, Tim; arun.siluvery@linux.intel.com
> > Subject: Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
> > 
> > tim.gore@intel.com writes:
> > 
> > > From: Tim Gore <tim.gore@intel.com>
> > >
> > > Add a function that is a place for workarounds that are GT related but
> > > not required per ring. This function is called on driver load and also
> > > after a reset and on resume, so it is safe for workarounds that get
> > > clobbered in these situations.
> > >
> > > Signed-off-by: Tim Gore <tim.gore@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
> > >  1 file changed, 12 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > index 7377b67..fe960d5 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
> > i915_address_space *vm,
> > >  	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
> > >
> > > +void gtt_write_workarounds(struct drm_device *dev) {
> > 
> > static void
> > 
> > This can be squashed with 2/3.
> > 
> > -Mika
> > 
> Do you mean all squashed together, into a single patch?

I would. They are all setting the same register to a nominal value, for
the same purpose.

u32 val;

/* Wa:bar,foo,baz */
val = 0;
if (is_bar(dev_priv))
	val = 1;
else if (is_foo(dev_priv))
	val = 2;
else if (is_baz(dev_priv))
	val = 3;
if (val)
	I915_WRITE(REG, val);

Would result in slightly less horrendous code.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 16:17       ` Chris Wilson
@ 2016-01-25 16:41         ` Arun Siluvery
  2016-01-25 17:10           ` Chris Wilson
  0 siblings, 1 reply; 14+ messages in thread
From: Arun Siluvery @ 2016-01-25 16:41 UTC (permalink / raw)
  To: Chris Wilson, Gore, Tim, Mika Kuoppala,
	intel-gfx@lists.freedesktop.org

On 25/01/2016 16:17, Chris Wilson wrote:
> On Mon, Jan 25, 2016 at 02:43:06PM +0000, Gore, Tim wrote:
>>
>>
>> Tim Gore
>> Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ
>>
>>
>>> -----Original Message-----
>>> From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
>>> Sent: Monday, January 25, 2016 2:39 PM
>>> To: Gore, Tim; intel-gfx@lists.freedesktop.org
>>> Cc: Gore, Tim; arun.siluvery@linux.intel.com
>>> Subject: Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
>>>
>>> tim.gore@intel.com writes:
>>>
>>>> From: Tim Gore <tim.gore@intel.com>
>>>>
>>>> Add a function that is a place for workarounds that are GT related but
>>>> not required per ring. This function is called on driver load and also
>>>> after a reset and on resume, so it is safe for workarounds that get
>>>> clobbered in these situations.
>>>>
>>>> Signed-off-by: Tim Gore <tim.gore@intel.com>
>>>> ---
>>>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
>>>>   1 file changed, 12 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> index 7377b67..fe960d5 100644
>>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
>>> i915_address_space *vm,
>>>>   	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
>>>>
>>>> +void gtt_write_workarounds(struct drm_device *dev) {
>>>
>>> static void
>>>
>>> This can be squashed with 2/3.
>>>
>>> -Mika
>>>
>> Do you mean all squashed together, into a single patch?
>
> I would. They are all setting the same register to a nominal value, for
> the same purpose.

Don't we normally split WA into individual patches or is this only for 
this WA?

regards
Arun

>
> u32 val;
>
> /* Wa:bar,foo,baz */
> val = 0;
> if (is_bar(dev_priv))
> 	val = 1;
> else if (is_foo(dev_priv))
> 	val = 2;
> else if (is_baz(dev_priv))
> 	val = 3;
> if (val)
> 	I915_WRITE(REG, val);
>
> Would result in slightly less horrendous code.
> -Chris
>

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

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 16:41         ` Arun Siluvery
@ 2016-01-25 17:10           ` Chris Wilson
  2016-01-25 18:04             ` Arun Siluvery
  0 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2016-01-25 17:10 UTC (permalink / raw)
  To: Arun Siluvery; +Cc: intel-gfx@lists.freedesktop.org

On Mon, Jan 25, 2016 at 04:41:42PM +0000, Arun Siluvery wrote:
> On 25/01/2016 16:17, Chris Wilson wrote:
> >On Mon, Jan 25, 2016 at 02:43:06PM +0000, Gore, Tim wrote:
> >>
> >>
> >>Tim Gore
> >>Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ
> >>
> >>
> >>>-----Original Message-----
> >>>From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
> >>>Sent: Monday, January 25, 2016 2:39 PM
> >>>To: Gore, Tim; intel-gfx@lists.freedesktop.org
> >>>Cc: Gore, Tim; arun.siluvery@linux.intel.com
> >>>Subject: Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
> >>>
> >>>tim.gore@intel.com writes:
> >>>
> >>>>From: Tim Gore <tim.gore@intel.com>
> >>>>
> >>>>Add a function that is a place for workarounds that are GT related but
> >>>>not required per ring. This function is called on driver load and also
> >>>>after a reset and on resume, so it is safe for workarounds that get
> >>>>clobbered in these situations.
> >>>>
> >>>>Signed-off-by: Tim Gore <tim.gore@intel.com>
> >>>>---
> >>>>  drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
> >>>>  1 file changed, 12 insertions(+)
> >>>>
> >>>>diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>index 7377b67..fe960d5 100644
> >>>>--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>@@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
> >>>i915_address_space *vm,
> >>>>  	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
> >>>>
> >>>>+void gtt_write_workarounds(struct drm_device *dev) {
> >>>
> >>>static void
> >>>
> >>>This can be squashed with 2/3.
> >>>
> >>>-Mika
> >>>
> >>Do you mean all squashed together, into a single patch?
> >
> >I would. They are all setting the same register to a nominal value, for
> >the same purpose.
> 
> Don't we normally split WA into individual patches or is this only
> for this WA?

Is it not the same w/a applied to different generations? You either
split it per device, so that a bisect + revert only affects one machine,
or not all. Choose your poison.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 17:10           ` Chris Wilson
@ 2016-01-25 18:04             ` Arun Siluvery
  2016-01-26  9:31               ` Gore, Tim
  0 siblings, 1 reply; 14+ messages in thread
From: Arun Siluvery @ 2016-01-25 18:04 UTC (permalink / raw)
  To: Chris Wilson, Gore, Tim, Mika Kuoppala,
	intel-gfx@lists.freedesktop.org

On 25/01/2016 17:10, Chris Wilson wrote:
> On Mon, Jan 25, 2016 at 04:41:42PM +0000, Arun Siluvery wrote:
>> On 25/01/2016 16:17, Chris Wilson wrote:
>>> On Mon, Jan 25, 2016 at 02:43:06PM +0000, Gore, Tim wrote:
>>>>
>>>>
>>>> Tim Gore
>>>> Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
>>>>> Sent: Monday, January 25, 2016 2:39 PM
>>>>> To: Gore, Tim; intel-gfx@lists.freedesktop.org
>>>>> Cc: Gore, Tim; arun.siluvery@linux.intel.com
>>>>> Subject: Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
>>>>>
>>>>> tim.gore@intel.com writes:
>>>>>
>>>>>> From: Tim Gore <tim.gore@intel.com>
>>>>>>
>>>>>> Add a function that is a place for workarounds that are GT related but
>>>>>> not required per ring. This function is called on driver load and also
>>>>>> after a reset and on resume, so it is safe for workarounds that get
>>>>>> clobbered in these situations.
>>>>>>
>>>>>> Signed-off-by: Tim Gore <tim.gore@intel.com>
>>>>>> ---
>>>>>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
>>>>>>   1 file changed, 12 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>>>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>>>> index 7377b67..fe960d5 100644
>>>>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>>>> @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
>>>>> i915_address_space *vm,
>>>>>>   	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
>>>>>>
>>>>>> +void gtt_write_workarounds(struct drm_device *dev) {
>>>>>
>>>>> static void
>>>>>
>>>>> This can be squashed with 2/3.
>>>>>
>>>>> -Mika
>>>>>
>>>> Do you mean all squashed together, into a single patch?
>>>
>>> I would. They are all setting the same register to a nominal value, for
>>> the same purpose.
>>
>> Don't we normally split WA into individual patches or is this only
>> for this WA?
>
> Is it not the same w/a applied to different generations? You either
> split it per device, so that a bisect + revert only affects one machine,
> or not all. Choose your poison.

yes but the value programmed is different for each device.

I think as Mika suggested, squashing 1, 2 which covers gen8 and another 
patch for gen9 is a good split.

regards
Arun


> -Chris
>

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

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

* Re: [PATCH 1/3] drm/i915: add function for GT related workarounds
  2016-01-25 18:04             ` Arun Siluvery
@ 2016-01-26  9:31               ` Gore, Tim
  0 siblings, 0 replies; 14+ messages in thread
From: Gore, Tim @ 2016-01-26  9:31 UTC (permalink / raw)
  To: Arun Siluvery, Chris Wilson, Mika Kuoppala,
	intel-gfx@lists.freedesktop.org


> -----Original Message-----
> From: Arun Siluvery [mailto:arun.siluvery@linux.intel.com]
> Sent: Monday, January 25, 2016 6:04 PM
> To: Chris Wilson; Gore, Tim; Mika Kuoppala; intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915: add function for GT related
> workarounds
> 
> On 25/01/2016 17:10, Chris Wilson wrote:
> > On Mon, Jan 25, 2016 at 04:41:42PM +0000, Arun Siluvery wrote:
> >> On 25/01/2016 16:17, Chris Wilson wrote:
> >>> On Mon, Jan 25, 2016 at 02:43:06PM +0000, Gore, Tim wrote:
> >>>>
> >>>>
> >>>> Tim Gore
> >>>> Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way,
> >>>> Swindon SN3 1RJ
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Mika Kuoppala [mailto:mika.kuoppala@linux.intel.com]
> >>>>> Sent: Monday, January 25, 2016 2:39 PM
> >>>>> To: Gore, Tim; intel-gfx@lists.freedesktop.org
> >>>>> Cc: Gore, Tim; arun.siluvery@linux.intel.com
> >>>>> Subject: Re: [PATCH 1/3] drm/i915: add function for GT related
> >>>>> workarounds
> >>>>>
> >>>>> tim.gore@intel.com writes:
> >>>>>
> >>>>>> From: Tim Gore <tim.gore@intel.com>
> >>>>>>
> >>>>>> Add a function that is a place for workarounds that are GT
> >>>>>> related but not required per ring. This function is called on
> >>>>>> driver load and also after a reset and on resume, so it is safe
> >>>>>> for workarounds that get clobbered in these situations.
> >>>>>>
> >>>>>> Signed-off-by: Tim Gore <tim.gore@intel.com>
> >>>>>> ---
> >>>>>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
> >>>>>>   1 file changed, 12 insertions(+)
> >>>>>>
> >>>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>>> index 7377b67..fe960d5 100644
> >>>>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>>>>> @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct
> >>>>> i915_address_space *vm,
> >>>>>>   	list_add_tail(&vm->global_link, &dev_priv->vm_list);  }
> >>>>>>
> >>>>>> +void gtt_write_workarounds(struct drm_device *dev) {
> >>>>>
> >>>>> static void
> >>>>>
> >>>>> This can be squashed with 2/3.
> >>>>>
> >>>>> -Mika
> >>>>>
> >>>> Do you mean all squashed together, into a single patch?
> >>>
> >>> I would. They are all setting the same register to a nominal value,
> >>> for the same purpose.
> >>
> >> Don't we normally split WA into individual patches or is this only
> >> for this WA?
> >
> > Is it not the same w/a applied to different generations? You either
> > split it per device, so that a bisect + revert only affects one
> > machine, or not all. Choose your poison.
> 
> yes but the value programmed is different for each device.
> 
> I think as Mika suggested, squashing 1, 2 which covers gen8 and another
> patch for gen9 is a good split.
> 
> regards
> Arun
> 
I kept the introduction of the new w/a function as a separate patch so that the gen8 and gen9 patches are independent.
 If you squash 1 and 2, then You can't revert just the gen8 changes because this would break the gen9 stuff.
> 
Tim Gore
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ>
> 
> > -Chris
> >

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

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

* ✓ Fi.CI.BAT: success for drm/i915: add WaIncreaseDefaultTLBEntries
  2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
                   ` (2 preceding siblings ...)
  2016-01-25 14:16 ` [PATCH 3/3] drm/i915/gen9: " tim.gore
@ 2016-01-27 15:32 ` Patchwork
  2016-01-28 13:47 ` Patchwork
  4 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2016-01-27 15:32 UTC (permalink / raw)
  To: tim.gore; +Cc: intel-gfx

== Summary ==

Built on 5ae916607e3e12ba18c848dff42baaad5b118c4b drm-intel-nightly: 2016y-01m-27d-12h-48m-36s UTC integration manifest


bdw-nuci7        total:141  pass:132  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:144  pass:138  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:144  pass:120  dwarn:0   dfail:0   fail:0   skip:24 
hsw-brixbox      total:144  pass:137  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:144  pass:140  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:144  pass:105  dwarn:0   dfail:0   fail:1   skip:38 
ivb-t430s        total:144  pass:138  dwarn:0   dfail:0   fail:0   skip:6  
skl-i5k-2        total:144  pass:135  dwarn:1   dfail:0   fail:0   skip:8  
snb-dellxps      total:144  pass:130  dwarn:0   dfail:0   fail:0   skip:14 
snb-x220t        total:144  pass:130  dwarn:0   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1261/

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

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

* ✓ Fi.CI.BAT: success for drm/i915: add WaIncreaseDefaultTLBEntries
  2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
                   ` (3 preceding siblings ...)
  2016-01-27 15:32 ` ✓ Fi.CI.BAT: success for drm/i915: " Patchwork
@ 2016-01-28 13:47 ` Patchwork
  4 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2016-01-28 13:47 UTC (permalink / raw)
  To: tim.gore; +Cc: intel-gfx

== Summary ==

Series 2811v1 drm/i915: add WaIncreaseDefaultTLBEntries

Test kms_flip:
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-WARN (ilk-hp8440p) UNSTABLE

bdw-nuci7        total:156  pass:147  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:159  pass:153  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:159  pass:135  dwarn:0   dfail:0   fail:0   skip:24 
byt-nuc          total:159  pass:142  dwarn:0   dfail:0   fail:0   skip:17 
hsw-brixbox      total:159  pass:152  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:159  pass:155  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:159  pass:113  dwarn:1   dfail:0   fail:1   skip:44 
ivb-t430s        total:159  pass:151  dwarn:0   dfail:0   fail:0   skip:8  
skl-i5k-2        total:159  pass:150  dwarn:1   dfail:0   fail:0   skip:8  
snb-dellxps      total:159  pass:141  dwarn:0   dfail:0   fail:0   skip:18 
snb-x220t        total:159  pass:141  dwarn:0   dfail:0   fail:1   skip:17 

Results at /archive/results/CI_IGT_test/Patchwork_1292/

HEAD is now at b3f8ad6 drm-intel-nightly: 2016y-01m-28d-10h-26m-23s UTC integration manifest
Applying: drm/i915: add function for GT related workarounds
Applying: drm/i915/gen8: add WaIncreaseDefaultTLBEntries
Applying: drm/i915/gen9: add WaIncreaseDefaultTLBEntries

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

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

end of thread, other threads:[~2016-01-28 13:47 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-25 14:16 [PATCH 0/3] drm/i915: add WaIncreaseDefaultTLBEntries tim.gore
2016-01-25 14:16 ` [PATCH 1/3] drm/i915: add function for GT related workarounds tim.gore
2016-01-25 14:39   ` Mika Kuoppala
2016-01-25 14:43     ` Gore, Tim
2016-01-25 16:17       ` Chris Wilson
2016-01-25 16:41         ` Arun Siluvery
2016-01-25 17:10           ` Chris Wilson
2016-01-25 18:04             ` Arun Siluvery
2016-01-26  9:31               ` Gore, Tim
2016-01-25 14:16 ` [PATCH 2/3] drm/i915/gen8: add WaIncreaseDefaultTLBEntries tim.gore
2016-01-25 14:16 ` [PATCH 3/3] drm/i915/gen9: " tim.gore
2016-01-25 14:40   ` Mika Kuoppala
2016-01-27 15:32 ` ✓ Fi.CI.BAT: success for drm/i915: " Patchwork
2016-01-28 13:47 ` Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox