Re: [PATCH 2/2] drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 05 Apr 2016, Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> wrote:
> Experiments with heaven 4.0 benchmark and skylake gt3e (rev 0xa)
> suggest that WaForceContextSaveRestoreNonCoherent is needed for all
> revs. Extending this to all revs cures a gpu hang with rev 0xa when
> running heaven4.0 gpu benchmark.
>
> We have been here before, with problems enabling gt4e and extending
> up to revision F0 instead of false claims of bspec of E0 only. See
> commit <e238659ddd88> ("drm/i915/skl: Default to noncoherent access
> up to F0"). In retrospect we should have covered this with this big
> blanket back then already, as E0 vs F0 discrepancy was suspicious
> enough.
>
> Previously the WaForceEnableNonCoherent has been tied to
> context non-coherence, atleast in relevant hsds. So keep this tie
> and extended this alongside.
>
> Cc: Abdiel Janulgue <abdiel.janulgue@xxxxxxxxxxxxxxx>
> Cc: Ben Widawsky <benjamin.widawsky@xxxxxxxxx>
> Cc: Timo Aaltonen <tjaalton@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Mike Lothian <mike@xxxxxxxxxxxxxx>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=93491
> Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 45ce45a5e122..7fce1e6afcbc 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -968,7 +968,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
>  
>  	/* WaForceContextSaveRestoreNonCoherent:skl,bxt */
>  	tmp = HDC_FORCE_CONTEXT_SAVE_RESTORE_NON_COHERENT;
> -	if (IS_SKL_REVID(dev, SKL_REVID_F0, SKL_REVID_F0) ||
> +	if (IS_SKL_REVID(dev, SKL_REVID_F0, REVID_FOREVER) ||

Side note only slightly related to this patch: We need to start dropping
support for old steppings, only leaving production steppings in place.

BR,
Jani.


>  	    IS_BXT_REVID(dev, BXT_REVID_B0, REVID_FOREVER))
>  		tmp |= HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE;
>  	WA_SET_BIT_MASKED(HDC_CHICKEN0, tmp);
> @@ -1085,7 +1085,8 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
>  		WA_SET_BIT_MASKED(HIZ_CHICKEN,
>  				  BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE);
>  
> -	if (IS_SKL_REVID(dev, 0, SKL_REVID_F0)) {
> +	/* This is tied to WaForceContextSaveRestoreNonCoherent */
> +	if (IS_SKL_REVID(dev, 0, REVID_FOREVER)) {
>  		/*
>  		 *Use Force Non-Coherent whenever executing a 3D context. This
>  		 * is a workaround for a possible hang in the unlikely event

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux