drm/i915/skl: Implement WaBarrierPerformanceFixDisable (again)

Submitted by Ben Widawsky on June 2, 2015, 11:02 p.m.

Details

Message ID 1433286146-19288-1-git-send-email-benjamin.widawsky@intel.com
State New
Headers show

Not browsing as part of any series.

Commit Message

Ben Widawsky June 2, 2015, 11:02 p.m.
in
commit 65ca7514e21adbee25b8175fc909759c735d00ff
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Feb 9 19:33:22 2015 +0000

    drm/i915/skl: Implement WaBarrierPerformanceFixDisable

The workaround ended up in the chv workarounds. Not sure what the reason or
history of that is, but it /seems/ wrong. Don't know if this fixes anything
since I have many other problems with my platform.

Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index d934f85..0fd6033d 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -901,13 +901,6 @@  static int chv_init_workarounds(struct intel_engine_cs *ring)
 			    GEN6_WIZ_HASHING_MASK,
 			    GEN6_WIZ_HASHING_16x4);
 
-	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
-	    INTEL_REVID(dev) == SKL_REVID_D0)
-		/* WaBarrierPerformanceFixDisable:skl */
-		WA_SET_BIT_MASKED(HDC_CHICKEN0,
-				  HDC_FENCE_DEST_SLM_DISABLE |
-				  HDC_BARRIER_PERFORMANCE_DISABLE);
-
 	return 0;
 }
 
@@ -972,6 +965,13 @@  static int gen9_init_workarounds(struct intel_engine_cs *ring)
 		tmp |= HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
 	WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp);
 
+	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
+	    INTEL_REVID(dev) == SKL_REVID_D0)
+		/* WaBarrierPerformanceFixDisable:skl */
+		WA_SET_BIT_MASKED(HDC_CHICKEN0,
+				  HDC_FENCE_DEST_SLM_DISABLE |
+				  HDC_BARRIER_PERFORMANCE_DISABLE);
+
 	return 0;
 }
 

Comments

Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6527
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  276/276              276/276
ILK                                  303/303              303/303
SNB                 -1              315/315              314/315
IVB                                  343/343              343/343
BYT                                  287/287              287/287
BDW                                  321/321              321/321
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
*SNB  igt@pm_rpm@dpms-mode-unset-non-lpsp      PASS(1)      DMESG_WARN(1)
(dmesg patch applied)WARNING:at_drivers/gpu/drm/i915/intel_uncore.c:#assert_device_not_suspended[i915]()@WARNING:.* at .* assert_device_not_suspended+0x
Note: You need to pay more attention to line start with '*'
On Wed, 03 Jun 2015, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> in
> commit 65ca7514e21adbee25b8175fc909759c735d00ff
> Author: Damien Lespiau <damien.lespiau@intel.com>
> Date:   Mon Feb 9 19:33:22 2015 +0000
>
>     drm/i915/skl: Implement WaBarrierPerformanceFixDisable
>
> The workaround ended up in the chv workarounds. Not sure what the reason or
> history of that is, but it /seems/ wrong. Don't know if this fixes anything
> since I have many other problems with my platform.
>
> Cc: Damien Lespiau <damien.lespiau@intel.com>
> Cc: Nick Hoath <nicholas.hoath@intel.com>
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>

Ville beat you to it [1]. However he put it in skl workarounds, not
gen9, so I'm presuming this does not apply to bxt.

BR,
Jani.


[1] http://mid.gmane.org/1433248657-4509-1-git-send-email-ville.syrjala@linux.intel.com


