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