[Intel-gfx] [PATCH] drm/i915: enable semaphores on gen6 if dmar is not active

Daniel Vetter daniel at ffwll.ch
Thu May 10 10:35:48 CEST 2012


On Wed, May 09, 2012 at 04:03:57PM -0700, Ben Widawsky wrote:
> On Thu, 10 May 2012 00:40:20 +0200
> Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> 
> > Inspired by the recent ppgtt regression report, where switching of
> > dmar only for the gpu seems to fix things completely, I've looked
> > again at the semaphores+vt-d situation.
> > 
> > Contrary to my earlier testing a few months back my system is now
> > stable with dmar disabled for the igd, and not only when disabling
> > dmar completely.
> > 
> > So I'm rather hopeful that all our recent fixes for snb have changed
> > things for code and it's time to try enabling semaphores again. We've
> > also had issues with enabling semaphores which are not vt-d related,
> > but I guess these are all fixed by the autoreport-disabling and lazy
> > request fix. And there's only one way to find out whether there are
> > still other issues ...
> > 
> > When I've tried to apply this patch I've noticed that semaphores on
> > gen6 have already silently been added in
> > 
> > commit 2911a35b2e4eb87ec48d03aeb11f019e51ae3c0d
> > Author: Ben Widawsky <ben at bwidawsk.net>
> > Date:   Thu Apr 5 14:47:36 2012 -0700
> > 
> >     drm/i915: use semaphores for the display plane
> > 
> > Fix this up by only checking whether dmar is enabled on the gfx (not
> > on the entire system).
> 
> Heh. It wasn't on purpose! I want to blame this on git, but I honestly
> don't know what happened.

I guess because we've changed the defaults there so bloody often, this
could easily be a bisect artifact ;-)

> > Cc: Ben Widawsky <ben at bwidawsk.net>
> > Cc: Chris Wilson <chris at chris-wilson.co.uk>
> > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Reviewed-by: Ben Widawsky <ben at bwidawsk.net>

Thanks, patch pushed out.
-Daniel

> 
> > ---
> >  drivers/gpu/drm/i915/i915_drv.c |    6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 77b7a50..1ccfc23 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -407,9 +407,11 @@ bool i915_semaphore_is_enabled(struct drm_device *dev)
> >  	if (i915_semaphores >= 0)
> >  		return i915_semaphores;
> >  
> > +#ifdef CONFIG_INTEL_IOMMU
> >  	/* Enable semaphores on SNB when IO remapping is off */
> > -	if (INTEL_INFO(dev)->gen == 6)
> > -		return !intel_iommu_enabled;
> > +	if (INTEL_INFO(dev)->gen == 6 && intel_iommu_gfx_mapped)
> > +		return false;
> > +#endif
> >  
> >  	return 1;
> >  }
> 
> 
> 
> -- 
> Ben Widawsky, Intel Open Source Technology Center

-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48



More information about the Intel-gfx mailing list