> ---
>  drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index d934f85..0fd6033d 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -901,13 +901,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
>  			    GEN6_WIZ_HASHING_MASK,
>  			    GEN6_WIZ_HASHING_16x4);
>  
> -	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> -	    INTEL_REVID(dev) == SKL_REVID_D0)
> -		/* WaBarrierPerformanceFixDisable:skl */
> -		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> -				  HDC_FENCE_DEST_SLM_DISABLE |
> -				  HDC_BARRIER_PERFORMANCE_DISABLE);
> -
>  	return 0;
>  }
>  
> @@ -972,6 +965,13 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>  		tmp |= HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
>  	WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp);
>  
> +	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> +	    INTEL_REVID(dev) == SKL_REVID_D0)
> +		/* WaBarrierPerformanceFixDisable:skl */
> +		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> +				  HDC_FENCE_DEST_SLM_DISABLE |
> +				  HDC_BARRIER_PERFORMANCE_DISABLE);
> +
>  	return 0;
>  }
>  
> -- 
> 2.4.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Wed, 03 Jun 2015 09:49:43 +0300
Jani Nikula <jani.nikula@linux.intel.com> wrote:

> On Wed, 03 Jun 2015, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> > in
> > commit 65ca7514e21adbee25b8175fc909759c735d00ff
> > Author: Damien Lespiau <damien.lespiau@intel.com>
> > Date:   Mon Feb 9 19:33:22 2015 +0000
> >
> >     drm/i915/skl: Implement WaBarrierPerformanceFixDisable
> >
> > The workaround ended up in the chv workarounds. Not sure what the
> > reason or history of that is, but it /seems/ wrong. Don't know if
> > this fixes anything since I have many other problems with my
> > platform.
> >
> > Cc: Damien Lespiau <damien.lespiau@intel.com>
> > Cc: Nick Hoath <nicholas.hoath@intel.com>
> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> 
> Ville beat you to it [1]. However he put it in skl workarounds, not
> gen9, so I'm presuming this does not apply to bxt.
> 
> BR,
> Jani.
> 
> 

Anyone who will talk to us and tells you they know the answer to that
definitively is lying.

My patch is wrong though. Checking only the REVID without checking
IS_SKYLAKE is not the right thing to do.

Consider Ville's patch
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>

(I no longer subscribe to intel-gfx, so actually adding my review is
kind of a pain).

> [1]
> http://mid.gmane.org/1433248657-4509-1-git-send-email-ville.syrjala@linux.intel.com
> 
> 
> > ---
> >  drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++-------
> >  1 file changed, 7 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > b/drivers/gpu/drm/i915/intel_ringbuffer.c index d934f85..0fd6033d
> > 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -901,13 +901,6 @@ static int chv_init_workarounds(struct
> > intel_engine_cs *ring) GEN6_WIZ_HASHING_MASK,
> >  			    GEN6_WIZ_HASHING_16x4);
> >  
> > -	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> > -	    INTEL_REVID(dev) == SKL_REVID_D0)
> > -		/* WaBarrierPerformanceFixDisable:skl */
> > -		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> > -				  HDC_FENCE_DEST_SLM_DISABLE |
> > -				  HDC_BARRIER_PERFORMANCE_DISABLE);
> > -
> >  	return 0;
> >  }
> >  
> > @@ -972,6 +965,13 @@ static int gen9_init_workarounds(struct
> > intel_engine_cs *ring) tmp |=
> > HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
> > WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp); 
> > +	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> > +	    INTEL_REVID(dev) == SKL_REVID_D0)
> > +		/* WaBarrierPerformanceFixDisable:skl */
> > +		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> > +				  HDC_FENCE_DEST_SLM_DISABLE |
> > +				  HDC_BARRIER_PERFORMANCE_DISABLE);
> > +
> >  	return 0;
> >  }
> >  
> > -- 
> > 2.4.2
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
On 03/06/2015 00:02, Widawsky, Benjamin wrote:

Probably should have a line like:
Problem introduced in:
instead of just 'in'

> in
> commit 65ca7514e21adbee25b8175fc909759c735d00ff
> Author: Damien Lespiau <damien.lespiau@intel.com>
> Date:   Mon Feb 9 19:33:22 2015 +0000
>
>      drm/i915/skl: Implement WaBarrierPerformanceFixDisable
>
> The workaround ended up in the chv workarounds. Not sure what the reason or
> history of that is, but it /seems/ wrong. Don't know if this fixes anything

