diff mbox series

drm/i915: Disable read only ppgtt support for gen11

Message ID 20190411083034.28311-1-mika.kuoppala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Disable read only ppgtt support for gen11 | expand

Commit Message

Mika Kuoppala April 11, 2019, 8:30 a.m. UTC
On gen11 writing to read only ppgtt page causes a gpu hang.
This behaviour is different than with previous gen where
read only ppgtt access is supported. On those, the write
is just dropped without visible side effects.

Disable ro ppgtt support on gen11 until a solution can
be found to bring it into line with its predecessors.

References: HSDES#1807136187
References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108569
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Chris Wilson April 11, 2019, 8:33 a.m. UTC | #1
Quoting Mika Kuoppala (2019-04-11 09:30:34)
> On gen11 writing to read only ppgtt page causes a gpu hang.
> This behaviour is different than with previous gen where
> read only ppgtt access is supported. On those, the write
> is just dropped without visible side effects.
> 
> Disable ro ppgtt support on gen11 until a solution can
> be found to bring it into line with its predecessors.
> 
> References: HSDES#1807136187
> References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108569
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>

Lets see if I remembered to stick those vm->has_read_only checks
everywhere we needed them (and remembered to exercise them -- a bit of a
catch 22, if I forgot the check, I probably forgot the test as well).

Thanks,
-Chris
Rodrigo Vivi April 11, 2019, 7:47 p.m. UTC | #2
On Thu, Apr 11, 2019 at 11:30:34AM +0300, Mika Kuoppala wrote:
> On gen11 writing to read only ppgtt page causes a gpu hang.
> This behaviour is different than with previous gen where
> read only ppgtt access is supported. On those, the write
> is just dropped without visible side effects.
> 
> Disable ro ppgtt support on gen11 until a solution can
> be found to bring it into line with its predecessors.
> 
> References: HSDES#1807136187
> References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108569
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 736c845eb77f..caae8cdafc1a 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -1548,8 +1548,13 @@ static struct i915_hw_ppgtt *gen8_ppgtt_create(struct drm_i915_private *i915)
>  
>  	ppgtt_init(i915, ppgtt);
>  
> -	/* From bdw, there is support for read-only pages in the PPGTT. */
> -	ppgtt->vm.has_read_only = true;
> +	/*
> +	 * From bdw, there is hw support for read-only pages in the PPGTT.
> +	 *
> +	 * Gen11 has HSDES#:1807136187 unresolved. Disable ro support
> +	 * for now.
> +	 */
> +	ppgtt->vm.has_read_only = INTEL_GEN(i915) != 11;

I believe it is safest to use < 11, no?!

>  
>  	/* There are only few exceptions for gen >=6. chv and bxt.
>  	 * And we are not sure about the latter so play safe for now.
> -- 
> 2.17.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Chris Wilson April 11, 2019, 7:56 p.m. UTC | #3
Quoting Rodrigo Vivi (2019-04-11 20:47:48)
> On Thu, Apr 11, 2019 at 11:30:34AM +0300, Mika Kuoppala wrote:
> > On gen11 writing to read only ppgtt page causes a gpu hang.
> > This behaviour is different than with previous gen where
> > read only ppgtt access is supported. On those, the write
> > is just dropped without visible side effects.
> > 
> > Disable ro ppgtt support on gen11 until a solution can
> > be found to bring it into line with its predecessors.
> > 
> > References: HSDES#1807136187
> > References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108569
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_gtt.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > index 736c845eb77f..caae8cdafc1a 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -1548,8 +1548,13 @@ static struct i915_hw_ppgtt *gen8_ppgtt_create(struct drm_i915_private *i915)
> >  
> >       ppgtt_init(i915, ppgtt);
> >  
> > -     /* From bdw, there is support for read-only pages in the PPGTT. */
> > -     ppgtt->vm.has_read_only = true;
> > +     /*
> > +      * From bdw, there is hw support for read-only pages in the PPGTT.
> > +      *
> > +      * Gen11 has HSDES#:1807136187 unresolved. Disable ro support
> > +      * for now.
> > +      */
> > +     ppgtt->vm.has_read_only = INTEL_GEN(i915) != 11;
> 
> I believe it is safest to use < 11, no?!

No. It's an issue in Icelake.
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 736c845eb77f..caae8cdafc1a 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1548,8 +1548,13 @@  static struct i915_hw_ppgtt *gen8_ppgtt_create(struct drm_i915_private *i915)
 
 	ppgtt_init(i915, ppgtt);
 
-	/* From bdw, there is support for read-only pages in the PPGTT. */
-	ppgtt->vm.has_read_only = true;
+	/*
+	 * From bdw, there is hw support for read-only pages in the PPGTT.
+	 *
+	 * Gen11 has HSDES#:1807136187 unresolved. Disable ro support
+	 * for now.
+	 */
+	ppgtt->vm.has_read_only = INTEL_GEN(i915) != 11;
 
 	/* There are only few exceptions for gen >=6. chv and bxt.
 	 * And we are not sure about the latter so play safe for now.