patch doesn't always get it right...

Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>

> since I have many other problems with my platform.
>
> Cc: Damien Lespiau <damien.lespiau@intel.com>
> Cc: Nick Hoath <nicholas.hoath@intel.com>
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> ---
>   drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index d934f85..0fd6033d 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -901,13 +901,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
>   			    GEN6_WIZ_HASHING_MASK,
>   			    GEN6_WIZ_HASHING_16x4);
>
> -	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> -	    INTEL_REVID(dev) == SKL_REVID_D0)
> -		/* WaBarrierPerformanceFixDisable:skl */
> -		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> -				  HDC_FENCE_DEST_SLM_DISABLE |
> -				  HDC_BARRIER_PERFORMANCE_DISABLE);
> -
>   	return 0;
>   }
>
> @@ -972,6 +965,13 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>   		tmp |= HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
>   	WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp);
>
> +	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
> +	    INTEL_REVID(dev) == SKL_REVID_D0)
> +		/* WaBarrierPerformanceFixDisable:skl */
> +		WA_SET_BIT_MASKED(HDC_CHICKEN0,
> +				  HDC_FENCE_DEST_SLM_DISABLE |
> +				  HDC_BARRIER_PERFORMANCE_DISABLE);
> +
>   	return 0;
>   }
>
>
On Wed, 03 Jun 2015, Nick Hoath <nicholas.hoath@intel.com> wrote:
> On 03/06/2015 00:02, Widawsky, Benjamin wrote:
>
> Probably should have a line like:
> Problem introduced in:
> instead of just 'in'
>
>> in
>> commit 65ca7514e21adbee25b8175fc909759c735d00ff
>> Author: Damien Lespiau <damien.lespiau@intel.com>
>> Date:   Mon Feb 9 19:33:22 2015 +0000
>>
>>      drm/i915/skl: Implement WaBarrierPerformanceFixDisable
>>
>> The workaround ended up in the chv workarounds. Not sure what the reason or
>> history of that is, but it /seems/ wrong. Don't know if this fixes anything
>
> patch doesn't always get it right...
>
> Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>

Already pushed Ville's patch
http://mid.gmane.org/1433248657-4509-1-git-send-email-ville.syrjala@linux.intel.com

BR,
Jani.

>
>> since I have many other problems with my platform.
>>
>> Cc: Damien Lespiau <damien.lespiau@intel.com>
>> Cc: Nick Hoath <nicholas.hoath@intel.com>
>> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
>> ---
>>   drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++-------
>>   1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> index d934f85..0fd6033d 100644
>> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
>> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> @@ -901,13 +901,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
>>   			    GEN6_WIZ_HASHING_MASK,
>>   			    GEN6_WIZ_HASHING_16x4);
>>
>> -	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
>> -	    INTEL_REVID(dev) == SKL_REVID_D0)
>> -		/* WaBarrierPerformanceFixDisable:skl */
>> -		WA_SET_BIT_MASKED(HDC_CHICKEN0,
>> -				  HDC_FENCE_DEST_SLM_DISABLE |
>> -				  HDC_BARRIER_PERFORMANCE_DISABLE);
>> -
>>   	return 0;
>>   }
>>
>> @@ -972,6 +965,13 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>>   		tmp |= HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
>>   	WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp);
>>
>> +	if (INTEL_REVID(dev) == SKL_REVID_C0 ||
>> +	    INTEL_REVID(dev) == SKL_REVID_D0)
>> +		/* WaBarrierPerformanceFixDisable:skl */
>> +		WA_SET_BIT_MASKED(HDC_CHICKEN0,
>> +				  HDC_FENCE_DEST_SLM_DISABLE |
>> +				  HDC_BARRIER_PERFORMANCE_DISABLE);
>> +
>>   	return 0;
>>   }
>>
>>
>
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx